你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32中MCU应用过程中与电源相关的分享

[复制链接]
yumeii 发布时间:2020-1-9 17:00
我们在从事STM32单片机的应用开发及调试过程中,往往会碰到各类异常。其中有不少比例的问题跟电源有关。对于一个电子产品而言,电源部分很关键、很重要,但在实际开发调试中,我们偶尔会有意无意的忽视它。这里分享几个实际案例,以加强刺激,加深印象。1 j# t0 Q8 A% U' h8 R' G
- J2 ^9 }0 }8 T/ S' X3 Y
' c" m0 V% i1 p4 G: t
毕竟因为电源问题可能导致的异常很多很多,这里分享几个案例算是抛砖引玉,希望大家在调试中对电源方面加以重视。个人认为,往往电源出问题时导致的异常时并不太好分析。多数时候异常表现得更为诡异或没章法。【注:下面提到的案例中异常原因都与电源有关,但并不是说出现类似异常时一定是电源的原因。】
# W; B/ f" p, s9 a
/ b  m5 I) N) i9 G6 }, A7 p, L! z, p
* E- e3 ]3 n* X* C' j  n) f
下面主要分享五个基于STM32应用的案例。
! C  ^4 |( J* L
3 j8 Z  P8 w; `4 p! p3 k9 N
! T/ C8 q! t2 g
案例1:STM32芯片的PLL无法正常工作。
9 i" h9 {1 C% c- G7 e7 h. J8 n: g
! S# n1 Z, l$ N
有人使用STM32F373开发产品,每次开启PLL都不能正常运行。如果不跑PLL,即运行基本HSI或HSE都没有问题。首先怀疑是软件配置方面的问题,可是即使使用ST官方的标准库和CUBE库中的例程测试也还是有问题。初步确认和检查,供电电源稳定,一度怀疑芯片品质问题。几经反复比较测试验证,后来发现MCU芯片的一个VDDA脚处于悬空状态,可靠接上电源后问题解决。因为PLL的正常工作也离不开VDDA的供电。/ n3 R  n0 y9 D% a) d6 c
# b8 ^+ E" G1 k2 r- k

2 Q8 Q5 l. u$ d7 A4 w' ^' e案例2:ADC功能异常。
+ P6 f. z2 K) S2 z" j2 t. p" s3 j# {: D+ C1 n7 {& M

$ Y% T, w5 E( Y  D4 u, p4 o某人使用STM32芯片的ADC功能,发现ADC数据完全不对。反复核对供电、ADC硬件线路、来回验证ADC相关软件配置都没能解决问题,让人抓狂。后来一个个检查芯片的电源脚的连接情况,竟然发现VDDA没有连接电源。; F" K, V7 U: h1 c- |

8 Z: }% F6 q+ }4 @, E, l

2 v8 g0 D- ~2 ~' W0 ~0 O 1.png
* I$ i0 p8 W1 n9 E
: e; o9 i* S6 f( c4 w5 q# E4 C+ j( }+ |
  @2 h" G- a' h& [* ^$ w: V
案例3:跟USB主机的VBUS引脚相连的GPIO容易坏掉。9 g' `/ y( B1 l% w6 t

% z1 m8 ^# \5 z7 e; k; j# \. e
$ c7 Z- i) e, q9 j$ M8 j# ~: k
某客户反映STM32芯片某管脚使用一阵子后出现电平异常,进一步证实为该管脚坏损。大致使用情况如下面原理图所示:
& G5 ^7 A4 t. A8 y" f( }$ \/ k1 C5 P, w# v5 t$ w5 ~/ d
# V* h  v" b; s/ S% E
2.png ; F* p& I$ l7 l- T
0 y7 a8 R$ H3 M) b  v+ m

) p8 q& a, r0 m, u# o. _& F( H& _STM32芯片从外部USB主机的VBUS取电。外部VBUS的供电经过一个LDO后再给STM32 MCU供电,同时,MCU的另外一个GPIO【PA9】与外部VBUS直接相连。/ T* n/ d/ X6 V, R. ?" B" i
& ?( e) Z' r8 L- Y+ j0 H* H8 i5 k% q: b

5 s" o8 j+ n. J1 u- o' z+ J这个电路咋看上去貌似没什么问题。但由于外部VBUS 5v电源先要经过LDO再供给MCU,这里就有个延时,而GPIO PA9脚则是与VBUS直连。这就导致接上USB插头的一定时间内,VDD=0v,GPIO PA9的Vin=5v,进而出现VIN[5v]> (VDD+4.0v)的状况,超过了MCU芯片数据手册规定的相应GPIO最大输入电压。
8 T! u9 e5 y  F7 w( h% Y, M0 a$ \9 b" D4 V( {6 }2 D4 U
+ j+ x( o1 l9 E* V
3.png
; L8 R$ l" Y" F: g5 o8 p
! m+ m8 L6 r* o" J" @! T  t5 v5 ^
2 z6 q5 w2 N9 D" h$ j
所以在开发调试过程中,要注意遵守芯片的各个电源特性参数。2 Z+ T& K3 _) ^7 b, j  I' w

+ I5 w, m2 x# l2 h4 C# o0 k

9 X6 e; e; ~( D# t2 x案例4:从STM32F1系列芯片移植到STM32F4时功能异常
. ?8 A- L; Y1 [% v; M5 i  _% m" ]5 c& @1 x. a0 v8 w; L8 W8 u. G7 g

5 a0 X/ M! m! t曾有工程师反映,之前用STM32F1系列芯片好好的,后来因为产品需要,改用STM32F2或STM32F4芯片后,发现芯片根本不能正常工作,即使最简单的程序也跑不顺畅。后来发现其中有部分异常情况源于使用者没有处理VCAP引脚。STM32F1系列芯片没有外部VCAP引脚,而F2/F4等系列芯片有VCAP脚的,该类脚需外接合适的电容到地,以保证内核供电的稳定。【部分STM8也有VCAP脚】3 m) k5 d" w& G+ c4 Y5 E" d

! N3 L1 w) K- q* s6 s9 m% y/ T! a

( K9 v) F& D- S/ o$ x# @+ K 4.png . b6 l. l$ f$ ]0 f7 J3 R

' ^7 [( o1 d# [' i+ D6 w1 g% m$ D
/ C- k7 G* _4 `
案例5:JLINK无法连接STM32目标板。5 m& a2 m  ~3 ~( W

! F6 _7 x& K& V" \

" F1 F4 i$ o/ e  [有人使用J-LINK调试STM32F071芯片的板子,通过JLINK与STM32F071目标板进行SWD连接,目标板已经供电。但发现不论是通过J-FLASH还是MDK,JLINK都没法与目标板连接上。2 u& K) D6 k! p0 x3 @
; }6 i7 G) m1 \; ^
) Y7 M/ M. H! q) F$ h) L9 w
来回检查SWD的4根连接线VDD、SWDIO、SWCLK、GND,没有发现问题。因担心J-LINK驱动版本等问题,建议其使用STLINK进行连接,即使用ST官方的STLINK UTILITY软件工具也无法连接目标板。建议客户核对MCU芯片所有电源及管脚连接情况,最后发现有个负责给GPIO供电的电源脚VDDIO悬空,将其连接电源后,连接正常。
9 W, k) a0 }0 X5 L! a! K8 T* m  }- m# Q  Y% l: T8 k

9 T: k! v. C7 { 5.png
+ r* Q- g* E; o; e9 \0 Z3 c1 G
/ ^: n& Y$ s, g; `" ?. A% l/ r
: v. K7 w. o/ u2 ~, a7 ]
注:STM32系列中,有些芯片的电源部分,除了有VDD,VDDA、VDD_USB外,还有专门的VDDIO供电脚。本案例中,客户是从STM32F1系列产品移植过来的,STM32F1系列芯片上是没有VDDIO电源脚的,所以在移植到STM32F0芯片时,硬件设计时忽视了这个VDDIO脚。
& V" c7 X9 m4 }& D2 R) @6 ?/ D3 D  }- ^2 p

! ^4 o4 b8 p/ u3 s) j8 r顺便说下,整体上讲,STM32不同系列间移植时软硬件的兼容性还是很高的,尤其硬件管脚方面的兼容性。不同系列间相同脚位数的管脚安排的差异大多体现在与电源相关的管脚,这点要特别注意。另外提醒下,部分STM8芯片也有这个VDDIO脚。9 ~8 E# \2 v7 V$ D8 s1 i

* b: Y/ v1 t0 k8 m2 V案例6:STM32芯片总时不时烧掉。' f) h4 ~) g" O8 d; @
+ t( ]) l( D% P8 J; T7 h" A

1 Q' U' t. ~1 R+ \曾经有人反映在使用STM32开发产品中,时不时发现STM32主芯片坏掉。后来几经测试验证发现是原来前端的电源供电芯片品质不行,一定比例的电源输出器件输出异常导致STM32遭殃,进而影响整个产品功能。; s* E: w- }8 b( U

6 U5 b0 O4 U) s# }5 |

' \& \0 q: V1 u3 P/ u我这里简单罗列以上几个案例,权当提醒。这些案例事后在这里写起来是轻飘飘的几句话,不过在没找到原因之前往往并不那么轻松,往往有些可能折腾很久。
* T! R5 ~8 `% f$ q. W! l8 A" U6 u- x, `. r9 n! X8 c

& ~* d* R+ d6 E3 l  a$ e* k总之,在电子产品开发过程中围绕电源导致的异常可谓不胜枚举,有浅层面点的、也有深层面的。比如上面提到的因为基本的电源管脚或参数导致异常,折腾数小时或数天找到原因后,往往有种打掉牙往肚里吞的味道,不足为外人道。还有就是些相对深层次点的,比方涉及到音、视频产品应用,尤其夹杂无线模块时,整个电路板的PCB LAYOUT的合理布局,尤其电源布局及走线显得尤为重要。记得曾经有个客户,开发车载音频产品,带CD及无线等功能。因为在RADIO某个频点出现较大噪声无法出货,前前后后拖了半年多都没改善,后来通过重新LAYOUT后得以解决。所以对于电子产品的电源部分,电源稳定并连接可靠,这是基本要求。对于有些产品还得考虑如何器件布局、信号及电源走线以及如何抗干扰等,并非连通就了事。% k% x4 |$ x# A" @: H  y- t4 B

* j2 c1 N) ?4 M. h6 |7 p
赞 收藏 评论0 发布时间:2020-1-9 17:00

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版