My image sensor produces 12-bit image intensity data. I would like to be able to selective, through software, capture either the full 12 bits, or just the most-significant 8 bits. I am looking for a good solution to implement this. I wish to avoid using t

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
MoAb_1070241
Level 1
Level 1

My image sensor produces 12-bit image intensity data. I would like to be able to selective, through software, capture either the full 12 bits, or just the most-significant 8 bits. I am looking for a good solution to implement this. I wish to avoid using the CPU to rearrange bits for me. What is the best way to do this?

0 Likes
1 Solution
Anonymous
Not applicable

Hi.,

FX3 does not explicitly support 12 Bit GPIF. This has to be used in 16 Bit Mode. The extra 4 bits have to be either ignored or removed by the host application.

Connect the Most Significant 8 Bits of your image sensor to the D7:0 pins of the GPIF Interface and connect the least significant 8 bits of your image sensor to D15:8 pins of GPIF. Use the GPIF in Big Endian mode.

In your firmware you can switch between a 8-Bit State Machine and a 16-Bit state machine anytime using the CyU3PGpifSMStart API. In the cyfxgpifconfig.h header file, you need to change the register value in the firmware that corresponds to 8 Bit GPIF or 16 Bit GPIF, before everytime you call the CyU3PGpifSMStart  API for switching the bus width.

Regards,

- Madhu Sudhan

View solution in original post

0 Likes
1 Reply
Anonymous
Not applicable

Hi.,

FX3 does not explicitly support 12 Bit GPIF. This has to be used in 16 Bit Mode. The extra 4 bits have to be either ignored or removed by the host application.

Connect the Most Significant 8 Bits of your image sensor to the D7:0 pins of the GPIF Interface and connect the least significant 8 bits of your image sensor to D15:8 pins of GPIF. Use the GPIF in Big Endian mode.

In your firmware you can switch between a 8-Bit State Machine and a 16-Bit state machine anytime using the CyU3PGpifSMStart API. In the cyfxgpifconfig.h header file, you need to change the register value in the firmware that corresponds to 8 Bit GPIF or 16 Bit GPIF, before everytime you call the CyU3PGpifSMStart  API for switching the bus width.

Regards,

- Madhu Sudhan

0 Likes