目前处于小批量试产,在生产的过程中,现目前在USB这块遇到一些问题,PC机枚举USB出现三种情况,第一,部分主板USB反复插拔都是OK;第二,部分主板USB时而识别,时而不识别;第三,部分主板USB不识别。
之前在研发阶段调试只有几块(手工焊接),USB都是正常识别读写正常。但是这次批量生产回流焊就出现问题了。
应用层代码里面把USB作为CDC类设备,利用官网的USB_Stack_3.1.exe。我们把不识别和偶尔识别的板子都测试了物理链路,都是正常的。自动进入用BSL,所有的有问题的都能够被识别为HID设备,请问这种问题如何解决?
david shu:
经过下午的调试,之前硬件设计是通过VBUS的3.3在D+上拉1.5K,现在修改为软件自动配置PUR上拉。之前不识别和偶尔识别的板子,开机插上USB都能够成功识别。但是上电后拔插USB,不识别的依然不识别,偶尔识别的还是偶尔识别,之前正常的还是正常。所以整得很头疼,我追了一下,不识别的和偶尔识别的,在插上USB线时,依然会触发中断调用USB_handleVbusOffEvent处理函数,目前我们在硬件上V1.8和VUSB端口电容接的是100nf,不知道这个有没有影响,感觉还是在什么的延时或者时序有问题导致批量生产不一致,从目前来看,软件的问题很大,但是我做了上电只做USB相关其他的都屏蔽掉,但还是正常的依然正常,不正常还是同样的问题。另外在VUSB(5.0v)电路上并了好几个电容,不知道是否有影响。请帮忙分析一下,谢谢。
li dong:
回复 david shu:
我遇到类似的问题,直接PUR上拉能正常识别。
如果软件进入BSL,就会存在部分板子无法正常识别,或者偶尔识别一次。不知道什么原因
HG:
回复 david shu:
1. 看一下高频晶振是不是正常,量一下波形。
2. 检查一下Vcore的电压是多少
3. 看一下BSL的版本,Errata里面有类似的,老得BSL版本有问题,先用JTAG更新BSL版本。
li dong:
回复 HG:
如何查看BSL版本? 出现问题的几片,我已经用jtag烧断熔丝了,如何能定位?
li dong:
回复 HG:
如何查看BSL版本? 出现问题的几片,我已经用jtag烧断熔丝了,如何能定位?
强制把PUR拉高,每次都是能是被USB的, 软件跳转到BSL就会不稳定
li dong:
回复 li dong:
没有人知道吗?
HG:
回复 li dong:
li dong:
回复 HG:
好的。
如果jtag熔丝烧断了就读取不了?
这个情况在500个里面大概会出现6-7个。 如果强制把PUR上啦都是可以得,就软件检测到USB插入跳转到BSL,存在一定概率有问题。
很纳闷
li dong:
回复 li dong:
有人给个答复吗?