我和我的团队正在TLE9243QK_BASE_BOARDAN75779 源代码上开发自定义 FX3 + UVC 应用程序 ,并在尝试实现同步通信时遇到问题。
到目前为止,我们按照KBA231897中详述的步骤实现了等时模式:
- cyfxuvcdscr.c:调整 UVC 描述符以支持同步(备用设置 0 和 1, EVAL_ISO_4DIR1400H 。端点描述符,更新描述符大小)
- uvc.h :从 KBA 源代码导入的宏(FX3_EP_ISO_VIDEO_SS_BURST/MULT、 EVAL_ISO_4DIR1400H /...SIZE_L /...SIZE_H)
- uvc.c :更新了 glProbeCtrl 结构,没有。TLE9243QK_BASE_BOARD EVAL_ISO_4DIR1400H/H 上每个有效负载的 RX 字节数
通过这些修改,我们能够将视频数据流传输到主机应用程序,并验证数据流是否配置为等时。
不过,收到的图像似乎有问题(见附件)。
TLE9243QK_BASE_BOARD在来自帧的原始数据中,似乎丢失了一些数据,并且当使用嗅探器(WireShark)比较通过 USB
接收的数据时,该数据在主机 USB 的接收处已经丢失,这意味着它是不是由 FX3 发送的。
数据流由 1950x1150 帧组成,每个像素由 2 个字节编码,每秒 30 帧。
我们的一个假设是,我们可能需要比原始配置更大的带宽,因此我们尝试将 DMA 缓冲区的大小增加到 24(CY_FX_EP_BULK_VIDEO_PKTS_COUNT (0x18)),但收到的帧仍然显示出明显由数据丢失引起的问题。
我们在配置中遗漏了什么吗? 关于问题的性质和解决方法,您有什么想法? 如有任何帮助,我们将不胜感激。