利用最低功耗实现绝对长的电池寿命是许多深度嵌入式应用的共同设计要求。在本文中,我们将讨论一种基于微控制器 (MCU) 的小区电子自动调温器,并对电流的每一微安 (uA) 都经过了细致而周密的调查研究。最终得到的产品不但超过了技术设计要求,而且成本比上一代产品低 50%。重新设计的电子自动调温器利用安装的电池可以工作 8 年以上,如图1 所示。本文侧要于明确功耗之所在、如何为应用选择正确的电池以及如何避免项目末期经常出现的隐患。
基于MCU 的电子自动调温器必须提供:
长达 8 年的电池使用寿命;
与机械解决方案相比具备更佳竞争性的最低成本;
旨在实现产品快速上市的应用开发 (In-application development);
精度达 ±1°F 的温度测量;
40~90°F 设定点电位计;
低电量检测;
与电池更换相关的供电欠压保护。
测量解决方案
在本例中,我们将探讨第一代电子自动调温器——其基于 MCU,但是需要配备用于温度测量的附加外部集成电路,以及用于唤醒 MCU 的外部振荡器和电池监控器。另外,这种自动调温器需要昂贵的人工校准。上述第一代解决方案需要超过 20mA 的电流,电池使用寿命只能达到 2~3 年。IC 总成本超过 2 美元。为了延长电池寿命并降低成本,需要进行重新设计。
对于本文研究的电子自动调温器而言,有效占空比极低,因为其大部分时间处于待机模式,由系统维持的自动唤醒功能执行常规事务。与设定点电位计不同,每几秒钟就要对自动调温器的温度测量一次。系统根据温度对比以及所选择的操作模式打开或关闭冷却或加热功能,而如果温度处于预期范围之内,则不做任何动作。自动调温器重新设计工作的首要目标是尽可能降低待机电流。为此,选用了一种超低功耗 MCU,同时运行“智能电源”(power-wise) 软件。
为了尽可能延长电池使用寿命,该软件配置后使 MCU 进入待机模式,其间采用由集成的 12kHz 超低功耗振荡器 (VLO) 计时的内部看门狗定时器 (WDT)。由于消除了通常采用的 32kHz 低功率晶振,因此 VLO 可以节省成本。系统全部关闭其他的 MCU 内置外设,而且不偏置温度传感器和设定点电位计。在这种正常模式下,MCU 消耗约 0.6mA 的电流。WDT 大约每 6 秒钟溢出一次,发出中断信号并且将 MCU 从待机模式唤醒。
在工作模式下,超低功耗 MCU 的内置高速数字控制振荡器 (DCO) 以 1MHz 默认频率工作,在需要时为系统计时。MCU 测量温度与用户设定点。为了支持最低的成本和实现高精度,测量解决方案采用基于MCU中集成的比较器的单斜率模数转换器(ADC)。
单斜率转换按照固定点为电容器充电,并通过已知参考电阻(由 MCU 内部集成的比较器测量该电阻)来测量放电时间。系统对未知电阻重复上述周期。集成的定时器可以自动采集放电时间,由于允许在放电周期测量过程中关闭 CPU,这种自动采集可以节省功率。上述单斜率技术遵循比率原则,其可以消除与阻容放电相关的充电电压、充电电容以及复杂的指数方程。测量时间与放电电阻成正比,准确度与传感器与参考电阻相同,因而可以消除昂贵的校准程序。
可将一个 10K 欧姆的外部电阻用作温度传感器的参考电阻与 10K 热敏电阻;20k 欧姆电位计用作与 6.8k 欧姆电阻串联的设定点电位计。串阻可确定与最高温度设定点(约95F)对应的最低电阻。最高设定电阻为 26.8k 欧姆,对应于最低温度设定点(大约 40F)。
测量序列需要对参考电阻、设定点电位计以及热敏电阻执行放电时间测量。由 MCU 计算设定点电位计和热敏电阻的电阻值,方法是采用高效的软件查询表例程来最小化代码周期数以及相应的有效电流。有效测量序列需要大约 10ms 和平均 50mA 电流,其中包括所需要的比较器、定时器和 CPU 功能执行。在不需要时系统可关闭所有组件和 MCU 内置外设。由于每隔 5 秒钟才需要一个 10ms 测量序列,因此有效占空比仅为 0.2%,等于大约 1mA 的平均系统电流消耗。
触发低压加热/冷却继电器所需的电流为 10ms 的 100mA 电流脉冲。根据统计,继电器可能需要每小时触发 16 次。因此,继电器的有效占空比为 0.0044%,其等于大约 4.4mA 的系统电流。
从电池角度来看,我们关心的是触发继电器所需要的 100mA 电流。第一代电子自动调温器最初选用的电池是 CR2032 纽扣式锂电池。由于每年低于 1% 的内在超低漏电以及极其平坦的放电曲线(这两种特性是延长电池使用寿命的理想选择),因此这种电池的额定容量为 200mAh。CR2032 的问题是阻抗较高,约为 20 欧姆,因此它妨碍了电池为触发冷却及加热系统所需继电器提供 100mA 电流。尽管所需要的 100mA 脉冲电流仅持续 10ms,但是仍然远远超出了纽扣电池的能力。设计人员曾经考虑采用大容量电容器(由于成本原因只能采用电解电容),但是由于这种电容漏电较高,最后还是放弃了。
为上述自动调温器选择的电池是一对 1.5V “AAA”碱性电池,额定容量为 1250mAh。这种碱性电池提供不足 1 欧姆的超低阻抗,足以驱动加热及冷却继电器。低阻抗的代价是更高的漏电,在室温时约为 3%。不过,虽然漏电较高,但是上述碱性电池在 8 年后仍然能够提供大约 75% 的额定容量。在更高温度时漏电加重,不过,这并不是什么大问题,自动调温器因其应用的性质一般接近室温。
附加特性
作为电子解决方案,用户通常要求它能够显示系统的运行状况。因此,闪烁的 LED 可以用作综合操作状态指示灯。LED 的闪烁与 5 秒钟的 MCU 唤醒时间同步。一个 5000mA 低功耗绿色 LED 每5秒钟闪动 10ms,约平均消耗 1mA 系统电流。
为基于 MCU 的应用更换电池比较麻烦,因为电池导线的机械接触会产生电源噪声。在电池更换过程中经常产生“欠压”情况,在这种情况下电源电压未完全复位,从而造成随机错误操作。利用附加的复位电流或电源电压监控器 (SVS) 可以提供欠压保护——只要电压低于安全操作范围,它们就会要求 MCU 执行完全的复位。SVS 保护需要付出功率、成本与板级空间代价。作为一种变通解决方案,所选择的超低功耗 MCU 可以集成零功耗欠压复位 (BOR) 保护功能。
电子自动调温器需要提供低电量检测功能。MCU 的内置比较器参考发生器同时包含比率参考 (radiometric) 和 0.55V 的固定参考电压。0.25xVCC 比率参考通过一个端口引脚输出,对测量电容器充电,电容器然后与 0.55V 参考电压进行对比。这种技术可以实现简单的 2.2V 低电量检测。一旦检测到低电量状况,MCU 就闪动红色 LED。
用于上述电子自动调温器的超低功耗 MCU 可提供系统内可编程 (ISP) 闪存与嵌入式仿真逻辑。这些功能通过采用 TEST 和 RESET/NMI 引脚在应用中对 MCU 执行普通的调试。这样就能够实现快速开发以及灵活的程序定制和紧急代码更改了。我们可以对闪存中的 MCU 代码在生产过程中进行应用编程,由于消除了繁杂的应用外编程,因此可以在降低成本的同时提高产品质量。如有需要,可以在生产过程中采用电子方式执行设备校准,然后保存在闪存中。由于闪存是 ISP 式,作为一种未来的功能,MCU 还可以在正常的操作过程中记录数据。
结论
“AAA”碱性电池组可从 3.3V 降至 2.2V,其约等于 1250 mAh 额定容量的 65%,因此可以提供大约 800mAh 的可用电量。再考虑到 8 年仅 3% 的漏电,则可以为应用提供 609mAh 的电量。为了提供 8 年的使用寿命,应用的总平均系统电流不能超过 8.7mAh(609mAh/8 年/365天/24 小时)。
本文所探讨的基于超低功耗 MCU 的电子自动调温器的总平均系统电流消耗是待机、测量序列、继电器触发以及 LED 状态指示灯总和,其等于 7mA,远远低于 8 年最高工作电量 8.7mAh 的要求。应用程序代码不足 1kB,可以宽松地保存到所采用的 MSP430F2001 中。批量为 1,000 片时,建议零售单价为 0.65美元。无需任何其他集成电路。
通过加长温度测量与操作状态指示灯闪烁之间的间隔还可以进一步降低功耗。如果能够采用由可用的 24V加热/冷却电源供电的其他继电器,自动调温器本身可以降至低于 2mA,从而利用一颗 CR2032 纽扣电池即可维持 10 年以上的稳定工作。