Hi, I'm trying to acquire data from a CMOS image sensor (NOIP1SN1300A) with a 32bit microcontroller (PIC32MZ2048EFM100).
I'm studying the datasheet of this sensor and for this version (P1-SN/FN) there are 3 options for output data stream: 1, 2 or 4 LVDS channels in multiplexing, in addition to sync and clock channels (page 39 of datasheet).
The output data rate is 720Mbps for 10bit acquisition and 576Mbps for 8bit (page 35).
If I undestand correctly, with 4 channels multiplexing option and 8bit image depth, each LVDS channel will have an output datarate of 576/4=144Mbps.
I'm trying to understand if I can handle this stream with a PIC32 (with a maximum clock of 252MHz).
I think that I don't have any possibility to read 6 144Mbps serial channels at the same time with a "simple" PIC32 with 252MHz clock. Probably the best way to manage this CMOS sensor is an FPGA, but if it's possible, I would prefer to avoid it. In fact, I don't need a high framerate: also a single frame per second can be sufficient. I should be able to understand if I can configure the sensor to stream all the data in a single LVDS channel (plus sync and clock) with a low data rate, manageable also by the PIC. I checked all the configuration bytes of the sensor (configurable by SPI input), but I don't found any configuration output data rate.
The CMOS sensor accepts a clock signal as input, with 2 options:
1) LVDS input clock with 360MHz frequency for 10bit mode or 288MHz for 8bit mode
2) TTL input clock with 72MHz (with internal PLL that multiply the frequency by 4 or 5)
On page 11 a “typical input clock frequency” is indicated, but is not clear if is possible to supply a lower clock, with a proportional reduction of output data rate.
On page 5, in “Electrical Interface − P1 − SN/SE/FN LVDS” table, the values of PLL input clock (72MHz) and LVDS input clock (360MHz) are indicated only as maximum value. No typical or minimum value are indicated. This would let me think that maybe it is possible to decrease the input clock as desired, proportionally modulating the output data rate.
If it's possible, maybe I can manage the output channel with an appropriate input port, through an LVDS interface (like MAX9122 receiver). I should verify also if the stream protocol is compatible with UART or SPI standard, instead I have to receive the stream in a generic i/o port and manage the protocol manually.
Do you have any ideas, different point of views or advices?
You can find the datasheet of the sensor here:
https://www.onsemi.com/pub/Collateral/NOIP1SN1300A-D.PDFThank you in advance for any suggestions!