ti81xx_interrupt 1146: VBUS error workaround (delay coming)产生原因分析
来源:互联网 发布:isp图像处理编程 编辑:程序博客网 时间:2024/05/01 20:20
这几天用开发板来采集声音信号,接了一个24为的采集卡。开发板是TI的AM335X,运行内核是3.2版。整个系统用小米移动电源供电(因为要把整个系统拿到室外)。但是在使用过程中,系统老是出问题,提示代码就是标题:
ti81xx_interrupt 1146: VBUS error workaround (delay coming)
其实在启动过程中也报出了这个问题,但是可以正常启动使用。只不过在使用过程中,经常时不时的又报出这个问题,虽然没有导致系统挂掉,但是也使得系统无法正常使用。网上查了一下,VBUS是USB的供电电源,这个问题应该是由USB供电电源出问题导致的。考虑到在室内用电源适配器供电使用正常,且整个系统确实要的电流比较大,于是怀疑移动电源供电能力不足。接着换了一块供电能力强一点的移动电源,没有再报错了!
回去查了继续针对这个问题查了一下资料。找到下面这个TI论坛的帖子,里面分析的很详细!其中讲到的VBUS电压下降的原因应该就是我这次碰到问题的原因。帖子链接如下:
http://e2e.ti.com/support/arm/sitara_arm/f/791/p/299887/1047546
其中有一段分析如下图:
这意思是,当一个USB设备插入时,电流会短时突然增大( in-rush current),这就会导致VBUS电压低于4.4V(USB使用的5V电压的最低下限)。而MUSB 控制器回检测到这个异常,并且产生一个中断(VBUSERROR interrupt),接着驱动便去解决这个异常。
我们所看到的持续出现的over-current message其实是驱动在处理异常过程中的一个bug,貌似因为一旦over-current发生,其中某个计数器(recover retry counter)一直没能得到复位。又因为从硬件上来看, VBUSERROR问题是可以解决的(想办法避免因为in-rush current导致VBUS下降过多),所以内核社区一直没有从软件上去修复这个bug。
为了避免in-rush current导致这种问题,USB规范规定USB主机的VBUS上必须接一个至少120uF的电容(估计是缓解in-rush current造成的VBUS电压下降)。并且还规定USB设备的VBUS端必须有最大不超过10uF的电容。所以,如果某个USB设备插入时出现这类问题,可以试试别的USB设备。如果两边都有电容,并且某个特定USB口接入设备时总是出问题,很可能是该USB口不符合规范。若不同的USB设备插上去,出现了同样的问题,可能板子有其他的问题。
回过头看我的问题,很有可能是移动电源的供电能力不足,导致电压不稳,从而时不时的使VBUS电压低于4.4V,最终导致报错。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~转载请注明出处:
CSDN作者:Andoubi
连接:http://blog.csdn.net/andoubi/article/details/52989034
- ti81xx_interrupt 1146: VBUS error workaround (delay coming)产生原因分析
- ConcurrentModificationException异常产生原因分析
- Compile Error产生的可能原因
- error: stray ‘\357’ in program产生原因
- 错误信息:CFNetwork internal error 及产生原因
- workaround
- 邮件乱码产生的原因及其分析
- VoIP网络电话回音产生的原因分析
- 文件空洞产生的原因分析
- 文件空洞产生的原因分析
- android 内存泄露产生原因分析
- 系统产生死锁的原因分析
- ANR产生的原因及其定位分析
- ANR产生的原因及其定位分析
- ANR产生的原因及定位分析
- Android ANR产生的原因和分析
- workaround for the python xlrd error
- Internal server error原因分析
- 南阳理工--ACM--括号配对
- 执行力:蜀鄙二僧欲之南海
- Atitit (Sketch Filter)素描滤镜的实现 图像处理 attilax总结
- (三)React Native---TextInput
- 编程心得04
- ti81xx_interrupt 1146: VBUS error workaround (delay coming)产生原因分析
- 371. Sum of Two Integers
- 修复U盘(未完)
- C++函数传参、函数指针的定义以及调用
- 离散傅里叶变换的推导
- HDG学习笔记
- Android开发中关于Spinner;Checkbox; RadioButton; EditText;怎样向其他Ativity传值
- 2016/10/31
- 图像分割结果的评估