在使用am3352的USB接口时遇到了一个很奇怪的问题,我将am3352的两个USB接口(USB0、USB1)都配置为了host,USB1接口连接一个4G模块,上电启动时,am3352能识别USB1接口上的4G模块,但每次都会打印ti81xx_interrupt 1145: VBUS error workaround (delay coming)提示。我们用示波器抓取了下4G模块热插拔时USB1_DRVVBUS(蓝色线)和USB1_VBUS(黄色)引脚的电平变化,如下图所示:
USB1接口上没有接任何设备时,USB1_DRVVBUS(蓝色线)和USB1_VBUS(黄色)都为高电平,当此时把4G模块插上时,USB1_VBUS上的电压会立即下降,这个我理解的是可能是由于4G模块连上时瞬间需要一个大电流,此时造成了USB1_VBUS上的电平拉低了,这个时候USB host会出现一个VBUS中断,也就是会打印ti81xx_interrupt 1145: VBUS error workaround (delay coming)提示,这个不知道理解的对不对?
另外,我们在做USB的极限测试时,当我连续多次热插拔4G模块后,有两种会出现USB接口无法识别4G模块的情况,当出现无法识别4G模块时,我们用示波器测量USB1_DRVVBUS和USB1_VBUS的电平,发现两者都为高,这个时候只有重新热插拔一次4G模块,USB接口才能识别4G模块;另一种情况就是USB1_DRVVBUS和USB1_VBUS的电平用示波器测得都是低电平,这个时候无论你怎么热插拔4G模块,USB接口都不会识别,只有断电重启或复位系统后才能够识别。连续热插拔为什么会出现这两种奇怪的现象呢?有没有解决的方法?