we are planning to buy an imx6Dual based board and the primary goal is to acquire frames
from a parallel camera connected through a 16bit data bus clocking it at 100MHz (tentatively).
What I know is, in general, that frame acquisition is performed using the CSI interface of the IPU.
[ALERT - noob level questions below]
First, is there some kind of tutorial available, covering (at least) the macro steps to be done?
Based on the reference manual, CSI_DATA_WIDTH can clearly be set from 8 to 16 bits. Again, in the RM it is intended "for color".
Using a RGB565 as CSI_SENS_DATA_FORMAT, shouldn't a pixel be acquired in one clock tick?
It is better so set it as "Generic Data" ?
and last, in the Linux IPU driver I see that:
* Enumeration of CSI data bus widths.
so it should be supported low level but IPU_CSI_DATA_WIDTH_16 has no use throughout all my current kernel tree.
Is this acquisition (at 100MHz) possible? or should I limit the databus to more standard (8/10 bit) data bus?
Thanks for any illuminated soul for the time.
and thanks for the reply.
As generic data input should it be possible to acquire the frame @100MHz and then postprocess it
as generic data from ram? and is it currently supported in the kernel?
Actually as you mentioned there is no mention in the driver of any defines indicating that there is a support to process 16-bit CSI data. This is a limitation of the BSP.
This is why I advise to go for 8-bit, as this should be supported. At least I know that in the latest BSP, there is support for 2 cameras, one of them being the 8-bit CSI as YUV.
Regarding the speed, everything derives from HSP_CLK see in IPU_CSI0_SENS_CONF. It can go up to 264MHz.
So I do not see a limitation here at least.