一般的MCU不会留有太多的USB口,但在实际项目中又会遇到需要很多个USB口的情况,这时就会用到USB集线器来扩展USB口了。USB2514这个芯片是我在工作中用的比较多的,但是问题很多,从来没有调稳定过,前几天抽空把这个芯片调了一下,终于调稳定了。现在就把我调试过程写下来。

首先在网上抄了一个电路,原理如下:

 

图中所有的红色标号全部用导线引出,下游的USB端口接了4个USB座。所有电路手工焊接,焊完后插上电脑一点反应都没有,测量各电压都正常,但是晶振没起振。网上搜了一下有人说这个芯片必须下级要连设备晶振才会起振,于是我插了一个U盘,但是晶振还是没有起振。

之后将芯片各脚重新过了一遍锡后将晶振旁边的18pf电容换成了22pf,插上电后提示“无法识别的USB设备”。

网上搜资料,大多数人说是焊接问题导致的,于是我又把芯片各引脚过了一遍锡,插上电脑提示“USB端口上的电涌”,“未知USB设备所需电量超出该端口所能提供的电量”,如图:

 

手摸芯片明显发热,我本以为还是用不了,结果用示波器量一下晶振竟然起振了(此时下级USB没有连接设备),插上一个U盘也识别到了,而且还能正常使用,不过接出的4个USB口有一个不能用,于是我又把各引脚过了一遍锡,现象和之前还是一样的。后来发现其实并不是每次都能识别到设备,测量电流在200mA左右。

虽然最后问题都没有解决,但我觉得就是焊接导致的。这版电路没有什么保护,我不想在上面耗费太多时间,因此直接换了另一版电路,如下:

第二版比第一版多了很多东西,有些地方还有差异,具体来看一下这些差异:

第一处是22,24,25这三个引脚,第一版是接了100K电阻到地,第二版直接悬空了,查看资料:

 

虽然没有完全理解是什么意思,但是发现这几个引脚还挺重要的,资料上并没找到这几个引脚悬空是什么状态,为了保险起见还是应该下拉到地。

第二处是第一版的27号引脚接的是3.3V,而第二版27号引脚接的是5V,查看资料:

必须连3.3V !!!

第二版原理图中新增的部分第一处是多了一个TPS2069,这是一个电流驱动芯片,输入电压4.5V~5.5V,输出电流1.5A。所以这里不知道接这个东西有什么意义。

另外加入了两个SRV05-4,这是USB接口常用的静电保护器件。

将有问题的地方修改后原理如下:

图中蓝色的圆都是焊盘。根据原理图设计PCB,如下: 

 

 拿到样板后进行焊接,第一个要焊的器件就是USB2514。根据上次调试的经验,这个芯片的焊接一定一定不能出问题。我的方法是先在USB2514底下的焊盘上放一些锡膏,然后将芯片压上去,注意锡膏不能放太多,不然压芯片的时候会把锡膏挤出来。调整好位置后将PCB板架高,用热风枪吹PCB的背面,感觉锡膏熔了就OK了。之后再用烙铁把引脚焊好。一点助焊剂都不要用。之后再焊接剩下的器件。我当时因为手头没有SRV05-4这个件,因此就没焊。

然后将集线器贴在一块开发板上(只是借助了开发板上的焊盘及公共的地线,仅仅是为了方便焊接而已)。再连一个5V转3.3V的芯片给USB2514供电。4个下级USB插座也焊上,连上USB插头,这样理论上来说它就和我们平时用的USB集线器一样了。焊接好后如下:

插上电脑后直接就识别成了一个通用USB集线器:

不接设备时测量电流只有6.5mA,4个USB口全部能正常使用。而且不接设备时测量晶振是没有起振的,接上设备时测量晶振才起振,附上示波器测量图:

最后总结一下

连接电脑后没反应;连接电脑后提示USB端口上的电涌;下级没有连接设备但是晶振起振了,存在用不了的下级USB口;这些都是焊接导致的。

USB2514是3.3V供电,下级不接设备时晶振是不起振的。