我正在使用 cx3 捕捉图像,相机模块 imx219 连接到 MIPI 端口。 cx3 通过高速 USB 与主机连接。
我面临的问题是,我只收到了应该收到的数据的大约 1/5(与数据量无关,3280x2464 图像和 256x256 图像都是 1/5)。 在传输过程中,我没有收到来自 mipi 块的任何错误信息。 接收到的数据似乎缺少了一些垃圾。
以下是 MIPI 块配置:
CyU3PMipicsiCfg_t mipiConfig_imx219_RAW10_104MHz =
{
CY_U3P_MIPIOUT_DW_16, /* MIPI out parallel width packing --> here set to YUV422*/
2, /* Number of CSI data lanes. */
2, /* PLL clock input divider. */
129, /* PLL clock feedback divider. */
CY_U3P_CSI_PLL_FRS_63_125M,/* PLL clock range. */
CY_U3P_CSI_PLL_CLK_DIV_4, /* Divider for clock used to detect CSI LP<->HS transi
tion. */
CY_U3P_CSI_PLL_CLK_DIV_4, /* Divider for clock used on the parallel GPIF interface. */
0x00, /* Reserved */
0x00, /* Reserved */
0x00, /* Reserved --> this line is the given value by the suite*/
100 /* Delay on the parallel output buffer of CSI interface. */
};
摄像头模块的时钟设置为 104MHz(与 MIPI 模块完全相同)。
我使用以下方式加载 GPIF:
CyU3PMipicsiGpifLoad(CY_U3P_MIPICSI_BUS_16, 0x600); // 其中 0x600 也是 DMA 缓冲区的大小
DMA 采用 AUTO_MANY_TO_ONE(无回调)模式,GPIF 端有两个插座,USB 端有一个插座。
我使用 4 个大小为 0x600 的缓冲区和 CY_U3P_DMA_MODE_BYTE。
端点类型为批量,数据包大小设置为 512。
经过大量测试,我认为问题可能与 GPIF 配置有关,但我不确定。
我使用 libusb_bulk_read 读取数据,并尝试了主机上各种缓冲区的大小。
如有任何提示,我将不胜感激。