本应用笔记讨论了采用微控制器的电池备份系统的功耗。大多数Maxim高速微控制器,包括DS87C520、DS89C450、DS80C400和DS5250,都采用多种电源管理方法。本应用笔记探讨了电源管理方法,如停止模式、空闲模式、最佳时钟频率和外设等。包含的示例代码旨在突出显示专门设计在这些微控制器中的新功能,以最大限度地降低功耗。
概述
电源管理在电池供电应用中至关重要。微安的差异可以转化为数月或数年的使用寿命,这可以决定市场上产品的成败。Maxim微控制器的高集成度使其成为要求低功耗的便携式或电池供电应用的理想选择。通过将处理器和外设组合到单个芯片上,消除了冗余硬件,并实现了节能。此外,高速微控制器系列中设计的电源管理功能进一步降低了功耗。
影响微控制器功耗的最大因素是时钟频率。微处理器消耗的功率与其运行速度成正比,因此以尽可能低的频率运行的器件将产生最大的节能效果。选择的速度取决于系统要求,最明显的是中断服务时间。温度也会影响功耗。半导体器件在较低温度下消耗更大的功率。如果正在开发的系统设计用于低温,设计人员应期望高于典型功耗值。系统设计也直接影响功耗,驱动较大的外部负载会增加功耗。
本应用笔记涵盖了高速微控制器系列的大多数成员。解释了它们的电源管理特性,并介绍了将功耗降至最低的技术。由于电源管理功能与许多外设功能(尤其是中断和串行功能)结合使用,因此敦促用户在开始本节之前熟悉处理器的整体操作。本应用笔记随附的软件示例可下载。
所有新的电源管理功能均可在不牺牲吞吐量或对外部事件的响应能力的情况下降低功耗。此系列的成员可能包含下面列出的一个或多个功能:
动态时钟速度控制
高速微控制器支持四种时钟管理模式:停止、PMM1(电源管理模式 1)、PMM2(电源管理模式 2)和空闲。它们可以在这些模式之间动态切换,允许用户优化器件的速度,同时最大限度地降低功耗。停止模式已比标准 8051 功能得到改进,现在支持从外部中断恢复以及复位源。
折返
这些器件具有自动“切换”功能,允许在电源管理模式 (PMM) 下运行的设备在收到外部中断或串行端口传输时切换到“高速档”。这使处于省电模式的设备能够快速响应外部事件和/或操作其串行端口。没有回切功能的传统基于 8051 的设备无法快速处理中断,而无需持续高速运行设备和更高的功耗。
可选时钟源
晶体振荡器是任何微控制器的大量功耗,尤其是在低功耗工作期间。环形振荡器用于从停止模式快速启动,也可用于在正常工作期间提供大约 3 至 4MHz 的时钟源。虽然上电时仍需要晶体振荡器,但一旦晶体稳定下来,器件操作就可以切换到环形振荡器,从而实现高达25 mA的节能。
带隙基准禁用
该选项可用于禁用带隙基准,该基准用于在停止模式下检测电源故障。停止模式电流可以极大地使用此功能。
增强的状态报告
虽然动态切换内部时钟速度的能力是一个好处,但如果在错误的时间执行,它会严重干扰时序相关功能的运行。状态寄存器(状态;C5h),包含有关串行端口、晶体振荡器以及高优先级、低优先级和电源故障中断的状态信息。该软件可以根据此寄存器中的信息延迟或取消计划的速度变化。
时钟速度控制
描述
微控制器的工作频率是决定功耗的最大因素。高速微控制器系列微控制器支持四种时钟速度管理模式,通过减慢或停止内部时钟来节省功耗。这些模式使系统设计人员能够以对性能影响最小的方式最大限度地节省功耗。
聚甲醛
电源管理模式 1 (PMM1) 允许用户以较低的速度运行以节省功耗。设置时钟分频器速率位 (PMR.7-6) 将强制器件从默认的每机器周期 4 个时钟(除以 4)变为每个机器周期 64 个时钟(除以 64)。外部晶体继续全速运行。所有外围设备和指令都将以这种降低的速度运行。微控制器可以通过设置适当的时钟分频器速率位或利用回切功能来恢复4分频操作。
聚甲醛
电源管理模式 2 (PMM2) 允许用户以更慢的速度运行,以提高节能效果。设置时钟分频器速率位 (PMR.7-6) 将强制器件从默认的每机器周期 4 个时钟(除以 4)变为每个机器周期 1024 个时钟(除以 1024)。外部晶体继续全速运行。所有外围设备和指令都将以这种降低的速度运行。微控制器可以通过设置适当的时钟分频器速率位或利用回切功能来恢复全速(4分频)操作。与 PMM1 相比,此模式可实现更大的节能效果。
停止模式
停止模式是可用的最低功耗状态。它通过设置停止位 (PCON.1) 来启动。在此模式下,晶体振荡器停止,所有内部时钟(包括看门狗定时器)停止。实时时钟不受停止模式的影响。停止模式通过外部中断、实时时钟中断、通过RST引脚的外部复位或上电复位退出。每次中断都会导致设备向量到相应的中断例程以恢复执行。
微控制器集成了一个环形振荡器,允许从停止模式快速恢复。这为器件启动工作提供了一个瞬时可用的 4MHz 时钟源。它可以工作到晶体稳定或继续用作时钟源。环形振荡器的稳定性不如外部时钟高,并且器件在环形振荡器工作时不应执行需要高精度或串行端口数据传输的定时测量。有关使用环形振荡器的更多信息,请参阅本文档的时钟源代码控制部分。
空闲模式
空闲模式停止微控制器处理器内核的运行,但保持内部时钟、串行端口和定时器运行。此模式通过设置 IDL 位 (PCON.0) 来调用,并可通过中断或通过 RST 引脚进行外部复位退出。不建议在新设计中使用此模式,因为通过将器件放置在PMM2中并执行NOP可以实现低功耗操作。它的包含提供了向后软件兼容性。
电源管理模式
最大的节能来自使用电源管理模式。与其他技术不同,电源管理模式 1 和 2(PMM1 和 PMM2)允许用户在不牺牲性能的情况下降低功耗。虽然电源管理功能是高能效设计的重要组成部分,但对微处理器的透彻了解将使系统设计人员能够实现最大的节能效果。
时钟速度管理模式旨在根据外部活动和性能需求逐步降低功耗。PMM1 和 PMM2 提供最低的功耗水平,同时仍允许完全计算和外设操作。图1显示了时钟管理模式的进展情况。如下文所述,PMM1 和 PMM2 之间的转换必须通过 4 分频模式进行。
图1.时钟速度模式的进展。
进入和退出电源管理模式
软件使用电源管理寄存器 (PMR) 中的位调用所需的电源管理模式。停止模式通过设置 STOP 位 (PCON.1) 来调用。器件速度由时钟分频器速率位 CD1、CD0 (PMR.7-6) 选择,如下所示。
CD1CD0机器循环率
00保留
014 个时钟(默认)
1064 个时钟 (PMM1)
111024 个时钟 (PMM2)
PMM1 和 PMM2 可通过配置时钟分频器速率位 CD1、CD0 或开关功能退出。进入或退出任一 PMM 只能通过除以 4 模式。例如,要从 PMM1(除以 64)到 PMM2(除以 1024)模式,需要先从 PMM1 切换到除以 4 模式,然后再从除以 4 切换到 PMM2。执行非法速度更改的尝试将被忽略,位将保持不变。软件有责任使用状态寄存器(状态;C5h),然后再尝试改变速度。在异步串行端口操作期间更改速度将破坏串行传输。
当PMM被调用时,外部晶体将继续全速运行,微控制器仍将在每个机器周期执行四个内部状态。在PMM中,器件执行外部时钟的内部分频,PMM16为1(16×4 = 64)或PMM256(2×256 = 4)为1024,以达到所需的频率,而不是每条指令实际执行64或256个内部状态。例如,在 C2 期间发生的操作仍将这样做。大多数应用程序不会发现有必要关注这么多细节,但提供了用于计算关键时序的信息。
图2.PMM1 中的内部 timimg 关系。
请注意,手动或通过回切更改时钟除数不会影响定时访问过程。定时访问与机器内部周期相关,而不是绝对时间参考。
定时器和PMM
定时器 0、1 和 2 将默认上电,每个定时器时钟周期为 12 个外部时钟,以保持与原始 8051/8032 规范兼容。通过在时钟控制寄存器 (CKCON;4Eh) 中设置相关位,可将定时器单独配置为在器件以每分频 8 分频模式运行时,以每定时器时钟周期 0 个外部时钟的速率运行。在PMM期间,定时器1、2和《》以相应降低的时钟速率运行,因为定时器从内部时钟派生其时基。这也将影响PMM中串行端口的操作,因为
CD1CD0OSC。每个机器周期的循环数每个计时器的 OSC 周期数 0/1/2 时钟每个定时器2时钟的OSC周期,波特率生成每个串行端口的 OSC 周期 时钟模式 0OSC。每个串行端口的周期数 时钟模式 2
TxM=1TxM=0T2M=1T2M=0SM2=0SM2=1SMOD=0SMOD=1
00保留
014124221246432
1064(下午1)192643232192641024512
111024 (PMM2)307210245125123072102416,3848192
看门狗定时器与内部时钟的时基相同;即,如果设备处于PMM1,则看门狗也将以64分频模式运行。这使看门狗定时器在PMM和4分频模式之间切换时与处理器的操作保持同步。如果使用 PMM,使用看门狗定时器作为附加定时器的应用程序应考虑到这一点。
实时时钟与 PMM 设置无关。它使用外部32 kHz晶体作为参考,可以在任何模式下访问。
手动退出 PMM
除了回切功能外,还可以通过配置时钟分频器速率位来手动退出PMM。进入或退出任一PMM只能通过除以4模式,并且尝试执行非法速度更改将被忽略,位将保持不变。如果与计时相关的操作可能正在进行中,则状态寄存器 (STATUS;C5h)在切换或切换到PMM之前应进行询问以确定是否已完成。
在 PMM 中重置灵敏度
在PMM中,用于检测外部复位脉冲的方法与在分频4模式下使用的方法不同。在除以 4 模式(和标准 8051 架构)中,复位必须为高电平才能检测到两个机器周期。如果在 PMM 中为真,则必须在至少 128 或 2048 个时钟周期内置位复位。为了避免这种情况,在PMM中运行的设备采用正边缘检测传感器,而不是单机周期鉴定来检测复位信号。这意味着使用PMM的设备更容易受到噪声的影响,因此必须格外小心以保持复位信号无噪声。
回切功能
回切功能允许用户在事件发生时将微控制器快速恢复到更高的速度。启用后,合格事件会导致器件自动从除以 64 (PMM1) 或除以 1024 (PMM2) 切换到除以 4 操作,而无需软件干预。这允许器件以最小的延迟响应高优先级或中断驱动的事件。以下源可以触发回切:
外部中断 0/1/2/3/4/5
检测到串行起始位,串行端口 0/1
发送缓冲器已加载,串行端口 0/1
看门狗定时器复位
上电复位
外部复位
由于PMM、回切、外部中断、定时器/计数器和串行端口之间存在密切关系,强烈建议系统设计人员在尝试使用回切功能之前熟悉这些功能。
状态寄存器
A 状态寄存器(状态;添加了 C5h),以帮助软件确定速度变化是否合适。状态寄存器提供有关串行端口以及高优先级、低优先级和电源故障中断的状态信息,使器件能够确定是否应将器件切换到PMM。
当使用回切功能退出或进入PMM时,状态寄存器的优势变得显而易见。在 PMM 中执行中断服务例程的设备不会执行切换以响应相同或更低优先级的中断。状态寄存器可用于测试正在进行的中断服务例程,并且可以推迟进入 PMM 直到完成,或采取其他操作过程。
启用/启动回切
通过设置 SWB 位 (PMR.5) 启用自动切换回来。当发生合格的折返事件时,器件将退出任一 PMM,并返回到每个机器周期 4 个时钟的默认操作模式。清除SWB位将禁用外部中断和串行端口导致将来切换的能力,但不会影响当前速度。外部中断导致回切必须满足五个条件:
设备当前必须位于 PMM1 或 PMM2 中。
必须设置 SWB 位 (PMR.5)。
必须通过设置 EA 位 (IE.7) 来启用全局中断。
必须启用特定中断。
特定中断发生并得到确认。
通过串行端口的回切略有不同。通常,回切是由中断引起的。对于串行端口,这会带来一个问题,因为它们仅在接收或传输完整字时生成中断。为了使串行端口以标准波特率正确接收或传输单词,它必须全速运行。如果微控制器在PMM中工作,它将永远不会完成接收以启动中断或相应的切换。
微控制器通过在接收到RX引脚上的下降沿(而不是接收器中断)时启动回切(如果使能)来解决此问题。这会在下一个内部机器周期及时将设备切换回全速,以捕获起始位和传输的其余部分。请注意,串行端口启动回切的能力不依赖于使能串行端口中断位(IE.4 或 IE.6),仅取决于特定的接收器使能位(SCON0.4 或 SCON1.4)。串行端口接收必须满足四个条件才能导致回切:
设备当前必须位于 PMM1 或 PMM2 中。
必须设置 SWB 位 (PMR.5)。
必须通过设置特定的接收器使能位(SCON0.4 或
SCON1.4)。
在特定 RX 引脚上检测到下降沿。
回切功能还可与传输功能配合使用。如果满足适当的条件,当串行端口缓冲器(SBUF4;0h 或 SBUF99;C1h) 已加载。这样用户就无需在启动传输之前手动将速度设置为除以 1。发射器中断可用于在传输完成时发出信号,以便软件可以将设备返回到相应的PMM。串行端口传输必须满足三个条件才能导致回切:
设备当前必须位于 PMM1 或 PMM2 中。
必须设置 SWB 位 (PMR.5)。
串行端口传输必须通过加载特定的串行端口缓冲区(SBUF0;99h 或 SBUF1;C1h)。
虽然串行端口发射和接收功能在PMM中都是可能的,但在这些模式下,不可能将波特率发生器配置为任何标准速率(300、1200、2400等),因此无法与标准外设通信。如果要在设计中使用串行端动和PMM,强烈建议使用回切功能。
使用折返时的注意事项
折返时序
使用折返过程时的主要考虑因素之一是将设备从 PMM 恢复到全速所需的时间。这是计算与服务中断相关的延迟的一个因素。回切将在启动回切事件后第一条指令的 C1 周期发生。如果当前正在进行的指令是写入 IE、IP、EIP 或 EIE 寄存器,则中断处理将延迟到以下指令完成。图3显示了双周期指令期间中断和回切之间的时序关系。
图3.中断驱动的回切。
笔记:
PMM16 的内部时钟周期为 1 个外部时钟周期,PMM256 的内部时钟周期为 2 个外部时钟周期。
中断的极性随外部中断数而变化。
示例显示双周期指令。中断和回切的执行将在确认中断的指令的最后一个机器周期结束时进行。
上述时序关系的一个例外是,在启用的串行端口接收器上收到下降沿后,串行端口回切将立即发生。回切将在下降沿之后的下一个内部时钟周期开始时发生。图 4 显示了串行端动和回切之间的时序关系。
图4.串行保护驱动回切。
笔记:
PMM16 的内部 Cx 周期为 1 个外部时钟周期,PMM256 的内部 Cx 周期为 2 个外部时钟周期。
SPRA0 和 SPRA1 将在下降沿 RX 的 1 个机器周期内发生变化。
示例显示单周期指令。中断和回切的执行将在确认中断的指令的最后一个机器周期结束时进行。
中断优先级
由于回切功能使用中断来限定执行,因此它受到中断优先级的影响。外部中断在中断服务例程启动时启动切换。如果正在进行更高优先级的中断,则关联的回切将保持挂起状态。除非启用或禁用特定中断,否则无法为单个中断源启用或禁用回切功能。
以下示例将说明如果不考虑中断源的优先级,如何出现问题。假设用户在使用PMM的设计中同时使用定时器0和外部中断1。在 PMM 中运行时,会发生计时器 0 中断,设备开始执行中断服务例程 (ISR)。在计时器 0 ISR 期间,发生外部中断 1,发出需要快速处理的外部事件的信号。由于两个中断具有相同的优先级,因此外部中断 1 将保持挂起状态,直到计时器 0 ISR 完成。尽管此类中断优先级在任何设计中都是正常考虑因素,但PMM中降低的运行速度将进一步增加与维护外部中断1相关的延迟。通过将外部中断 1 指定为高优先级中断并将计时器 0 保留为低优先级中断,可以避免这种情况。
串行端口启动的回切不使用中断结构,因此不受中断优先级的影响。串行端口启动的回切通过特定的接收器使能位(SCON0.4或SCON1.4)启用或禁用。串行端口启动回切的能力不依赖于启用串行端口中断位(IE.4 或 IE.6)。
串行端动和 PMM
由于PMM的功能是改变微控制器的内部时钟频率,因此串行端口等时序相关的外设可能会受到影响。用户必须确保在切换到PMM时串行端口未接收或传输。最简单的方法是询问状态寄存器 (STATUS.3-0) 中的串行端动位。
在接收操作期间,起始位的下降沿将激活回切(如果已启用)。将设置串行端动监视器位,然后串行端口将检查有效的起始位。如果接收到起始位,串行接收将正常继续,并在接收到整个字时生成中断(如果启用)。为了最大限度地降低功耗,如果在除以 4 模式下不需要进一步处理,则可以在串行端口中断服务例程开始时再次启用 PMM。
可能会遇到由嘈杂的串行端口引起的“虚假”回切。在RX引脚上的第一个下降沿启动回切,并开始寻找有效的起始位。如果未收到有效的起始位,系统将中止串行活动,清除活动位,并且不会执行串行端口中断。但是,回切已经启动,设备现在正在全速运行。要将器件返回到PMM,用户需要手动重置时钟速率分频器位。
图 5 中所示的代码片段说明了一种可能测试,用于无效返回除以 4 模式。此测试可以插入到主代码循环中,在该循环中将定期执行,也可以成为计时器中断例程的一部分。如果没有中断或串行端口处于活动状态,则设备可能应处于 PMM,而不是被 4 分频模式。此代码应根据特定配置进行自定义,即,如果应该在低优先级中断中允许PMM,则在测试状态寄存器时屏蔽该位。
图5.无效的折返测试示例。
PMM 中的多处理器通信
如果使用多处理器通信协议,PMM 和回切功能的有效性将受到影响。微控制器包括支持同一串行端口上的多个处理器的功能。在串行端口模式 2 和 3 中,可以使用 SM2 标志(SCON0.5 或 SCON1.5)来表示接收的字节是地址。从地址识别寄存器(SADDR0;A9h, 萨德1;AAh, SADEN0;B9h, SADEN1;BAh)可以编程为在接收的地址与用户定义的模式不匹配时忽略传输(不导致接收器中断)。
用于电源管理的多处理器通信的含义是,回切是通过检测串行端口上的第一个下降沿而不是生成有效中断来生成的。因此,应被特定处理器忽略的无效地址仍将生成回切。通常,该部件可以在串行端口中断服务例程开始时返回到PMM。不幸的是,在上述情况下,不会生成中断。为了缓解这个问题,应避免将多处理器通信方案与PMM结合使用。如果系统功耗考虑允许偶尔出现错误的回切,则可以使用图5所示的轮询方案将器件放回PMM。
时钟源控制
通过控制系统时钟的来源,系统设计人员可以同时实现更高的性能和更低的功耗。为了提供最大的灵活性,微控制器将采用三个时钟源工作:
外部晶体(使用内部晶体振荡器)
外部时钟振荡器
内部环形振荡器
外部晶体
最常见的时钟源是外部晶体。微控制器集成了一个晶体放大器,设计用于在器件的工作范围内驱动行业标准晶体。外部晶体为与时序相关的外设(如内部定时器和串行端口)以及器件操作提供高精度时钟源。微控制器需要一个基波模式、并联谐振(也称为反谐振)AT切割晶体。然而,晶体振荡器的启动时间很长,这可能会在上电或从停止模式恢复时延迟器件的运行。微控制器必须在上电复位后使用外部晶振或外部时钟源开始工作。
外部时钟源
如果系统中已经存在时钟振荡器,则可以将其用作外部时钟源。外部时钟振荡器具有与内部晶体振荡器相同的启动延迟,并且没有任何特殊优势。外部晶振或外部时钟源可用于在上电复位或电源失效复位后为器件提供时钟。
环形振荡器
环形振荡器是微控制器内部的低功耗数字振荡器。它可以用作主系统时钟,而不是外部晶体或时钟振荡器,除非在上电复位后立即使用。启用后,它为器件操作提供一个 4MHz 时钟源。这通常比系统时钟的频率低,这提供了显着的节能效果。一旦器件切换到环形振荡器作为时钟源,就可以禁用外部晶体放大器,从而进一步降低功耗。
此外,环形振荡器消除了与晶体振荡器相关的延迟,并提供从停止模式几乎瞬时的启动。当用于从停止模式重新启动时,环形振荡器将至少工作 65,536 个时钟周期,此时它可以自动切换到外部晶体或继续从环形振荡器运行。但是,环形振荡器不能用于从上电状态为器件提供时钟。由于环形振荡器的稳定性不如外部时钟高,因此在使用环形振荡器作为时钟源时,不应执行定时测量或串行端口数据传输。
环形振荡器在只需要零星突发处理的应用中具有广泛的适用性。这样的系统偶尔会从停止模式唤醒,执行一些活动,然后返回到停止模式。环形振荡器允许系统从最低功耗状态快速切换,执行操作,然后返回到低功耗状态,而无需重新启动停止的外部晶体。图6显示了在有和没有环形振荡器的情况下从停止模式重新启动的优势。
图6.环形振荡器的优点。
关系图假定 Stop 之后的操作需要不到 18 毫秒才能完成。
与晶体放大器相比,由于环形振荡电流降低,从而进一步节省功耗。
即使在恢复停止模式后不久需要时序相关功能,环形振荡器也可能是有益的。通常,与定时例程或串行端口传输一起需要进行一些处理。在执行 Stop 命令之前,器件应切换到晶体作为时钟源并设置 RGSL 位。从 Stop 恢复后,器件可以在从环形振荡器运行时执行代码,为时序相关操作做准备。然后,器件可以环路,直到RGMD位被清除,表明晶体或外部时钟源现在是时钟源,并且可以开始与时序相关的操作。
时钟控制位
位名位置功能重置写入权限
XT/ “RG-bar”EXIF.3晶体/环形时钟源 选择 0 = 选择环形振荡器作为时钟源 1 = 选择
晶体或外部时钟作为时钟源
10 随时;当 XTUP= 1 且 XTOFF= 1 时为 0
RGMDEXIF.2环形振荡器模式状态。
0 = 晶体或外部时钟是当前时钟源。
1 = 环形振荡器是当前时钟源。0没有
格格斯尔EXIF.1环形振荡器选择,停止模式。
0 = 恢复停止模式时,晶体或外部时钟将是时钟源。
1 = 从停止模式
恢复时,环形振荡器将成为时钟源 注意:晶体预热期结束后,设备将切换到由 XT/“RG-bar”位指定的时钟源。除通电复位后清除为 0 外,保持不变。无限制的
西托夫PMR.3晶体振荡器禁用。
0 = 晶体振荡器已启用。
1 = 晶体振荡器被禁用。设备由环形振荡器工作。00 随时;1 当 XT/ “RG 条形”= 0
西图普状态.4晶体振荡器预热状态。
0 = 振荡器预热仍在进行中。
1 = 振荡器预热完成。1没有
晶体振荡器启动延迟
当晶体振荡器在一段时间不工作后通电时,需要很短的时间才能使脉冲的幅度足以提供稳定的时钟源。这可能导致时钟信号丢失或损坏,从而可能中断处理器操作。为了确保有效的时钟信号,晶体启动计数器在允许器件恢复工作之前检测外部晶体或时钟振荡器的65,536次振荡。这意味着使用较慢晶体的器件将具有更长的晶体启动时间。晶体启动计数器比内部时钟电路更敏感,并且使用坏脉冲和好脉冲的计数来确定预热周期。选择计数器值以使大多数晶体有足够的时间稳定,然后再释放器件以从外部晶体流出。只要清除 XTOFF 位,计数器就会复位。
晶体启动计数器的状态可以通过读取晶体振荡器预热状态位 XTUP (STATUS.4) 来确定。请注意,此位将始终在上电复位时设置,因为计数器必须超时才能使器件恢复运行。出于同样的原因,当从停止模式恢复时,XT/“RG-bar”位设置为 1 时,也将设置此位。当从环形振荡器切换到晶体振荡器时,XTUP位可用于判断晶体何时稳定。在设置 XTUP 位之前切换到外部晶体的尝试将被忽略。
在时钟源之间切换
有时,器件可能希望在环形振荡器和晶体振荡器之间切换。该器件可以随时切换到环形振荡器,因为环形振荡器没有启动延迟。清除晶体振荡器/环形振荡器选择位,XT/“RG 条”(EXIF.3) 将启用环形振荡器。如果预计不会很快需要晶体振荡器,则可以通过设置晶体振荡器禁用位 XTOFF (PMR.3) 来禁用晶体振荡器。这将提供显着的节能。请注意,清除XT/“RG-bar”位不会自动禁用晶体放大器。
由于外部晶体固有的启动延迟,将时钟源从环形振荡器切换到晶体振荡器更为复杂。程序如下:
清除晶体振荡器禁用位 XTOFF (PMR.3) 以重新启动晶体振荡器。
等待晶体振荡器预热状态位 XTUP (STATUS.4) 设置完毕,表示外部晶体预热周期完成。
设置晶体振荡器/环形振荡器 选择位 XT/RG (EXIF.3) 以选择晶体作为时钟源。
复位后的时钟源
上电复位后,RGSL 位被清除,XT/“RG 条”位被设置。这迫使器件从外部晶振或外部时钟源工作,而不管事件发生前的时钟源如何。晶体启动计数器将被重置并开始倒计时,让晶体在恢复运行之前有时间稳定下来。
在外部(硬件)和看门狗复位的情况下,XT/“RG-bar”位将保持不变。这允许器件从复位事件之前处于活动状态的同一时钟源继续。无论 XT/“RG-bar” 位的状态如何,XTOFF 位在任何复位后都会被清除,从而开始晶体振荡器预热。如果不使用晶体,则相应的复位例程应设置 XTOFF 位以禁用晶体振荡器以节省功耗。
停止后的时钟源
在停止模式下,内部时钟停止。在收到外部中断或复位后,器件将在进入停止模式之前使用 XTOFF、XT/“RG-bar” 和 RGSL 位的状态来确定环形振荡器和晶体放大器的状态。可能的配置如表 4 所示。
XT/ “RG-bar”西托夫格格斯尔退出停止模式时的时钟源晶体预热期后的时钟源恢复时启动延迟?晶体振荡器状态
00x环形振荡器环形振荡器不启用
01x环形振荡器环形振荡器不56540
100晶体振荡器晶体振荡器是的启用
101环形振荡器晶体振荡器不启用
如果进入停止模式之前的时钟源是环形振荡器,则器件将使用环形振荡器恢复运行,并在晶体预热期后继续从环形振荡器运行。如果器件从晶体振荡器运行进入停止模式,则从停止模式恢复时,环形振荡器选择、停止模式位、RGSL (EXIF.1) 确定时钟源。晶体预热期结束后,器件可以继续从环形振荡器工作,也可以切换到外部晶体或时钟源。这是由进入停止模式之前 XT/“RG-bar”位的状态决定的。
应该注意的是,如果在进入停止模式之前设置了XT/“RG-bar”位,晶体放大器将自动开始其预热期。如果器件从外部晶体或外部振荡器运行,或者如果它从环形振荡器运行,但晶体放大器仍在运行,则会发生这种情况。(虽然这不是一个合乎逻辑的选择,但这在理论上是可能的。然而,当从环形振荡器恢复并打算继续从环形振荡器恢复时,不需要启动晶体预热过程。为防止晶体预热,请确保器件由环形振荡器工作,并且在进入停止模式之前设置了 XTOFF 位。
环形振荡器对于从停止模式恢复后需要短时间处理的系统特别有用。从环操作允许系统唤醒,执行短时间操作,并在更短的时间内返回停止模式,这是外部晶体稳定所需的时间。这提供了两倍的节能:由于环形振荡器的快速启动,停止模式的超时时间减少,并且环形振荡器本身通常比晶体放大器使用更少的功率。
环形振荡器注意事项
高速微控制器系列中使用的环形振荡器本质上是具有传播延迟的逆变器链。虽然它表现出快速启动时间,但它不具有压电石英晶体振荡器的稳定性。环形振荡器将在为器件指定的温度和电压范围内振荡 3 至 4MHz。这种变化使得很难为计时器和时序敏感型操作生成稳定的时基。由于主系统时钟的变化,中断延迟也将更难计算。
从环形振荡器运行时,不建议以异步模式(模式 1、2 或 3)操作串行端口。串行端口使用内部定时器来生成其波特率,并且产生的频率不够稳定,无法支持异步串行传输。但是,由于主机处理器生成的同步时钟,模式 0 下的同步串行传输是可能的。
环形振荡器的使用不会损害实时时钟、看门狗定时器或定时接入操作的操作。DS87C530内置的实时时钟由外部32 kHz晶体激励,该晶体与系统时钟无关。看门狗定时器和定时访问过程都与内部时钟周期有关,而不是绝对时间参考,并且将正常工作。如果看门狗定时器需要绝对时间段,则建议使用外部时钟源。
执行“环形振荡器回切”
回切功能允许器件在 PMM1 或 PMM2 中工作时“唤醒”以进行串行端口操作。尽管无论时钟源如何,器件都将执行回切,但器件必须采用晶体或外部时钟源工作,串行操作才能成功。在大多数情况下,如果预期串行端口操作,这将排除使用环形振荡器或停止模式。但是,在收到串行传输时,可以从环形振荡器“折返”到晶体。
在串行传输的情况下,环形振荡器几乎没有问题;系统可以简单地启用晶体振荡器,等待晶体稳定,然后开始传输。连续接待更加困难。由环形振荡器工作的微控制器不可能在第一次尝试时成功捕获串行数据传输。一种可能的解决方案是采用握手协议来确认接收器已准备就绪,并且应重新发送数据。这种方案的关键是检测已尝试串行操作并执行一段将切换到晶体源的代码。
推荐的方法利用外部中断作为串行端动监视器。如果负边沿触发中断(如 /INTO、/INT1、/INT3 或 /INT5)连接到 RX 引脚,则起始位的下降沿将产生中断和回切。中断服务例程将启用晶体时钟源并等待其稳定,此时设备会将就绪信号传输回发起方。下面的代码示例演示执行此操作的一种方法。
此外,当从环形振荡器运行时保持晶体放大器使能,可以避免与重新启动晶体相关的延迟。乍一看,这似乎适得其反,因为与单独使用环形振荡器相比,它略微增加了功耗。然而,当使用相对高速的晶体操作器件时,环形振荡器速度的降低仍可节省净功耗。
开发电源管理框架
Maxim的电源管理方法允许系统设计人员在保持最佳性能的同时降低功耗。为了最大限度地节省成本,应仔细分析器件工作条件并制定电源管理方案。
确定使用哪些电源管理模式、何时切换模式以及如何处理高优先级任务取决于应用程序。没有一种方法适合所有可能的组合。通常,时钟速度和源的选择取决于分配的任务,以及对与时序相关的操作(如串行端动)的需求。
采用电源管理的基本系统类别有两种。第一种是休眠或几乎所有运行时间都处于待机状态的系统,例如停止或 PMM2。这些系统通常用于无人值守系统以收集数据或用作环境监测器。它们的特点是在特定时间间隔内相对不频繁的 I/O 活动。第二类系统通常在多个设备上执行高速率的 I/O 活动,否则必须持续运行。在这种情况下,休眠方法是不切实际的,因为设备将花费大部分时间简单地从低功耗状态重新启动。以下各节将更详细地讨论这两种方法。
突发模式操作
一种常见的操作模式是让设备在低功耗状态下运行,执行简短的任务,然后将设备放回低功耗状态,直到发生另一个事件。键盘操作或读卡器活动等操作属于此类别。此类外设通常产生外部中断,该中断执行切换或从停止模式恢复。
关于将什么指定为待机状态的决定取决于将启动返回到活动状态的活动类型。如果预期串行端动,则待机状态必须是可以接收串行数据的状态,例如 PMM2。可以容忍较长中断延迟的系统可以使用停止模式作为低功耗状态。
对各种模式下功耗的检查表明,当使用突发模式方法时,以除以4模式而不是PMM工作可以获得最大的节能效果。 除以4模式的性能是PMM16的1倍,但消耗的电流仅为PMM4的4倍。除以 《》 模式的更高功率/性能比意味着子程序期间消耗的总能量更少。因此,从停止模式唤醒以执行短时间活动突发然后返回到停止的例程应在除以 《》 模式下执行此操作。
程序示例:远程数据记录仪
以下程序说明了运行远程电池供电数据记录设备的通用方案,该设备只需要偶尔使用。在本例中,DS87C530在停止模式下“休眠”,直到按下键盘并执行某些操作。执行操作后,设备将返回停止模式。该器件在大部分唤醒状态下脱离环形振荡器,除非预期或正在进行串行传输。周期性地,实时时钟中断将导致器件从外部源获取数据,将其记录在片内SRAM中,然后返回停止模式。图 7 显示了设备工作原理的状态图。虽然本例使用DS87C530的内部实时时钟,但可以很容易地修改它,使其与PMM2中的内部定时器或外部实时时钟配合使用。
图7.远程数据记录仪示例状态图。
渐进关断
通常,设备需要在活动很少的期间持续运行。这可能是监视系统状态或对关键事件进行计时。虽然这样的系统可以容忍一些性能下降以节省电源,但它不能通过使用停止模式停止操作。电源管理模式允许软件根据任务的数量和类型逐渐降低系统性能。此方法类似于个人计算机使用的方法,其中指定时间段不活动将导致系统将其速度降低到下一个较低的性能级别。
何时切换模式以及切换哪些模式取决于用户的应用程序。构建“电源路径”是确定合适的速度和时钟源的最简单方法。对于相对简单的系统,只需要几个状态。电源管理模式 PMM1 和 PMM2 专门设计用于逐步降低功耗。
图8显示了电源管理功能可能出现的多种电源路径。图8a显示了一个相对复杂的方案,该方案逐渐降低工作速度,同时保持时钟振荡器尽可能长时间地工作以执行与时序相关的功能。图8b切换到环形振荡器并逐渐降低器件的速度,但保持晶体放大器使能,以防器件需要快速响应串行端动。图8c通过切换到环形振荡器并禁用晶体放大器提供了最低功耗。
图8.电源路径示例。
程序示例:系统监视器
以下程序说明了操作持续监视系统状态的设备的基本方案。它的操作类似于个人计算机管理其电源的方式;如果在指定的时间段内未检测到任何活动,它将切换到下一个低功耗模式。
该程序监视端口 1 上的外设,并根据需要更新映射到外部存储器的显示器。监视程序计时器用于轮询系统的状态,由 F0 标志指示。如果在计时器超时之前没有活动,设备将继续降低其速度。由于看门狗定时器周期受设备速度的影响,因此调整看门狗分频比以保持尽可能恒定的间隔。所演示的方法还可用于检测由串行端口噪声引起的杂散回切,并将器件返回到PMM。
带隙禁用
用于检测电源故障的带隙基准电压源消耗约150 μA电流。在停止模式下,这可能是消耗的总电流的可观量。微控制器支持禁用带隙基准电压源的选项,从而消除了相关的电流消耗。禁用后,设备将无法生成电源故障中断或电源故障重置。设备将继续运行,直到 V抄送低于 VRST,此时设备将停止运行。如果没有带隙基准,器件无法检测即将发生的功率损耗或执行有序关断。当电源恢复时,设备将执行开机复位。
设置带隙选择位,BGS (EXIF.0) 可在停止模式下启用带隙参考。默认或复位条件为清除位,并在停止模式下禁用带隙。请注意,此位只能使用定时访问写入来更改。在全功率、PMM 或空闲模式下,它无法控制基准电压源。
审核编辑:郭婷
评论
查看更多