中电网移动|移动中电网|高清图滚动区

构建多电压、高性能、超低待机功耗的 32 位 MCU

对提高计算能力和更多集成功能的要求正在推动越来越多的应用从 16 位微控制器转向 32 位微控制器。

对于电池供电的应用来说也是如此,电池供电的应用受益于较低的电源电压,以及基于先进 CMOS 工艺的 32 位器件所实现的高性能和小芯片尺寸。

然而,深亚微米技术也有一个非常重要的缺点:其更高的泄漏是一个主要问题,特别是对于电池供电应用的有限电源而言。

为了实现迁移,新的 32 位微控制器(包括通用设备)必须提供非常高效的超低功耗模式以实现长期待机。

在本文中,我将介绍意法半导体工程师如何通过低功耗模式和功能增强其基于 Cortex-M3 内核的 STM32 微控制器,以减轻漏电对电池供电应用的影响,在这些应用中,静态电流可能是消耗的主要因素。

具体来说,我将讨论基于 STM32 ARM Cortex-M3core 的微控制器中“超低功耗待机”和实时时钟实现的创新。

漏电流

漏电流可以定义为静态(无开关活动)CMOS 门中剩余的连续电流。它有几个根本原因,并且随着新技术的缩小而增加。其三个主要贡献者是亚阈值、栅极和结隧道泄漏。

https://file3.dzsc.com/news/23/08/02/162605666.jpg
图 1:CMOS 晶体管的漏电流

亚阈值泄漏与阈值电压降低有关,阈值电压降低是每种新技术中使用的电压降低所需要的。栅极泄漏是由减少“短沟道”效应所需的栅极氧化层厚度的缩放引起的。结隧道泄漏是由反向偏置 pn 结上的电场引起的(电子隧道效应)。

泄漏随着温度升高而增加,主要是由于亚阈值泄漏随温度呈指数增加。在没有任何开关活动的情况下,采用先进工艺的 32 位微控制器在环境温度下的静态电流仍可限制在几微安培。

然而,这种泄漏会随着温度的升高而增加,在 125°C 时甚至可能超过 1 毫安。因此,考虑应用温度下的泄漏非常重要。

https://file3.dzsc.com/news/23/08/02/162717603.jpg
图2:泄漏随温度增加

尽管存在多种技术来限制数字库的泄漏(将多晶硅长度增加到技术允许的值以上,增加晶体管上的栅极氧化物厚度),但此类修改会影响数字单元中的传播时间。在整个逻辑中使用这样的库将阻止设备在运行模式下实现高性能。

当今 32 位设备面临的另一个困境是,从结构角度来看,微控制器中漏电流的主要贡献者是数字逻辑和存储器。

除了由于技术缩小而导致泄漏增加之外,在后续几代 8 位、16 位和新型 32 位微控制器中,数字门数量和平均存储器大小都大幅增加。

因此,漏电对于所有使用半导体技术的通用微控制器来说都是一个主要问题,并且是电源资源有限的电池供电应用的特别考虑因素。

一旦平均运行时间与待机时间相比变得非常短,泄漏对电池寿命的影响静态电流消耗就成为平均电流的主要贡献者。给定电池提供的能量水平,应用寿命的快速估计(不包括普克特定律描述的电池电容的非线性)为:

例如,如果STM32 128K闪存微控制器不提供特定的超低功耗待机模式,则平均电流可能会受到显着影响:由于采用 ARMCortex-M3架构,启用所有外设时,72MHz 下的典型运行电流仅为 36mA (0.5mA/MHz)和低功耗设计技术。

然而,由于采用先进工艺,漏电流在55°C时开始显着。由于具有非常低的功耗电压监控器和调节器,55°C 时静态电流仍限制在 50 微安培。

与运行消耗相比,这可以忽略不计。然而,如果应用程序每天仅运行一分钟,则静态电流将成为消耗的主要因素 (64%)。

为了解决这个问题,STM32 的设计人员竭尽全力通过在架构级别实现嵌入式稳压器、独立电压域和集成电源开关来实现真正的低功耗待机。此实现支持低功耗模式,可以根据应用优化电池寿命。

超低功耗待机实现

微控制器的总功耗是动态功耗(CMOS 门的开关活动)和静态电流(漏电流和静态模拟功耗)之和。

对于静态电流可能是消耗的主要贡献者的电池供电应用来说,停止产品时钟,从而消除所有动态消耗显然不是足够的低功耗待机。

即使在时钟停止时降低电压对于提供高效的待机模式也无济于事。为了实现超低功耗待机模式,大部分逻辑(和存储器)必须关闭。

为此,可以在器件级实现两个电压域,由内部稳压器供电:一个用于低功耗控制的小型“始终开启”电压域和一个通过开关供电的具有所有其他功能的“主”电压域以便在待机模式下将其关闭。

因此,主电压域可以专注于处理性能,因为泄漏(静态电流)设计约束在“始终开启”电压域中非常重要。

然而,在此实现中,内部稳压器必须在待机模式下保持“开启”状态,这意味着会产生很大的静态电流。因此,停止嵌入式调节器,以达到超低的待机电源电流。

STM32 遵循这种类型的双域实现:

VDD 备份主电压域 基于厚氧化层高压晶体管,专注于极低静态电流。采用高压晶体管,直接由主 VDD 供电。它包括低功耗模式控制和极低功耗看门狗、相关的低功耗 RC 振荡器和优化的门数。

从主电压域,包括保持在较低电压的所有其他功能(CPU 、大多数外设和存储器),专注于高性能和低动态功耗。

https://file3.dzsc.com/news/23/08/02/162935666.jpg
图3:备份和电压实现

这种实现使 STM32F103 能够提供安全、功耗极低的待机模式,3.3V 时的典型电流仅为 2μA。剩余的 2 微安电流是电压监控器的消耗,该监控器监控主电源电压以确保待机模式与运行模式一样可靠。

由于泄漏可以保持在非常低的水平,因此该待机电流随温度的增加非常有限:典型器件在 85°C、3.3V 时为 2.4 微安。动态功能也可以在主电压域中实现。

例如,STM32 包括一个独立的超低功耗看门狗,可在待机模式下使用,典型器件在 3.3V 电压下的总附加功耗(专用 RC 振荡器和看门狗数字功耗)仅为 1 微安。此功能可以防止意外进入待机模式时出现应用程序故障。

分离微控制器芯片内部的电压域意味着许多特定的设计限制,例如:

* 完整的唤醒逻辑和模拟必须在后备电压域中实现,因此很难提供大量可能的唤醒源。

* 断电期间电压域之间必须实现隔离(所有来自电压的信号都是浮动的)

*时钟源停止和电压断电/上电的特定顺序必须是稳健的。例如,主电压逻辑需要专门的复位。

* 必须特别考虑电压域之间的时序约束,因为两个域对于电压和工艺几乎独立,但对于温度则不然。这意味着在时序分析期间必须检查更多情况(例如,具有差电压和工艺的备份域以及具有工艺的电压的主电压)

* 一些安全功能(如看门狗功能)必须在备份域中实现,以保护应用程序免受意外进入待机模式的影响。

* 为了在小型封装中提供32 位产品的性能,还需要保持有用 I/O 与 I/O 总数的比率。在STM32上,主电压调节器不需要外部去耦电容。这就是为什么由于这种双电源实现,封装上没有丢失额外的电源引脚。

然而,作为这种硅设计复杂性的交换,STM32 获得了真正的超低功耗待机,这将帮助应用开发人员优化其应用中的电池消耗。

STM32 可用的电源模式和优化电池寿命

由于采用了双电源域,STM32 提供了两种不同的低功耗模式:停止模式和待机模式。两者均在电压监控器“打开”时发挥作用,以在电压下降时保护应用:

在停止模式下,低功耗稳压器保持“开启”状态,但时钟停止。它在内部 RC 上提供非常快的重启时间(<10 微秒)并保留软件上下文。环境温度下的典型电流为 15 微安(3.3V)。

然而,这种模式并不能缓解泄漏问题,泄漏问题会随着温度呈指数级增长。

在待机模式 下,稳压器处于“关闭”状态,以便在环境温度 (3.3V) 下提供 2μA 电流,并且随温度升高而增加很少(对于非典型器件,85°C 时电流为 2.4 微安)。

然而,从待机状态重新启动意味着软件内容会丢失:RAM、内核和大多数外设 寄存器内容都会丢失:从待机状态重新启动几乎相当于从软件复位重新启动。

为应用程序选择模式会对电池寿命产生很大影响。以下是选择模式时需要考虑的一些基本技巧:

1. 检查待机状态下的微控制器状态是否与应用要求兼容(例如:I/O 待机状态、唤醒源)。
2 . 考虑必须保证应用功能的“坏情况”温度条件对电池寿命的影响
3. 检查从待机重新启动的时间是多少,以及是否足够快以满足应用程序重新启动时间的要求
4. 检查与停止模式相比,待机能耗是否节省。在两个事件之间,待机能耗加上从待机状态重新启动的能耗是否小于停止模式下的能耗。

这些问题取决于应用程序。估计从待机模式的重启时间包括从唤醒到复位向量获取的时间,这取决于硬件(调节器启动时间,STM32 中时钟源启动时间约为 40 微秒)以及软件恢复应用程序上下文所需的时间。

通常,软件必须检查唤醒源、从备份寄存器恢复上下文信息并重新配置应用程序使用的微控制器功能。

由于这种从待机状态重新启动的软件相关性,因此唤醒阶段期间的能量损失也取决于应用程序。估计这种能量损失的一种实用方法是在一个时间范围内产生给定数量的唤醒(唤醒后软件立即返回待机模式)并比较没有产生唤醒时的平均电流消耗。

为了优化从待机模式的重启时间,开发人员一定不要忘记优化编译器添加的初始化阶段并尽可能减少它(例如应该删除RAM初始化)。

用于 RTC 和数据备份的附加电压域

实时时钟功能是电池供电应用的常见要求。此外,电压关闭意味着失去完整的程序上下文,几乎相当于产品从复位重新启动。

为应用程序重新启动实现备份寄存器组可以恢复程序执行所需的上下文。可以在备份域中将这些功能直接集成到微控制器内。

然而,RTC 功能通常应该在很长一段时间(数年)内可用,而主要应用程序(即使是电池供电)也通常基于可充电电池。

为 RTC 创建第三个电源域并为其电源提供专用引脚,允许使用专用于此功能的小型纽扣电池,而主要应用由另一个主电源供电。

这样,纽扣电池电源仅由 RTC 和相关振荡器使用,而不会由其他功能使用,例如在待机模式下仍可用的电压监控器。

然而,这种实现方式并不是的,因为即使主电源可用,纽扣电池也始终用于向 RTC 和备份寄存器供电。

STM32 中实现的一种智能替代方案是通过添加电源开关来延长 RTC 电池寿命,以便在主电源可用时从主电源向 RTC 和备份寄存器提供电流,在主电源不可用时从电池提供电流。

图4:STM32电压域实现的简化原理图

开关命令由具有特定锁存机制的主电压监控器提供。当电压降至 VDD 低阈值以下时,开关将 RTC 和备份寄存器的电源更改为外部 VBAT 电源。

如果 VDD 上升到 VDD 高阈值以上,开关会自动选择 VDD 作为该专用电压域的电源。

这种实现的另一个优点是,软件读/写访问该特定电压域(通过电平转换器)所产生的额外动态功耗绝不会意味着纽扣电池上的额外消耗。

在运行模式下,电流始终取自主电源。因此,可以根据 RTC 消耗和纽扣电池能量直接计算纽扣电池短电池寿命。

在典型 RTC 电流为 1.4 微安(环境温度 3.3V)的 STM32 上,使用 CR2032 电池时的短电池寿命接近 20 年。然而,如果大部分时间都有主电源,则寿命会更长,并且可以使用容量较小的纽扣电池。

当然,所实现的 RTC 和备份寄存器在待机模式下可用。因此,RTC 可以作为从待机状态唤醒的源,并且在进入待机模式之前可以将一些关键值保存在备份寄存器中。

这种实现显着增加了 MCU 设计的复杂性,需要:

1) 电压域之间的隔离更加复杂

2) 稳健的电源开关设计,正确调整至预期功耗(I/O 上不存在内部 RTC 电压域,以避免减少小型停车场中可用的通用 I/O 数量,因此无需添加去耦电容器。)

3) 考虑不同启动场景,不增加Vbat静态消耗。例如,当 VDD 不存在时,Vbat 上升不得导致意外状态(此状态下不得有消耗,因为纽扣电池可能在生产阶段焊接到应用程序上,消耗会导致其能量水平不必要的损耗)

4) RTC 电压域的设计必须能够在打开 Vbat 之前承受低于 VDD 阈值的显着压降。

猜你喜欢
中电网移动|移动中电网|频道导航区