【经验主义害死人:STM32的Vcap的问题及解决】
我有个同事,经常也是设计电路这些的,像stm32f1,stm32f4这些的电路经常在设计,算是经验丰富吧。但是这次有个案子(平台:MDK+STM32F405RGT6(LQFP64封装)),他也参与了改版V2版(之前那个版本是别人设计的,称之为V1版,其实主要就是改原理图后lay板)。当时,改版完成后,审图的时候并没有仔细看CPU电路,以为和之前的电路一样(之前的CPU电路是完全OK的)。所以,板子就去打板了。。。。因为板子上还有其他模块被改,所以板子打回来我们就焊接了几pcs,在确定板子焊接没问题之后,插上仿真器结果发现板子根本识别不到仿真器(Jlink仿真和STLINK仿真都识别不到)。而且数显的Power supply的电流显示100度mA,CPU表面微微发烫。
对比V1版电路图和V2版电路图,就CPU电路部分而言:V2版的VCAP_1和VCAP_2都接地了。
查看相关手册,觉得这个问题(仿真器不识别),是由VCAP_1和VCAP_2接地引起的。
所以用解焊CPU的31引脚(VCAP_1)和47引脚(VCAP_2),用镊子轻轻挑起,这两个引脚,使之浮空。
然后重新插上仿真器,发现可以识别仿真器,并且下载程序能够正常运行。
量测31引脚(VCAP_1)和47引脚(VCAP_2)电压如下:
最后的解决办法,在31引脚(VCAP_1)和47引脚(VCAP_2)挑起的情况下,通过飞线焊接2.2UF电容,另外一端接地。
一、原因分析
为什么对于LQFP64封装的STM32F4的VCAP_1和VCAP_2都接地就有问题,而对于LQFP64封装的STM32F10XX的31pin和47pin接地就没有问题呢?
1、查看STM32F4 datasheet,我这里以STM32F405xx/STM32F407xx 的datasheet为具体实例做以说明。在F4的datasheet的page15 对兼容性的板子的STM32F10X 和STM32F4XX做了详细的说明。
注: Ω RESISTOR OR SOLDERING BRIDGE PRESENT FOR THE STM32F10X CONFIGURATION NOT PRESENT IN THE STM32F4XX CONFIGURATION (0欧姆电阻或者桥焊在STM32F10X的板子中出现,而不STM32F4XX的板子中出现)
同样的,查看STM32F10XX的datasheet,我这里以STM32F103xC, STM32F103xD,STM32F103xE 的PDF版的datasheet为实例说明。在datasheet前面一部分的描述中,并未对VCAP或VSS做详细描述。
2、查看STM32F4 datasheet对引脚功能的描述表。发现LQFP64的31pin为VCAP_1,47pin为VCAP_2。
同样的,查看STM32F1 datasheet ,对引脚功能的描述表:发现F1的31pin是VSS_1,47pin是VSS_2(这个是接地的)。
3、查看STM32F4 datasheet中Power supply schemes 章节的电源的内部Block,可以看到VCAP_1和VCAP_2是VOLTAGE REGULATOR(调压器)相关的两个引脚,并且外接一个2.2UF的电容再接地。
再看,该部分章节对调压器的描述:
datasheet 关于这部分,对VCAP_1和VCAP_2的外接电容及串联等效电阻做了明确的规定:
这也就是为什么,F405RGT6的板子上VCAP_1和VCAP_2外接的电容必须是2.2UF而不是其他容值的电容。
同样的,查看STM32F1 datasheet中Power supply schemes 章节的电源的内部Block。发现F1的电源的Block中没有VCAP,而多了VSS(接地)。
4、查看F4 中文参考手册。page89对调压器的描述。
嵌入式线性调压器为备份域和待机电路以外的所有数字电路供电。调压器输出电压约为 1.2 V 。此调压器需要将两个外部电容连接到专用引脚 VCAP_1 和 VCAP_2,所有封装都配有这两个引脚。为激活或停用调压器,必须将特定引脚连接到 VSS或 VDD。具体引脚与封装有关。
通过软件激活时,调压器在复位后始终处于使能状态。根据应用模式的不同,可采用三种不同的模式工作。
也就是这里,对CAP_1 和 VCAP_2的真正作用,做了详细的说明。CAP_1 和 VCAP_2是连接到调压器上,为备份域和待机电路以外的所有数字电路供电。也就是手册中说到的1.2V域。(“调压器为 1.2 V 域(内核、存储器和数字外设)提供全功率”)。而有些封装么有CAP_1 (pin31)和 VCAP_2(pin47),而有VSS_1(pin31)和VSS_2(pin47)。VSS_1(pin31)和VSS_2(pin47)的真正作用是激活或者停用调压器。
同样的,查看F1的中文参考手册中,page37对电源部分的描述:
STM32的工作电压(V DD) 为2.0~3.6V。通过内置的电压调节器提供所需的1.8V电源。
也就是说,这里的调压器输出电压为1.8V,为内核,内存和外设等提供电压。(1.8V域)
所以,我们这个案子问题产生的原因就是:设计人员,因为之前F1的经验,对F4的设计也是做了相同的处理。而导致板子除其余电压正常外,不能识别到仿真器。经验惹的祸。
二、问题的验证:
1、我手里有Nucleo-F466RE的ST的评估板,所以我想看看Nucleo-F466RE对VCAP_1 (31pin)和 VCAP_2(47pin)是怎么处理的?
通过Nucleo-64的原理图可以看到,对VCAP_1 (31pin)和 VCAP_2(47pin),Nucleo-F466RE是直接用SB38,SB33这两个跳线(也可以叫0欧电阻)直接接地了。而在实物图中也是,C22和C25 没有焊接。
那么为什么Nucleo-F466RE又如此特殊呢?
接下来,我们查看STM32F466RE的datasheet。
STM32F446RE的datasheet已经在page15,做出了明确的说明(如上图):
对于STM32F446RE来说,VCAP_1 (31pin)和 VCAP_2(47pin)是 直接接地,而非接电容。
所以在Nucleo-F466RE的板子中,有了SB38和SB33. 那么由于SB38和SB33的加入,而使得我们CPU可以根据不同的芯片型号,而非常灵活的更换CPU。
2、STM32F407ZTG6 板子的VCAP_1 和 VCAP_2
原理图中,对其的处理是:
量测VCAP_1 和 VCAP_2 波形如下:VCAP_1和VCAP_2电压均为1.27V
总结:
尽管我们说,STM32的CPU电路很简答,有时候是拿来主义,或者是抄来主义。但是再简单的问题,也需要注意细节。有时候,设计也好,写代码也好,还是不要光照着经验走。有些问题具体问题,还是具体对待,特别是这种电路设计,一定要看datasheet,因为datasheet里面对个别元件或者参数,一定是有详细的说明的。否则就像我们这样,还需要重新打板,不过还好其他电路设计也出现一些问题,改版后重新打板。
点击阅读原文可与作者交流、沟通。
http://m.toutiao.com/group/6326708730362069249/?iid=5386079153&app=news_article&tt_from=android_share&utm_medium=toutiao_android&utm_campaign=client_share
(想看更多合你口味的内容,马上下载 今日头条)
http://app.toutiao.com/news_article/?utm_source=link
转载请注明:徐自远的乱七八糟小站 » 【经验主义害死人:STM32的Vcap的问题及解决】