1. 低功耗智能终端工程导论

低功耗智能终端并不是“把单片机功耗调低”这么简单,它是一整套围绕能量预算展开的系统工程:在有限的电池容量、有限的能量采集功率和有限的成本约束下,让感知、计算、存储、通信与人机交互在正确的时间以正确的功耗完成。Microchip 的 SAM 系列 32 位 ARM Cortex-M 微控制器正是为这类场景准备的平台,本课程将以 SAM 系列为主线,从器件定位讲到可运行的低功耗终端原型。

一、SAM 系列在低功耗终端中的定位

SAM 是 Microchip 基于 ARM Cortex-M 内核的 32 位 MCU 家族,按内核与定位大致可分为几类:SAM D 系列(Cortex-M0+/M4F,通用低功耗与带浮点运算)、SAM L 系列(Cortex-M23/M4F,强调超低功耗与安全)、SAM E 系列(Cortex-M4F,面向实时与以太网/工业)、SAM G/S/V 系列(Cortex-M4/M7,面向高性能与 HMI)。对低功耗智能终端而言,最常被选作主控的是 SAM L 与 SAM D 系列:前者在 STOP、BACKUP 等低功耗模式下的静态电流可达亚微安级,适合长期电池供电的传感节点;后者在保持较低功耗的同时提供更丰富的外设与浮点能力,适合需要本地算法处理的终端。

选型时不能只看“最低功耗”一个数字。真正决定终端续航的是占空比功耗:终端大部分时间处于睡眠,周期性唤醒采样、计算并发送。因此需要同时关注三组参数——睡眠模式电流(如 STOP 模式典型值)、唤醒时间与唤醒源数量、以及活动模式下的能效(µA/MHz 或 CoreMark/mA)。SAM L 系列在 STOP 模式下可保留 SRAM 与部分外设状态,唤醒时间在微秒量级,适合“睡多醒少”的采集节点;SAM D 系列则在活动模式下提供更高的运算余量,适合“短时高负载”的本地推理或显示刷新。

二、低功耗智能终端的典型形态

课程中我们关注的典型形态包括:电池供电的无线传感器节点(温湿度、振动、电流等)、能量采集驱动的免维护标签(光伏/热电/压电取能)、便携式手持终端(带段码或小尺寸 LCD 显示)、以及需要长期待机的资产追踪器。它们的共同结构是:感知前端 → 信号调理 → MCU → 无线/有线通信 → 电源与能量管理,并由实时时钟(RTC)或外部事件驱动整个工作节拍。

以温湿度采集节点为例,一个合理的示例设计目标是:使用 SAM L21,采样周期 60 s,每次唤醒采集 2 路模拟量、经 12 位 ADC 转换、做简单滤波与阈值判断,再通过 LoRa 或 BLE 发送 12 字节数据。若活动时间约 8 ms、活动电流约 3.5 mA,睡眠电流约 1.2 µA,则平均电流约为 3.5 mA × 8 ms / 60 s + 1.2 µA ≈ 0.47 µA + 1.2 µA ≈ 1.67 µA。以 1000 mAh 纽扣电池计,理论续航约 1000 mAh / 1.67 µA ≈ 68 年——当然这是理想估算,实际还要计入传感器、无线模块和电源转换损耗,但它清楚说明:低功耗设计的主战场在睡眠电流与唤醒占空比,而不是活动电流本身。

低功耗智能终端典型信号链与能量流 能量采集 光伏 / 热电 / 压电 电源管理 PMIC / LDO / 电池 感知前端 温湿度 / 振动 / 电流 信号调理 放大 / 滤波 / 基准 SAM 系列 MCU Cortex-M0+/M4F ADC / RTC / SERCOM STOP / BACKUP 模式 事件系统 / DMA 低功耗外设时钟门控 无线通信 BLE / LoRa / Sub-GHz 人机交互 段码 LCD / 按键 / LED 占空比功耗示意(60 s 周期) 0 s 30 s 60 s 活动 8 ms / 3.5 mA 睡眠 STOP 模式 ≈ 1.2 µA 平均电流 ≈ 1.67 µA(示例估算)

三、课程项目目标

本课程以一个可运行的“低功耗环境监测终端”为主线项目,最终目标包括:

  • 能够在 SAM L/D 平台上完成时钟、电源、GPIO、ADC、RTC、SERCOM 等基础外设的初始化与验证;
  • 能够配置 STOP/BACKUP 等低功耗模式,并用 RTC 或外部事件实现周期性唤醒;
  • 能够测量并计算平均电流,判断设计是否满足给定的能量预算;
  • 能够通过串口或无线链路把采集数据送出,并在上位机观察数据与功耗行为;
  • 能够定位常见低功耗问题,例如外设时钟未关闭、引脚悬空漏电、调试器未断开导致电流偏高等。

项目不追求复杂算法,而追求“每一微安都有出处”。在后续章节中,我们会逐步把上述目标落到具体寄存器、时钟树和测量方法上。

四、开发环境搭建

推荐的工具链组合是:MPLAB X IDE + XC32 编译器 + MPLAB Harmony 3(或 MCC 配置器)+ 目标开发板。若使用 SAM L21 Xplained Pro 或 SAM D21 Xplained Pro,可直接通过板载 EDBG 调试器下载与调试。搭建步骤如下:

  1. 安装 MPLAB X IDE(建议 6.x 及以上)与 XC32 编译器,安装时勾选 ARM 支持。
  2. 安装 MCC(MPLAB Code Configurator)或 Harmony 3 Content Manager,用于图形化生成外设初始化代码。
  3. 连接开发板,确认设备管理器中 EDBG 调试接口被识别;在 MPLAB X 中新建工程,选择对应器件型号(例如 ATSAML21J18B)。
  4. 配置系统时钟:示例可采用 4 MHz 内部振荡器作为主时钟,降低活动功耗;需要更高运算时再切换到 48 MHz DFLL。
  5. 打开一个 GPIO 与一个 SERCOM UART,编译下载,确认串口能打印启动信息。

一个最小验证工程的串口输出可以类似下面这样,用来确认工具链、时钟与串口都工作正常:

[boot] SAM L21 low-power node
[clk ] CPU 4 MHz, RTC 32.768 kHz
[uart] SERCOM3 @ 115200 8N1
[adc ] channel 0 ready
[rtc ] period = 60 s
[run ] enter STOP, wait for RTC wakeup
调试低功耗时,务必断开调试器或将其置于不影响目标板供电的状态;很多“睡眠电流偏高”的问题其实来自调试接口和板载 LED。测量时优先使用高精度电流表或带 µA 档的万用表,并注意量程切换带来的压降。
不要把“最低功耗模式”当成默认工作状态。进入 BACKUP 模式后大部分外设与 SRAM 会丢失,唤醒相当于复位;是否使用取决于终端是否需要保持状态与快速恢复。设计前先明确:哪些数据必须保留、允许的唤醒时间是多少、唤醒源有哪些。

完成环境搭建后,建议先做一个“空转 + 睡眠”的基线工程:只初始化时钟与 RTC,主循环进入 STOP,测量平均电流并记录。这个基线值将成为后续加入 ADC、无线通信后判断功耗增量的参照。只有先建立可信的测量基线,低功耗优化才有可比较的依据。