GL850G是一个usb2.0的hub集线器,支持一拖四。
因为在Android平台上调试,经常要连接adb,那就需要该hub支持bypass(直通模式),才能正常的让手机的usb做从。(vbus过来后,usb切到从模式,手机跟电脑才能正常通信)
进入该模式的方式
也就是test脚拉低,reset拉高50ms以上就行。修改代码,adb能正常使用。
再来调试真正的hub功能。要知道,要识别hub芯片,跟识别usb的usb原理是一样的,先要让cpu的usb的作主(https://blog.youkuaiyun.com/mike8825/article/details/103832833),然后会启动相关的识别过程。
让cpu的usb作主,通常有两种方案,一种是id脚,一种是typec识别,这些都需要相应的usb座子支持的。那可以采用模拟id脚的方式,让usb做主。也就是设计电路,让id脚在需要的时候拉低,走到host模式。
然后注意reset和test脚要拉高,才能让ic进入hub模式,或者reset拉高test脚悬空。
参考打印
[9.588405] c0 usb 1-1: new high-speed USB device number 2 using musb-hdrc
[9.747902] c0 usb 1-1: New USB device found, idVendor=05e3, idProduct=0608
[9.747908] c0 usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[9.747913] c0 usb 1-1: Product: USB2.0 Hub
[9.747923] c0 hub 1-1:1.0: USB hub found
如果不能正常失别到该hub芯片,可以将VBUS/GND/D+/D-通过usb连接到电脑,如果电脑能识别该芯片,说明硬件是正常的,如果不能识别,说明硬件有问题,再继续排除硬件。
通过该hub下载程序时,注意test脚要拉低。
调试成功后,组装平板时发现hub不良率偏高(20%),看log有如下报错信息
就是握手失败,重新焊接芯片也没改善。后来fae过来,才知道由于物料紧缺,使用了二手料,由于管脚氧化严重,导致通信失败,拿好的芯片重新焊接,芯片工作正常。