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

【经验分享】STM32L4 中 STOP2 模式下的漏电流

[复制链接]
STMCU小助手 发布时间:2022-2-17 20:07
前言! M7 Q! ?9 R* D( ~- n$ \
STM32L4 系列,目前是 STM32 超低功耗产品中最强大的一个系列。它还为我们提供了更多的低功耗模式的选择,包括STOP2 模式,包括低至 30nA 的 Shutdown 模式。对于这些模式,我们需要进行深入地了解,才能把它们用好。( s: l! u; Z& V* A6 [: W" j

" N2 m# A# o' N* l8 n/ n5 n5 S6 v# v+ D' K: h
问题
8 ~2 s2 G6 z  k: v5 [  X/ I: x某客户在其产品的设计中,使用了 STM32L476RGT6。客户在开发过程中,发现当进入 STOP2 模式后,MCU 的电流保持在179.6uA,远大于数据手册中所描述的值:1.18uA (3V 工作电压 & 室温 & 无 LCD & 无 RTC)。
  }3 F, m3 h0 ^" ]- f
1 B5 w" l- ~& h0 o" Q
) f; f0 m4 `# ^0 @9 G, B3 F+ u调研
- q( J2 Y) x- g. Y$ [1.了解问题
# O9 `# O/ V1 a5 t首先,我们先确认这个 179.6uA 的电流真实存在,而且只是 MCU 上的电流,不是整机电流。客户并没有使用 LCD,也没有RTC,根据参考手册,在 3V 的供电电压下,这个电流应该是 1.18uA 左右,如下:
, l# H9 U7 i& B5 h. j7 q1 X- W" F/ \0 t& b% v6 ?: m
5SWQ}N4X}1WS[P~NMV)(1_0.png
  u* x# s! E; y8 h3 _& q: {
+ V1 k, T6 W4 c/ X5 j$ t( w% V5 W目前所测的这个电流实在是太大了。2 F0 G4 h/ h4 A2 A

8 f  v% B* o& ]0 J5 Z9 a0 H' T/ X2.问题分析' e) X) v! A. {' v) E. R5 D
根据代码和现象确认 MCU 已经进入了 STOP2 模式。那么,这个电流是如何产生的呢?初步怀疑是有输出口在对外输出电流。于是,找到电路图,对电路图进行了检查,客户的电路图并不复杂,没有很明显可能会导致往外输出电流的情况。, |! k, O5 k$ v9 v9 n* \
! r; l8 E" Z! \& ?; Z0 S
, s$ n! T2 h& V( b
结合电路图,我们对 I/O 口的状态进行了检测,最后发现 MCU 的一个 I2C 接口上的两根信号线电平为低!这要分成两种情况来看,一是这两个 I/O 口被配置为输入口,那么它是对的,不会产生电流;另一种情况是,它仍然为 I2C 功能的开漏输出口,那么这个情况下将会产生漏电流。所以,需要对代码进行检查。5 O9 ~! f! ]3 Z0 R$ h* U) V9 y
1 ?% n; f. t4 y/ t
: M) F: h5 Q% Y. s& r* R" [  h0 I
从电路图上来看,MCU 的 I2C 接口,SCL 和 SDA 两条线直接连接到外部器件,没有上拉电阻。所以,先检查 I/O 配置,这两个口被配置为具有内部上拉的复用开漏功能模式,这是正确的配置,没有问题,使用了内部上拉电阻。但是,我们发现客户在进入 STOP2 模式之前并没有对这两个口的配置进行更改,也就是说,它们仍然保持 I2C 功能的开漏输出结构,带着内部上拉电阻。, A( d- `: N1 ~0 a6 E

# L# x& \& m9 U: H( |. \) _/ c; c+ ]# E0 s* Q' u
但是,如果 I2C 是在空闲状态下进入 STOP2 模式,按道理,它们应该是保持在高电平。为什么两个引脚都是低电平呢?再检查用户代码,发现代码中将数据写入 I2C 进行发送后,就直接进入 STOP2 模式了。问题来了,如果进入 STOP2 模式的时间点上,数据还在发送过程中,此时,若 SCL 和 SDA 都处于低电平的情况下,I2C 外设时钟停止,SCL 和 SDA 的状态将被锁定在输出低电平状态上。我们使用示波器对此情况进行测试,发现确实如此,在进入 STOP2 模式时,I2C 数据还在发送;处于 STOP2 模式中,SCL 和 SDA 保持为输出低电平;从 STOP2 模式唤醒后,I2C 继续把剩下的 bits 发完。! L3 t9 A! J& ]

$ T% [: L: ]# P# J# P; H来看一下此时 SCL 和 SDA 的 I/O 配置图:
& _  {$ a. |& y! K7 B& j' w0 q9 p- V; I' O
3%}Z{R~1T~F(KZ`Z1U92OKN.png 5 O, s; @! K  _# D

' g: k7 M' _4 f到此,这个问题基本就理清楚了:当 I2C 在工作时,并在 SCL 线和 SDA 线上发送低电平时,N-MOS 被打开,电流从VDDIOx 经过上拉电阻流入 I/O 口内部,经过 N-MOS 流入 VSS。若此时进入 STOP 2 模式,由于 Vcore 域的所有时钟停止,导致 I2C 外设时钟停止,那么此 I/O 状态被保持,将导致在 STOP 2 模式下电流持续产生。8 ~3 {2 L+ R  H: ^5 k* ^5 P! U
1 ~: Z, g! Q5 {* G& \
STM32L476 的内部上拉电阻为 25~55 kΩ,标称值为 40 kΩ ,3V 的工作电压,两个 I/O 的上的电流大约是
" {+ F1 o! E9 _# M% o' S                                 3V/40 kΩ * 2= 150uA2 r& F! l. ]7 {/ N0 C8 c. o" L' ]' b
因为内部上拉电阻并非就是 40 kΩ,所以我们测得到 179.6uA 就是相当地正常了。0 q2 h9 ~7 ?/ Q( E1 ~; |0 j
! i4 z  P7 r% ]: Q
3.问题解决3 U( K: \" k0 U3 A( j/ D- Q
检查 STM32L476 的参考手册 RM0351,在 STOP2 模式下的描述中,可以看到以下这一段话:# o7 M( b" v7 N8 t5 u9 o6 u8 I

; d* _+ J6 W) X# V OF05LD}(DS((G(9@92D.png 8 \' f, `5 X. _7 Q& @& c9 X! V( |

3 F& f2 n- H1 x1 a: F! k  ^意思是:所有在 STOP2 模式下不能使用的外设,在进入 STOP2 模式之前,必须在其外设本身清除相应的使能位来进行禁用,或者通过设置相应的位将其恢复到复位状态。4 v/ g" }* W: C

- z% x6 I2 _' q: _. V  z+ u8 X于是,需要对代码进行修改:在进入 STOP2 模式之前,将 I2C 外设进行复位,复位后将 SCL 和 SDA 两根线配置为输入上拉状态。为什么要配置为输入上拉呢?因为此 I2C 在外部上没有上拉电阻连接,需要在 STOP2 模式下保持这两个 I/O 上有确定的电平,以避免其易受电磁干扰和额外的电流消耗。而这两个口工作中又作为 I2C 接口,所以选择上拉电阻而不是下拉电阻。
$ F3 u) o& V. v; R4 t* e$ u5 X& @# _- |5 d. J: E3 a3 d9 }

' O, e1 w8 l  A9 d* @  t2 R+ r0 r修正后,再进行测试,可测得在 STOP2 模式下的电流为 1.0uA,与数据手册相符。3 n0 [/ M; u7 {* L8 X) ~

! h6 ^& b0 ?* w+ O# U8 o# b' c# S  G9 C8 }2 ^& @5 Q* F" X
结论& D, Z7 Z# |; X! U: E
由于在进入 STOP2 模式之前没有对 I2C 进行复位及 I/O 口处理,导致在 STOP2 模式中产生了漏电流。0 m6 Z. r$ E$ }- K4 p' l5 C

: i  W6 k! m" S6 X0 r9 m! K+ B7 x
! @; f: j; q! a7 W) e; y. B处理& A# [+ g4 I% H. N- W) I
在进入 STOP2 模式下,请确保所有不相关的外设都已经被正确复位或禁用,并配置 I/O 口为相应的正确结构。此种情况还容易发生在使用操作系统的应用中,因为多个任务的调度很容易让使用者在进入 STOP2 模式时忘记对所有的外设进行检测。所以,在进入 STOP2 模式前,请检查一下其他任务的工作情况,是否还有外设在传输数据还没传输完,是的话需要等待其结束,确保所有数据传输完成后,对外设进行复位或禁用,再进入 STOP2 模式。6 u' D' J2 b: i+ E; _1 p
2 [: h1 K/ @) i
赞 收藏 评论0 发布时间:2022-2-17 20:07

举报

0个回答

所属标签

相似技术帖

官网相关资源

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