一种降低MCU功耗的方法
文献发布时间:2024-04-18 19:58:53
技术领域
本申请涉及芯片技术领域,特别涉及一种降低MCU功耗的方法。
背景技术
微控制器MCU(Microcontroller Unit)也叫单片机,低功耗是MCU的一项非常重要的指标,比如某些可穿戴的设备,其携带的电量有限,如果整个电路消耗的电量特别大的话,就会经常出现电量不足的情况,影响用户体验。 为了让MCU的耗电量达到最低,通常通过降低工作模式时的功秏、降低低功耗模式的功秏和缩短唤醒时间等方式实现。
现有技术中,MCU一般具有几种类型的源时钟,如内部低频晶振时钟、高频的锁相环PLL时钟等。在降低MCU低功耗模式的功秏时,其方式一般是通过关闭中央处理器CPU(Central Processing Unit)时钟、关闭外设时钟等方式。但仍有部分功耗是可以省去的,现需要一种方法更进一步地降低MCU在低功耗模式下的功耗。
发明内容
基于上述问题,本申请提供了一种降低MCU功耗的方法,以更进一步地降低MCU在低功耗模式下的功耗。
本申请公开了一种降低MCU功耗的方法,所述MCU包括低电压域和高电压域,所述方法包括:
所述低电压域响应进入低功耗模式请求,控制所述MCU的系统时钟为内部晶振时钟,并关闭除所述内部晶振时钟外的其他时钟;
所述低电压域控制所述高电压域下调下电复位电压阈值、供电电压和驱动电流;
所述低电压域关闭所述内部晶振时钟,使所述MCU进入低功耗模式;
所述内部晶振时钟受所述高电压域响应退出低功耗模式请求的动作而打开,所述低电压域控制所述MCU的系统时钟为所述内部晶振时钟;
所述低电压域上调所述下电复位电压阈值和所述供电电压;
所述低电压域恢复CPU时钟,使所述MCU退出所述低功耗模式。
可选的,所述低电压域包括内部晶振时钟、时钟控制模块和第一控制模块,所述控制所述MCU的系统时钟为内部晶振时钟,包括:
所述第一控制模块判断当前MCU的系统时钟是否为内部晶振时钟;
若是,则无操作;
若否,则所述第一控制模块控制所述时钟控制模块打开所述内部晶振时钟,并将所述系统时钟切换为所述内部晶振时钟。
可选的,所述关闭除所述内部晶振时钟外的其他时钟,包括:
所述第一控制模块控制所述时钟控制模块关闭除所述内部晶振时钟外的其他时钟。
可选的,所述高电压域包括唤醒模块、第二控制模块、供电电压调节模块和供电电压监测模块,所述低电压域控制所述高电压域下调下电复位电压阈值、供电电压和驱动电流,包括:
所述第一控制模块控制所述供电电压监测模块下调所述下电复位电压阈值;
所述第一控制模块控制所述供电电压调节模块下调所述供电电压和所述驱动电流。
可选的,所述低电压域关闭所述内部晶振时钟,包括:
所述第一控制模块控制所述时钟控制模块关闭所述内部晶振时钟。
可选的,在关闭所述内部晶振时钟后,所述方法还包括:
所述第一控制模块通知所述高电压域所述MCU已进入所述低功耗模式。
可选的,所述内部晶振时钟受所述高电压域响应退出低功耗模式请求的动作而打开,所述低电压域控制所述MCU的系统时钟为所述内部晶振时钟,包括:
所述唤醒模块响应所述退出低功耗模式请求,控制所述第二控制模块打开所述内部晶振时钟;
所述时钟控制模块将所述内部晶振时钟设置为所述系统时钟。
可选的,所述高电压域还包括高电压域内部晶振时钟,所述唤醒模块响应所述退出低功耗模式请求,控制所述第二控制模块打开所述内部晶振时钟,包括:
所述唤醒模块响应所述退出低功耗模式请求,将唤醒事件发送至所述高电压域内部晶振时钟;
所述高电压域内部晶振时钟识别所述唤醒事件,控制所述第二控制模块打开所述内部晶振时钟。
可选的,所述低电压域上调所述下电复位电压阈值和所述供电电压,包括:
所述第一控制模块控制所述供电电压调节模块上调所述供电电压;
所述第一控制模块控制所述供电电压监测模块上调所述下电复位电压阈值。
可选的,各模块之间的控制通过请求信号实现。
本申请公开了一种降低MCU功耗的方法。将MCU分为低电压域和高电压域。当MCU需要进入低功耗模式时,低电压域先控制系统时钟为内部晶振时钟,并关闭除内部晶振时钟外的其他时钟,以降低功耗。再控制高电压域下调下电复位电压阈值、供电电压和驱动电流,再次降低功耗,最后关闭内部晶振时钟,使MCU完全进入低功耗模式。同样地,当需要退出低功耗模式时,也由高电压域和低电压域一起控制,使MCU完全退出低功耗模式。通过高电压域和低电压域的协同控制,切换系统时钟,调整电压和电流,以及关闭各时钟的方法,进一步降低MCU在低功耗模式下的功耗。能够在现有技术关闭各时钟的基础上,将MCU在低功耗模式下的功耗降得更低。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的一种降低MCU功耗的方法的流程示意图;
图2为本申请实施例公开的另一种降低MCU功耗的方法的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一:本申请公开了一种降低MCU功耗的方法。
具体的,请参阅图1,本实施例公开的一种降低MCU功耗的方法包括以下步骤:
步骤101:所述低电压域响应进入低功耗模式请求,控制所述MCU的系统时钟为内部晶振时钟,并关闭除所述内部晶振时钟外的其他时钟。
在本实施例所述的方法中,所述低电压域包括内部晶振时钟、时钟控制模块和第一控制模块。
作为一种可选的方法,第一控制模块先判断当前MCU的系统时钟是否为内部晶振时钟。若是,则无操作,否则第一控制模块控制时钟控制模块打开内部晶振时钟,并将系统时钟切换为内部晶振时钟。其中,在本实施例所述的方法中,模块之间的控制均通过请求信号实现。例如,第一控制模块向时钟控制模块发送打开内部晶振时钟与系统时钟源切换为内部晶振时钟的请求信号,时钟控制模块收到这个请求信号并响应,打开内部晶振时钟,并将系统时钟切换为内部晶振时钟。
在本实施例所述的方法中,当系统时钟为内部晶振时钟时,第一控制模块控制时钟控制模块关闭除内部晶振时钟外的其他时钟。例如,第一控制模块向时钟控制模块发送关闭其他时钟的请求信号,时钟控制模块响应该请求信号,关闭除内部晶振时钟外的其他时钟。其中,其他时钟如锁相环PLL时钟或其他高频时钟等。
步骤102:所述低电压域控制所述高电压域下调下电复位电压阈值、供电电压和驱动电流。
在本实施例所述的方法中,所述高电压域包括唤醒模块、第二控制模块、供电电压调节模块和供电电压监测模块。
作为一种可选的方法,低电压域中的第一控制模块控制供电电压监测模块下调下电复位电压阈值,控制供电电压调节模块下调供电电压和驱动电流。例如,低电压域中的第一控制模块向高电压域中的供电电压监测模块发送下调低电压域的下电复位电压阈值的请求信号,供电电压监测模块响应该请求信号,将低电压域的下电复位电压阈值下调。第一控制模块向高电压域中的供电电压调节模块发送下调供电电压与驱动电流的请求信号,供电电压调节模块响应该请求信号,将供电电压与驱动电流下调。
在本实施例所述的方法中,下电复位电压阈值用于保证MCU的电压始终保持在这个阈值之上,一旦MCU的电压低于这个阈值,MCU就会进行复位。因此,需要先将下电复位电压阈值下调后,才能下调供电电压与驱动电流,以避免下调后的供电电压低于下电复位电压阈值而引起复位。
步骤103:所述低电压域关闭所述内部晶振时钟,使所述MCU进入低功耗模式。
在本实施例所述的方法中,第一控制模块控制时钟控制模块关闭内部晶振时钟。例如,低电压域中的第一控制模块向时钟控制模块发送关闭低电压域内部晶振时钟的请求信号,时钟控制模块响应该请求信号,将内部晶振时钟关闭,至此低电压域内的所有时钟都关闭,MCU完全进入低功耗模式。
作为一种可选的方法,第一控制模块也通知高电压域MCU已进入低功耗模式,从而使高电压域进入待唤醒状态。其中,通知过程可为低电压域中的第一控制模块向高电压域中的第二控制模块发送进入低功耗模式信号,第二控制模块响应该信号,向唤醒模块发送进入待唤醒状态的请求信号,唤醒模块响应该请求信号,进入待唤醒状态。
步骤104:所述内部晶振时钟受所述高电压域响应退出低功耗模式请求的动作而打开,所述低电压域控制所述MCU的系统时钟为所述内部晶振时钟。
在本实施例所述的方法中,所述高电压域还包括高电压域内部晶振时钟。
作为一种可选的方法,唤醒模块响应退出低功耗模式请求,将唤醒事件发送至高电压域内部晶振时钟。高电压域内部晶振时钟识别唤醒事件,控制第二控制模块打开内部晶振时钟。其中,高电压域中的高电压域内部晶振时钟对唤醒事件进行识别,当识别到唤醒事件正常时,向第二控制模块发送打开低电压域中的内部晶振时钟的请求信号。当识别到唤醒事件异常(例如不完整或不正确等情况)时,无操作。第二控制模块响应该请求信号,控制低电压域中的内部晶振时钟打开。
在本实施例所述的方法中,当低电压域中的内部晶振时钟打开后,低电压域中的时钟控制模块将内部晶振时钟设置为系统时钟。例如,第一控制模块向时钟控制模块发送系统时钟源切换为内部晶振时钟的请求信号,时钟控制模块收到这个请求信号并响应,将系统时钟切换为内部晶振时钟。
步骤105:所述低电压域上调所述下电复位电压阈值和所述供电电压。
在本实施例所述的方法中,第一控制模块控制供电电压调节模块上调供电电压,控制供电电压监测模块上调下电复位电压阈值。例如,低电压域中的第一控制模块向高电压域中的供电电压调节模块发送上调供电电压的请求信号,并向高电压域中的供电电压监测模块发送上调下电复位电压阈值的请求信号。供电电压调节模块和供电电压监测模块分别响应接收到的请求信号,执行请求信号中的操作。
步骤106:所述低电压域恢复CPU时钟,使所述MCU完全退出所述低功耗模式。
在本实施例所述的方法中,低电压域中的第一控制模块向时钟控制模块发送打开其他时钟的请求信号,时钟控制模块响应该请求信号,打开其他时钟。至此,MCU完全退出低功耗模式。
本实施例所述方法将MCU分为低电压域和高电压域。通过高电压域和低电压域的协同控制,切换系统时钟,调整电压和电流,以及关闭各时钟的方法,进一步降低MCU在低功耗模式下的功耗。能够在现有技术关闭各时钟的基础上,将MCU在低功耗模式下的功耗降得更低。
实施例二:本申请公开了另一种降低MCU功耗的方法,请参阅图2,本实施例所述方法针对MCU进入低功耗模式的过程做介绍。
步骤201:低电压域的第一控制模块判断当前MCU的系统时钟是否为内部晶振时钟。若是,则进入步骤203,若否,则进入步骤202。
步骤202:低电压域的第一控制模块控制低电压域的时钟控制模块打开内部晶振时钟,并将系统时钟切换为内部晶振时钟。
步骤203:低电压域的第一控制模块控制低电压域的时钟控制模块关闭除内部晶振时钟外的其他时钟。
步骤204:低电压域的第一控制模块控制高电压域的供电电压监测模块下调下电复位电压阈值。
步骤205:低电压域的第一控制模块控制高电压域的供电电压调节模块下调供电电压和驱动电流。
步骤206:低电压域的第一控制模块控制低电压域的时钟控制模块关闭内部晶振时钟。
步骤207:低电压域的第一控制模块通知高电压域的第二控制模块MCU已进入低功耗模式。
步骤208:高电压域的第二控制模块控制高电压域的唤醒模块进入待唤醒状态。
本说明书中实施例采用递进的方式描述。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本说明书中实施例中记载的特征可以相互替换或者组合,使本领域专业技术人员能够实现或使用本申请。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
- 一种降低仅支持IO唤醒MCU功耗的方法
- 一种降低微控制单元MCU功耗的方法及系统