MCU低功耗模式电路设计

介绍

在当今世界,人们越来越关注节能并确保电子设备不会消耗过多的电力。微控制器单元 (MCU) 是许多电子设备的基本组成部分,MCU 的功耗对设备的整体功耗有重要影响,因此设计具有低功耗的 MCU 至关重要。在本篇博客文章中,我们将讨论 MCU 低功耗模式电路设计以及如何帮助降低功耗。

理解 MCU 低功耗模式

低功耗模式是 MCU 在不执行任何指令时进入的一种省电模式。在此模式下,MCU 的时钟和其他外设被停止以减少功耗。在低功耗方面,YTM32系列MCU支持Sleep,DeepSleep,Standby和Power Down(L系列不支持)几种低功耗模式,其中Standby模式是CPU可以保留运行状态信息的最低功耗模式,Power Down模式则是只有部分模块和部分SRAM可以保留运行信息,其他模块和CPU在内都会断电,系统唤醒之后需要重启,该模式是系统的最低功耗模式。YTM32系列MCU通过多种低功耗模式组合能够很好的满足汽车应用的低功耗需求。

低功耗模式简介

YTM系列MCU针对汽车的低功耗需求,定义了几种不同的低功耗模式:

  1. Sleep模式,也称为睡眠模式。这种模式下MCU内部的时钟都保持工作状态,CPU核心停止工作,等待外设中断唤醒,因为只有CPU停止工作,所以一般功耗降低的比较少,但是系统可以最快速的唤醒,对于采用系统时钟的外设也是没有影响的。在Sleep模式下,芯片内部电源模块依然保持正常运行状态,有比较高的带负载能力。
  2. DeepSleep模式,也称深入睡眠模式。这种模式下系统总线时钟停止工作,CPU核心停止工作,等待外设中断唤醒,此时对于采用系统时钟作为主时钟的外设,比如eTMR,pTMR,DMA等模块因为没有了时钟,所以都是不能工作的。系统的其他时钟,比如FIRC,FXOSC等时钟是可以根据时钟配置选择开启和关闭的,对于支持功能时钟的外设,如果相应的时钟保持开启,那这些模块也是可以正常工作的。DeepSleep模式由于总线时钟关闭,一些依赖总线时钟的模块也无法工作,所以功耗会有比较大的降低。在DeepSleep模式下,芯片内部电源模块依然保持正常运行状态,有比较高的带负载能力。从DeepSleep模式唤醒的时候,因为一些功能时钟需要重新启动,所以唤醒时间相比于Sleep模式会有一定的延长,这个时间还取决于有多少时钟需要重新启动。
  3. Standby模式,也称为待机模式。这种模式和DeepSleep模式的主要区别是芯片内部的电源模块工作在低功耗模式,此时芯片的带负载能力有一定减弱。这种模式下对于支持功能时钟的模块,如果相应的功能时钟开启,这些模块也可以正常工作,并可以正常唤醒芯片。这种模式下因为芯片内部电源模块需要从正常工作模式转换成低功耗模式,唤醒的时候需要从低功耗模式回到正常模式,所以进入待机模式和从待机模式唤醒都需要一定的时间,这个时间一般是微秒级别。在Standby模式下,芯片内部RAM数据依然保持,Flash进入低功耗模式,所有模块寄存器配置保持不变,所以唤醒的时候,CPU还是可以继续运行。
  4. PowerDown模式,也称为掉电模式。这种模式芯片大部分数字电路的供电被断开,只有少部分数字逻辑单独供电,芯片内部电源模块仅维持不断电的少量数字逻辑供电,此时芯片的功耗是最低的。在PowerDown模式下仅有支持唤醒功能的IO可以唤醒系统,另外还支持唤醒的内部模块包括lpTMR,RTC,ACMP等,模块的功能时钟也只有SIRC和SXOSC可以选择。PowerDown模式因为大部分数字电路都已经断电,所以唤醒的时候系统需要复位才能正常运行。

MCU 低功耗模式唤醒方式

要设计 MCU 低功耗模式电路,需要考虑 MCU 的架构、应用的要求和电源。电路必须设计为确保 MCU 可以在需要时进入低功耗模式并在必要时退出低功耗模式。一种方法是使用外部中断来唤醒 MCU 从低功耗模式中唤醒。中断可以由外部信号生成,例如按下按钮或传感器读数。中断信号可以连接到 MCU 上的引脚,并且可以编程 MCU 在引脚状态改变时唤醒。

另外一种设计可以使用芯片内部的低功耗定时器唤醒。在进入低功耗模式之前,通过配置定时器的溢出时间,定时器会保持计数。当溢出时,定时器会产生中断以唤醒MCU。

还有一种设计 MCU 低功耗模式电路的方法是使用看门狗定时器。看门狗定时器是用于监视系统操作的定时器。如果系统在指定时间内未响应看门狗定时器,则 MCU 将被复位。通过使用看门狗定时器,MCU 可以被编程为在不执行任何指令时进入低功耗模式。当看门狗定时器到期时,MCU 将被复位并恢复正常操作。

硬件设计注意事项

MCU的低功耗模式和实际硬件设计电路有直接的关系,如果硬件电路设计不当则可能出现低功耗模式电流过大的情况。

在硬件电路设计中要注意对于IO口的处理,在YTM32芯片中,除了调试和复位IO以外,其它IO在上电后均保持模拟功能,对于这些IO,如果应用中未使用可以直接悬空处理,但是软件中不能再将这些IO配置为数字功能,包括GPIO和数字外设IO功能。否则在低功耗模式下,这些IO则可能出现漏电。

对于需要使用的唤醒IO,要保证芯片外部有固定的电平(高或者低),如果外部无法保证则要依据实际设计开启IO的上拉或者下拉功能,保证IO有一个固定的输入电平。上下拉的选择要和实际设计匹配,比如UART_RX引脚,在IDLE状态外部输入一般都是高电平,这个使用就需要使能上拉电阻,否则外部为高电平,内部下拉也会有漏电情况产生。

针对调试引脚和复位引脚,MCU上电之后就会开启相应的数字功能,并且为了系统稳定,默认状态下这些引脚就开启了上拉或者下拉电阻,这样可以提高系统的抗干扰能力。但是如果这些上下拉和外部硬件有冲突则也可能产生漏电。

以下是YTM32 MCU带有JTAG功能情况下,默认开启的IO列表,当MCU只支持SWD时候PTA10和PTC6和其它IO一样,在上电状态会保持模拟功能。

PINPullFunction
PTA4UPJTAG_TMS_SWD_IO
PTA5UPReset_b
PTA10NAJTAG_TDO_SWD_SWO
PTC4DOWNJTAG_TCK_SWD_CLK
PTC6UPJTAG_TDI

对于上述IO,硬件设计中外围电路要避免和内部上下拉状态产生冲突,如果硬件设计已经固定,比如外部电路错误的对PTC4做了上拉操作,那么系统在初始化的时候可以将PTC4上的下拉电阻功能关闭,这样也可以保证系统在低功耗模式下不会出现漏电。

另外,我们在调试过程中,经常遇到插入调试器的时候,低功耗电流比较大,这个实际上就是因为调试端口内部上下来的状态和调试器有冲突导致的,对这种情况我们直接将相应的上下拉电阻关闭就可以得到一致的工作电流。

注意:当使用IO唤醒的时候,相应的唤醒IO在低功耗模式下一定不能悬空,否则可能会产生额外的漏电。

结论

MCU 低功耗模式电路设计是设计节能电子设备的重要方面。通过在 MCU 中实现低功耗模式,可以显著降低设备的整体功耗。在本篇博客文章中,我们讨论了低功耗模式的重要性、其工作原理以及如何设计 MCU 低功耗模式电路。遵循这些指南,您可以设计出功耗更低的 MCU,使您的电子设备更加节能。


本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。

发表新评论