BSP_USB调试
发表于:2023-07-09 |

USB识别错误或不识别调试错误

在对一些usb,u盘进行调试,适配时,可能会出现usb无法识别,或者usb识别错误的问题。

USB协议介绍

​ USB是通用串行总线(Universal Serial Bus)的缩写。在USB总线出现之前,计算机与键盘、鼠标、扫描仪、打印机都使用专用的接口连接,不同设备的接口不能互用,扩展性很差,每次插拔设备都要关闭计算机,不支持热插拔,且通信速率很低。为了解决上述问题,USB总线诞生了。USB总线就好像一条管道,管道里流过的东西只要符合USB协议,至于具体流的是什么东西,USB总线并不关心,可以是自来水,可以是污水,可以是天然气,也可以是石油。对应具体的设备上,只要是支持USB协议的设备,都可以连接计算机,如USB键盘、USB鼠标、USB摄像头、USB音箱等。USB的出现简化了计算机与外围设备的连接,增强了扩展性,支持热插拔,且通信速度很快。

关于USB的硬件和软件协议见百科

usb-device-tree-viewer

实例

flowchart BT; HUB1-->id1{CPU}; id1{CPU}-->|GPIO控制切换|HUB2_SWITCH; HUB2_SWITCH-->id1{CPU}; host_usb1-->HUB1; host_usb2-->HUB1; u盘1-3.0-->HUB2; u盘2-->HUB2; u盘3-->HUB2; HUB2-->HUB2_SWITCH; HUB2_SWITCH-->HDMI1; HUB2_SWITCH-->OPS; HUB2_SWITCH-->TYPE-C;

假设某设备的拓扑图如上所示

1.USB协议识别错误

在一般情况下,若u盘1被识别成2.0,可以检查u盘1链路上的上电顺序,靠近HOST端先下电–>HUB–>切换switch。上电应先将switch切换–>HUB–>HOST,这样可以解决一些usb兼容性问题。

2.U盘不识别

U盘不识别绝大部分是U盘格式的问题,检查U盘格式是否正确,分区表是否正常,是否有不正常的分区。

在安卓平台可以抓取log分析

1
logcat | gerp vold
上一篇:
BSP_USB实现原理及方法
下一篇:
Tina修改串口