CH32FV32系列进入STOP及STANBY模式电流大的问题

发布时间 2023-11-09 09:54:03作者: WCH_CH32

关于CH32FV32低功耗模式(STOP及STANDBY)。

 

我们EVT例程中将所有IO均配置成下拉输出而防止外部器件漏电流引起功耗增大。但是有的客户进入低功耗后需要IO电平保持从而出现了进入STOP/STANBY模式后电流还是很大(STOP几百个uA  STANDBY一百多uA)。手册中低功耗电流如下:

 

对此通常做法有如下几点:

  • MCU外围管脚配置
  • 检查外围有无闭合回路
  • SWDIO,SWCLK 管脚
  • 电压调节器与RAM低电压模式是否开启

1. MCU外围管脚配置

在进入Stop模式时候,通常是设置成为输入模式。 根据设备原理图查看IO外部引脚连接电路,

如果闲置状态为悬空,设置为模拟输入;

如果闲置状态为低电平,设置为下拉输入;

如果闲置状态为高电平,设置为上拉输入; 

当悬空时,斯密特触发器是打开的,要判断输入的是高电平还是低电平,需要一点电流损耗,但是设备模拟输入,这个触发器是关闭的 当IO通过外围电路电阻接地被拉低时,

如果设置为上拉输入,则在芯片内部的上拉电阻和外围的下拉电阻构成回路,电流损耗取决于这两个电阻;

当IO通过外围电路电阻接电源被拉高时,则在芯片内部的下拉电阻和外围的上拉电阻构成回路,电流损耗也取决于这两个电阻;

2. 检查外围有无闭合回路

排查外围电路,某些驱动、电源转换IC如果是由软件使能,如果进入停止模式之后不需要则关闭,因为本身就有工作电流;如果是由硬件使能,则需要查看芯片手册看静态工作电流是多少,如果比较高,只能修改硬件电路或者用低耗IC代替。外围是否有一些闭合回路,比如电压采集,虽然ADC已经关闭,但是这个分压电路还是有损耗的,大小一般取决于电阻和电源电压。

3、SWDIO,SWCLK 管脚

看看是不是SWDIO、SWCLK两个引脚也直接设置成了模拟输入,并关闭了调试功能:GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);

4、电压调节器与RAM低电压模式是否开启

停止模式:在停止模式下,可选LPDS 位,LPDS=0,电压调节器工作在正常模式;LPDS=1,电压调节器工作在低功耗模式。在低功耗模式下,可以通过配置PWR_CTLR 寄存器的RAMLV=1,使能RAM 低电压模式,功耗达到最低。

待机模式:在待机模式下,当正常供电时,通过配置PWR_CTLR 寄存器的R2KSTY=1 控制2K 字节RAM 不掉电,R30KSTY=1 控制30K 字节RAM 不掉电;当使用VBAT 供电时,通过配置PWR_CTLR 寄存器的R2KVBAT=1控制2K 字节RAM 不掉电,R32K_VBATEN =1 控制30K 字节RAM 不掉电。在该基础之上,可以通过配置PWR_CTLR 寄存器的RAMLV=1,使能RAM 低电压模式,功耗达到最低。