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

【实战经验】STM32L4中STOP2模式下的漏电流

[复制链接]
zero99 发布时间:2017-6-21 15:58
STM32L4 中STOP2 模式下的漏电流
" W7 I! N+ n" t% W. p' j
前言
+ k( D" q8 |  M; L0 v+ i& tSTM32L4 系列,目前是STM32 超低功耗产品中最强大的一个系列。它还为我们提供了更多的低功耗模式的选择,包括STOP2 模式,包括低至30nA 的Shutdown 模式。对于这些模式,我们需要进行深入地了解,才能把它们用好。6 K8 ~( x% f9 N7 c: r3 q6 \
$ ~6 W* I) l  I* I2 U2 j0 m: p
问题
) d) y/ ]! P* C7 ?3 q# g5 R$ r) }某客户在其产品的设计中,使用了STM32L476RGT6。客户在开发过程中,发现当进入STOP2 模式后,MCU 的电流保持在179.6uA,远大于数据手册中所描述的值:1.18uA (3V 工作电压 & 室温 & 无LCD & 无RTC)。
' @* N* t% \8 X6 H
7 x) k# O" j# i/ Q' s$ X+ o( c调研  b. G. E9 Y% P8 `- o: ]

) }/ q5 S" n" ]: j) ^. N1.了解问题
  R* `! T/ t" @; O/ y首先,我们先确认这个179.6uA 的电流真实存在,而且只是MCU 上的电流,不是整机电流。客户并没有使用LCD,也没有RTC,根据参考手册,在3V 的供电电压下,这个电流应该是1.18uA 左右,如下:
# l! R. ?. ^( B& L4 q' M
11.jpg 6 ~5 p0 J2 B) M; R& H7 C  q* A6 M
目前所测的这个电流实在是太大了。) }7 e% z. Z4 \9 T) v

8 H* G! F5 h* E/ y) U5 [1 a+ R7 [2 O5 ^% M* D1 i9 w+ c0 x) Z
2.问题分析# P" w) V8 m- [9 Y; w2 |- A, ^- r
根据代码和现象确认MCU 已经进入了STOP2 模式。那么,这个电流是如何产生的呢?初步怀疑是有输出口在对外输出电流。于是,找到电路图,对电路图进行了检查,客户的电路图并不复杂,没有很明显可能会导致往外输出电流的情况。' h+ \: _" `, I9 `
' ]" P8 H% k2 {$ u5 t  ~1 E2 d* b
结合电路图,我们对I/O 口的状态进行了检测,最后发现MCU 的一个I2C 接口上的两根信号线电平为低!这要分成两种情况来看,一是这两个I/O 口被配置为输入口,那么它是对的,不会产生电流;另一种情况是,它仍然为I2C 功能的开漏输出口,那么这个情况下将会产生漏电流。所以,需要对代码进行检查。
9 E( E+ C* B8 U3 X! x" C" p
# g4 |" V* z6 M9 t6 v6 D从电路图上来看,MCU 的I2C 接口,SCL 和SDA 两条线直接连接到外部器件,没有上拉电阻。所以,先检查I/O 配置,这两个口被配置为具有内部上拉的复用开漏功能模式,这是正确的配置,没有问题,使用了内部上拉电阻。但是,我们发现客户在进入STOP2 模式之前并没有对这两个口的配置进行更改,也就是说,它们仍然保持I2C 功能的开漏输出结构,带着内部
1 x8 l9 d2 \( L' D4 r) t" V- i# o1 q上拉电阻。
2 u5 H9 _! W9 J9 `  ^- K  v7 ?  w) J. s  O" d/ o3 ?
但是,如果I2C 是在空闲状态下进入STOP2 模式,按道理,它们应该是保持在高电平。为什么两个引脚都是低电平呢?再检查用户代码,发现代码中将数据写入I2C 进行发送后,就直接进入STOP2 模式了。问题来了,如果进入STOP2 模式的时间点上,数据还在发送过程中,此时,若SCL 和SDA 都处于低电平的情况下,I2C 外设时钟停止,SCL 和SDA 的状态将被锁定在输出低电平状态上。我们使用示波器对此情况进行测试,发现确实如此,在进入STOP2 模式时,I2C 数据还在发送;处于STOP2 模式中,SCL 和SDA 保持为输出低电平;从STOP2 模式唤醒后,I2C 继续把剩下的bits 发完。' L( T3 K+ |" r0 i9 O- ]! w
: R; p) e+ f8 s. B8 x+ R# f4 Z5 \2 j" F6 O
来看一下此时SCL 和SDA 的I/O 配置图:- X! Y) ?; M1 Z+ U* K
12.jpg ' X, S. [! X8 j

3 v* i3 a( I! v$ s$ E4 B, v. L- Z到此,这个问题基本就理清楚了:当I2C 在工作时,并在SCL 线和SDA 线上发送低电平时,N-MOS 被打开,电流从VDDIOx 经过上拉电阻流入I/O 口内部,经过N-MOS 流入VSS。若此时进入STOP 2 模式,由于Vcore 域的所有时钟停止,导致I2C 外设时钟停止,那么此I/O 状态被保持,将导致在STOP 2 模式下电流持续产生。
4 g; F* R) @( E) R
& Y* S/ u& u9 S, wSTM32L476 的内部上拉电阻为25~55 kΩ,标称值为40 kΩ ,3V 的工作电压,两个I/O 的上的电流大约是  r! ]* @* c# m8 @1 S( S& x
                        3V/40 kΩ * 2= 150uA
. }0 `6 W& @6 m+ q; Y因为内部上拉电阻并非就是40 kΩ,所以我们测得到179.6uA 就是相当地正常了。
2 _: ?5 Y/ H# L% R, @( G2 z; ~6 {
! Y6 f) H4 M5 P9 ~! O- i/ E: k
3.问题解决8 r8 b1 y+ J; H4 f- O
检查STM32L476 的参考手册RM0351,在STOP2 模式下的描述中,可以看到以下这一段话:5 E. R. E2 B. b& x! J  I) Q
13.jpg
" H2 R: v. L) m意思是:所有在STOP2 模式下不能使用的外设,在进入STOP2 模式之前,必须在其外设本身清除相应的使能位来进行禁用,或者通过设置相应的位将其恢复到复位状态。# e) `. ?1 M& H6 T, V9 r
# U' J3 `! H+ S: |! a
于是,需要对代码进行修改:在进入STOP2 模式之前,将I2C 外设进行复位,复位后将SCL 和SDA 两根线配置为输入上拉状态。为什么要配置为输入上拉呢?因为此I2C 在外部上没有上拉电阻连接,需要在STOP2 模式下保持这两个I/O 上有确定的电平,以避免其易受电磁干扰和额外的电流消耗。而这两个口工作中又作为I2C 接口,所以选择上拉电阻而不是下拉电阻。
0 I3 H# C. S. ]5 T3 ~
2 n+ L. L3 t8 [3 ]* z修正后,再进行测试,可测得在STOP2 模式下的电流为1.0uA,与数据手册相符。
' ]; @4 [: ^; o. I' K4 Z# j. `
; a1 r5 ]/ L; @
$ x# J; d  H3 D结论
7 [1 E6 C) K3 f4 M5 F+ r3 _0 D由于在进入STOP2 模式之前没有对I2C 进行复位及I/O 口处理,导致在STOP2 模式中产生了漏电流。
7 S5 q# c0 G  X7 d: l0 {) T2 }' h" M4 _. _0 a- N2 \: Z

9 t  C$ M  p# h$ H5 R; w处理
1 m2 P; a4 u1 Q+ ~3 X% I$ R在进入STOP2 模式下,请确保所有不相关的外设都已经被正确复位或禁用,并配置I/O 口为相应的正确结构。此种情况还容易发生在使用操作系统的应用中,因为多个任务的调度很容易让使用者在进入STOP2 模式时忘记对所有的外设进行检测。所以,在进入STOP2 模式前,请检查一下其他任务的工作情况,是否还有外设在传输数据还没传输完,是的话需要等待其结束,确保所有数据传输完成后,对外设进行复位或禁用,再进入STOP2 模式。
* _5 C) p" m! ~: [+ A. h

- a  d: Q1 r* [2 }. `" v/ Y5 X& v8 L1 N1 \+ {% @4 n( G

' N- z4 S& Q: z; x! \# ?# Y$ |2 M9 }文档下载) @3 s$ _( K! G! {  ?

) Q  A. b, w$ Q8 U, ]5 [; o更多实战经验1 e; U: U* d: G' v1 i& q

% N) _: ~" i% x( W2 B. {+ c: \
收藏 1 评论2 发布时间:2017-6-21 15:58

举报

2个回答
wolfgang 回答时间:2017-6-21 16:19:56
IIC上拉电阻遇到的经典漏电。5 N% r; X/ n$ q% p' `$ E# F7 t
% P% x& L- ]# s3 M7 u
漏电不仅在MCU侧,还有远离MCU侧的,要综合考虑,而且还得涉及到电路板的改造。。。。
' F: K6 W" W. d: D& f
oldfang 回答时间:2019-3-8 10:53:03
喜欢这个理论加实测验证的分析。

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版