liwen01 2022.08.26
一、环境:
- 君正:T31ZL SDK版本:Zeratul_Release_20201230
- WiFi 模块: Hi3861(单总线发送数据)
- 杰理:5226B方案屏幕(UVC)
二、问题现象:
- 可以单独使用UVC进行图像传输
- 可以单独使用SDIO进行wifi网络数据通信
- 如果UVC与SDIO wifi同时一起工作,系统负载就接近100%,整个程序异常
三、测试步骤:
实验1
- T31上电,通过wlan0拉流,系统工作正常;
- 此时,将屏的UVC线插入,系统串口非常卡顿,查看cpu占用率,发现驱动hisi_hcc_tx cpu异常高;

- 将kernel debug等级提高,再次重复上述操作,当插入UVC屏时,发现mmc 报错导致wlan0异常;

实验2:
- T31上电,通过wlan0拉流,系统工作正常;
- ifconfig wlan0 down;
- 此时,将屏的UVC线插入,;UVC出图正常;
- ifconfig wlan0 up,系统串口非常卡顿,查看cpu占用率,发现驱动hisi_hcc_tx cpu异常高;
实验3:
- T31上电,通过wlan0拉流,系统工作正常;
- 将UVC插入电脑,电脑打开相同分辨率的视频流, 系统工作正常;
从上面的现象:
- a.初步怀疑,UVC屏的插入,会导致mmc工作异常,mmc跑进了一个死循环不停的在发数据,从而wlan0 Tx CPU占用率高;
- b.电脑与wlan0可共存,而屏uvc与wlan0不可共存,可能是电脑容错性较高,望FAE帮忙一起分析并解决次问题,非常感谢!
四、可能原因
-
wlan0 与UVC的中断有冲突导致设备异常
-
具体查看君正提供的《T31-UART-UVC改动.pdf》
-
UART与UVC 中断冲突问题
-
UVC的同步信号不标准,导致T31无法适配
-
可能是时钟有冲突导致
五、解决方法

按上图修改,不使用pio模式收发数据,可以解决该问题
默认数据少于64字节就走pio模式,这种模式时序很容易出问题
改成少于4字节,基本上就不会走pio了,正常就不会被其它中断影响了
该问题属于君正底层驱动的异常,跟君正的工程师调试很久仍然没有定位到具体原因
最后是咨询了一位对USB驱动非常熟悉的朋友才解决了这问题
评论区
登录后即可参与讨论
立即登录