STM32L4 中 STOP2 模式下的漏电流
前言
STM32L4 系列,目前是 STM32 超低功耗产品中最强大的一个系列。它还为我们提供了更多的低功耗模式的选择,包括
STOP2 模式,包括低至 30nA 的 Shutdown 模式。对于这些模式,我们需要进行深入地了解,才能把它们用好。
问题
某客户在其产品的设计中,使用了 STM32L476RGT6。客户在开发过程中,发现当进入 STOP2 模式后,MCU 的电流保持在
179.6uA,远大于数据手册中所描述的值:1.18uA (3V 工作电压 & 室温 & 无 LCD & 无 RTC)。
调研
1.了解问题
首先,我们先确认这个 179.6uA 的电流真实存在,而且只是 MCU 上的电流,不是整机电流。客户并没有使用 LCD,也没有
RTC,根据参考手册,在 3V 的供电电压下,这个电流应该是 1.18uA 左右,如下:
目前所测的这个电流实在是太大了。
2.问题分析
根据代码和现象确认 MCU 已经进入了 STOP2 模式。那么,这个电流是如何产生的呢?初步怀疑是有输出口在对外输出电流。
于是,找到电路图,对电路图进行了检查,客户的电路图并不复杂,没有很明显可能会导致往外输出电流的情况。
结合电路图,我们对 I/O 口的状态进行了检测,最后发现 MCU 的一个 I2C 接口上的两根信号线电平为低!这要分成两种情况
来看,一是这两个 I/O 口被配置为输入口,那么它是对的,不会产生电流;另一种情况是,它仍然为 I2C 功能的开漏输出口,
那么这个情况下将会产生漏电流。所以,需要对代码进行检查。
从电路图上来看,MCU 的 I2C 接口,SCL 和 SDA 两条线直接连接到外部器件,没有上拉电阻。所以,先检查 I/O 配置,这
两个口被配置为具有内部上拉的复用开漏功能模式,这是正确的配置,没有问题,使用了内部上拉电阻。但是,我们发现客
户在进入 STOP2 模式之前并没有对这两个口的配置进行更改,也就是说,它们仍然保持 I2C 功能的开漏输出结构,带着内部
上拉电阻。