最近在做一个和USB通信有关的工装,有点类似于HUB但又有点不同。Type-C和USB-A两种输入选择,然后再选择输出8个通道中的一个。
在焊接调试时,首先先验证一路。因为USB-A公头转USB-A公头的线有点难找,所以找到一根USB线缆,中间剪掉一半直接焊在USBA焊盘上方便调试。
根据标准的USB接口线颜色的定义,一般为红(VCC)白(D-)绿(D+)黑(GND)。 然后分别根据颜色焊接在测试板上。
但在调试过程中发现总是报无法识别USB设备。就算是跳过所有器件,排除板上电源、器件焊接等干扰因素,使用双绞线把电源和差分USB信号拉到最后的接口上,也还是一样出现无法识别设备。
正常就算增加0.5m的线缆也不应该出现无法识别的问题。实在不知道是什么原因,最后试着把绿线和白线交叉一下,结果就能识别到设备了。
觉得非常奇怪,后面使用万用表量导通方式发现确实这个USB线与其他有不同。
有时间拆开USB头看一下里面的结构。首先先剪掉SR扣,然后用手术刀把塑料结构慢慢削除。
打开USB线查看焊接,发现既然是不是标准的红(VCC)白(D-)绿(D+)黑(GND),而是红(VCC)绿(D-)白(D+)黑(GND),也证实了在焊线的时候交叉白绿线就能识别到设备的原因。
找到另一个USB线,也拆开看看,里面的结构是不同的,我们只看焊线发现是红(VCC)白(D-)绿(D+)黑(GND)。
如下两个不同的USB焊线的方式线序绿白就是交叉的。左边是正常的USB线,右边是线序有问题的USB线。