Cypress技术论坛
直播中

王磊

8年用户 1637经验值
私信 关注

UVC AN90369将sensor数据通过CX3向PC端传输数据遇到的疑问求解

最近在使用CX3进行相关项目开发,应用场景基于UVC AN90369,将sensor 数据通过CX3 向PC端传输,目前遇到的问题是这样的:
当我配置dmaMultiConfig.size=32KB,dmaMultiConfig.count=2 时,无法正常出图,CSI 模块可以正常解析HSYNC VSYNC。
当我配置dmaMultiConfig.size=54KB,dmaMultiConfig.count=2 时,可以出 1920x1280@30fpsz帧的图,但是非常不稳定,经过大概几分钟就会死机,状态机 SMstate =10 或者 SMstate =09;无法再进入DMAcb 回调函数,或者GPIFCB 回调函数。(由于前期设计没有加入JTAG设计,无法进行在线调试,所以也不确定程序运行到什么地方了。) dmaMultiConfig.size=54kb,dmaMultiConfig.count=2 是我尝试能正常工作的最大DMAbuffer 配置了,死机现象可以加大DMAbuffer 大小解决,但似乎我已经加大到最大值了。
当我修改sensor 端的配置,加大HTS ,即加大了HBLANK, 该方法也能改善,或者说解决死机问题。但是加大HTS 后,帧率达不到30fps ,无法满足我的使用需求。
我想请问,DMAbuffer 的大小和count的设置遵循什么样的规则,(我的项目中还有其他DMA通道用以传输控制命令,他们之间会有影响吗?)
   
                                                                                                                                                                                                                                                                                                                                                                                                

回帖(1)

宋明星

2024-2-27 14:39:09
应该是DMA缓冲区不够被占满,可以在确保vertical blanking不低于~350 us的情况下,尽可能高的配置horizontal blanking,同时可以减少vertical blanking,以保持帧率不变。DMA通道不是互连的,项目中的其他DMA通道之间不会有影响,但是同一个firmware里其他通道的使用会影响用于UVC 的缓存区大小。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分