跳转到主要内容

MCU复位期间PC端仍然认为USB连接未断开

01、问题现象

有位客户,想使用STM32H523用于产品开发,网购了一块开发板用作评估,结果发现USB连接识别有问题。具体的现象是,当按住复位键,PC端并未识别为USB断开,当MCU再次运行后,PC端的串口工具串口识别和打开会存在问题。但若断开USB连接,PC端却又能正常识别为断开。这个问题对客户比较重要,因为程序需要复位MCU然后通过USB升级固件。这里按下复位键的动作,只是为了模拟MCU复位的过程。客户一度认为是芯片问题,因为根据他们的经验,以往的STM32F103并不会有此问题。

02、分析问题

了解到客户是网购的开发板用来评估芯片性能,于是找到这块评估板的资料。如下图所示:

Image
图1 网购的开发板

▲图1 网购的开发板

图中宣传的官方例程和原理图等资料均不是ST的,找到对应的原理图,很快就发现了问题:

Image
图2 USB外围电路

▲ 图2 USB外围电路

如上图所示,首先USB外围电路是没有ESD保护电路的,但这个是可以理解,为了降低成本,可以将此部分去掉,并无太大原理问题。此外,开发板的USB DP上还加了一个1.5K的上拉。而这就是问题所在了。这个就值得说道下。

STM32的USB外设在传统的STM32F103以及F3系列在DP引脚上是没有集成1.5K上拉电阻的,因此,以往是需要外接一个上拉电阻,但后来的其它新系列USB外设均已经内置集成了,不再需要这个电阻。很明显这块开发板的设计者仍然秉承了F103的惯性设计思路,多加了一个外部的1.5K上拉。与内部集成的电阻相当于并联。这在插拔PC时并不会有太大问题,但刚好这个客户它需要地是MCU复位时能正常识别USB的通断(否则会导致PC端的串口终端重新连接问题),由于MCU的USB是一直连接着PC,即便MCU复位且无任何代码执行,这个1.5K的外部上拉也一直存在,PC端正是靠这个电阻来识别USB的连接状态,这也就是为什么在MCU复位期间,PC端仍然认为USB一直连接的原因。最终导致了串口终端在自动打开串口时出现错误。

客户所使用的这块开发板,除了USB问题外,还发现了VCAP上的电容也不对。

Image
图3 VCAP电容

▲ 图3 VCAP电容
 

再来看正确的VCAP参考电路,如下图所示:

Image
 图4 STM32H563参考电路

▲ 图4 STM32H563参考电路

STM32H5上正确的VCAP外围参考电路如上图所示,两个VCAP引脚外部直接相连,每个引脚外部接一个2.2uF的低阻抗的陶瓷电容到地,且尽量靠近对应引脚。

客户的开发板为什么这里只放了一个100nF的电容?猜测硬件设计认为一个VDD引脚加一个100nF的电容,然后一个VCAP也应该对应一个100nF电容。但问题是H563有两个VCAP引脚,这里却只有一个100nF电容?内核电压能稳定么?顿时觉得,开发板设计者的一种浮躁的气息扑面而来。

当客户将那个1.5K上拉电阻拿掉后,然后USB功能测试通过。但由于USB没有ESD保护,且VCAP电容也不对,还可能存在其它一些暂时未细查且未暴露出来的风险等等。

03、小结

如果想评估STM32某一款型号,建议直接购买ST官方的NUCLEO板,它在网上购买并不贵。或者建议购买知名品牌的开发板,不建议为了便宜选择那些小众产品,避免走弯路浪费时间。最重要的是,它可能会误导客户对STM32的性能评估。

来源:STM32

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。