一些STM32产品能够使能/失能内部电源监视器,通过PDR_ON引脚电平进行控制实现。PDR_ON引脚电平为低时,内部电源监视器关闭;当PDR_ON引脚电平为高时,内部电源监视器使能。
内部电源监视器影响的功能包括:POR(上电复位)、PDR(掉电复位)、BOR(欠压复位)、PVD(可编程电位检测)、VBAT功能。其中,VBAT功能包括:维持后备寄存器/存储器,为RTC、LSE振荡器提供后备供电和维持其在掉电时工作。
在使用低电压电源的低功耗应用中,当VDD低至最低供电电压附近时,PDR_ON管脚需要进行合理配置。一般当VDD在1.7V~1.9V之间时【不同系列可能略有差异,以手册中VDD范围为准】,可以考虑通过拉低PDR_ON管脚关闭内部电源监视器。当PDR_ON拉低时,内部电源管理器被关闭,POR和PDR功能停止工作,这样可以避免由于供电在POR/PDR阈值附近的电压波动而引起频繁的POR/PDR复位。当然,如果VDD一定不低于1.8V,则可将PDR_ON置高,不必关闭内部电源管理器。
如下电气参数表,摘自
DS11189(STM32F469xx)。当VDD较低时,在VDD纹波下,可能出现满足POR/PDR的触发条件。 例如1.8V供电,纹波在60mV,则VDD供电在1.74~1.86V之间波动,反复出现POR/PDR,这种情况就一定要考虑PDR_ON功能,将其下拉,关闭内部电源管理器。
PDR_ON拉低时,内部电源管理器失能,需要添加外部电源管理器。具体实现电路可参考AN4488。
注:仅在具有PDR_ON引脚封装的STM32产品才能关闭电源监视器。没有PDR_ON功能的STM32,默认使用内部电源监视器工作。
异常现象描述
客户应用中,采用的电源为1.86V左右。根据上述分析,客户考虑到VDD波动低至1.8V(更准确来说,对应PDR域的最大值1.76V)的情况。将PDR_ON引脚下拉,关闭了内部电源管理器。
在压力测试环节,发现设备快速掉电重启时,MCU工作异常。异常后,即使通过热重启,MCU无法恢复工作,只能通过冷重启使其恢复。 如果设备掉电重启间隔时间长,则不存在这种问题。
原因分析
在展开分析时,先看一下采用电路的示意图,如下。
其中,PDR_ON采用下拉形式,根据上面介绍,内部电源管理器失能(内部的POR/PDR功能关闭)。
上图为NRST部分电路示意图,外部NRST引脚外接了100nF电容,与内部上拉电阻组成阻容电路,上电和下电时VDD和NRST信号如下图所示。在上电过程中,VDD有效时,NRST依然处于使能状态(低电位),起到了上电复位效果。但是能够看出,这种电路实现不会达到快速掉电复位效果。
经过与客户沟通,应用中存在掉电重启间隔非常短的情况。同时,由于VDD耦合电容的存在,VDD掉电同样是一个放电过程,存在如下波形图。
图中红框内,VDD电压已经下降到远低于MCU的正常供电范围(1.7~3.6V)。但是由于缺乏PDR,尽管NRST也在下降,但总体仍然处于非激活状态(高电位)。这会导致MCU运行在非正常供电下,甚至是VDD很低的情况下工作,而这种情况在产品的数据表中明确表示,运行在工作范围外,MCU无法正常工作。而红色部分,就是由于MCU工作已经异常,所以在再次上电时,MCU已经无法正常工作, tRSTTEMPO部分也无法正常生效(tRSTTEMPO对应部分如下图介绍)。
掉电重启间隔时间长,VDD放电充分,即使MCU工作异常,在充分掉电后,MCU也完全停止工作。再次上电时,则不会受到影响。
根据分析,异常出现的原因:在低电压供电需求下,关闭内部电源管理器时,并没有在外部增加电源管理单元实现类似功能。使MCU在极低供电电压下依然工作,引发MCU工作异常。
注:经过实测,STM32F469内部电源管理器的关闭,并不影响上图中tRSTTEMPO部分的功能。
总结及建议
MCU电源电路相对简单。但是在实际开发中,建议完全参考数据手册和《Getting started with xxxx MCU hardware development》中电源部分设计,避免由于对ST MCU不熟悉引发的硬件设计问题。