关于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 低电压模式,功耗达到最低。
标签:低功耗,电阻,CH32FV32,RAM,STOP,模式,外围,电流,STANBY From: https://www.cnblogs.com/wchmcu/p/17818131.html