1. 课程导入与目标

欢迎进入《Microchip SAM 低功耗与电源管理》课程。SAM 是 Microchip 基于 Arm Cortex-M 内核的 32 位微控制器产品线,覆盖 SAM D(Cortex-M0+/M23)、SAM L(Cortex-M23/M4F 带安全与低功耗特性)、SAM E(Cortex-M4F 高性能)、SAM G(Cortex-M4F 高能效)以及 SAM V(Cortex-M7 高性能)等系列。这些器件在低功耗设计上并非“单一低功耗模式”那么简单,而是由时钟系统、电源域、睡眠模式、外设自主运行、唤醒源与电源管理外设共同构成的一整套可配置体系。本课程的目标,是让你从“知道有 Sleep 模式”进阶到“能根据应用需求选择模式、配置时钟与电源域、测量并验证功耗”,最终能独立完成一个低功耗方案的设计与评估。

一、本课程要解决的核心问题

低功耗设计通常不是“把主频降下来”就能解决的。实际项目中常见的困惑包括:为什么进入 Sleep 后电流仍偏高?为什么 RTC 唤醒后系统没有回到预期状态?为什么电池寿命估算与实测差距很大?这些问题往往来自对时钟树、电源域和唤醒路径的理解不完整。本课程围绕以下四条主线展开:

  • 功耗来源与分解:区分动态功耗(与频率、电压、翻转率相关)与静态功耗(漏电、偏置、稳压器静态电流),理解为什么“降频”不一定线性省电。
  • 低功耗模式体系:Idle、Standby、Backup、Off 等模式在 SAM 各系列中的对应关系,以及每种模式下时钟、RAM、外设和稳压器的状态。
  • 电源管理外设:PM(Power Manager)、SUPC(Supply Controller)、RTC、WDT、BOD、EIC 等模块如何协同完成“睡眠—唤醒—恢复”的闭环。
  • 测量与验证:如何用电流表、功耗分析仪或 Data Visualizer 观察电流波形,如何判断一次唤醒是否干净、是否存在漏电或反复唤醒。

二、整体框架与学习路径

课程按“认知—配置—测量—优化—实战”的路径组织。前几章建立功耗模型与模式概念;中间章节进入寄存器与外设配置,包括时钟源切换、睡眠模式进入与退出、RTC 周期唤醒、EIC 事件唤醒、DMA 与事件系统减少 CPU 干预;后续章节讨论电池供电场景下的电源域裁剪、外设取舍、唤醒频率与占空比权衡,并通过一个周期性采集的示例把参数、代码与电流结果串起来。下图给出本课程的知识结构与工具链关系,便于你在学习过程中随时定位当前内容所处的位置。

SAM 低功耗与电源管理课程知识地图 知识主线 功耗模型 动态 / 静态 / 漏电 / 稳压器 低功耗模式 Idle / Standby / Backup / Off 时钟与电源域 时钟源切换 / 域裁剪 / 分频 唤醒与事件 RTC / EIC / WDT / DMA / Event 测量与验证 电流波形 / 平均电流 / 唤醒干净度 优化与实战 占空比 / 外设取舍 / 电池寿命估算 开发工具与资料 MPLAB X IDE 工程管理 / 调试 / 烧录 MCC / Harmony 图形化配置时钟与电源 Data Visualizer 功耗曲线 / 电流分析 开发板 SAM L / D / E 系列评估板 数据手册 / 应用笔记 电气特性 / 功耗表 / 参考设计 示例代码 低功耗例程 / 唤醒例程 学完后你能做什么 读懂功耗表 区分不同模式下的典型电流 判断数据手册条件是否匹配 配置低功耗模式 选择睡眠深度与唤醒源 设置时钟与电源域 测量与判断 观察电流波形与平均电流 定位异常唤醒与漏电 估算电池寿命 按占空比计算平均电流 评估方案是否达标 完成一个低功耗方案 从需求到配置到验证的闭环

三、开发工具与资料获取途径

本课程以 MPLAB X IDE 为主要开发环境,配合 MPLAB Code Configurator(MCC)或 Harmony 3 进行外设与时钟配置。对于低功耗调试,建议准备一块带电流测量跳线的 SAM 评估板,例如 SAM L10/L11 Xplained Pro 或 SAM D21 Xplained Pro,这类板卡通常提供 VCC_MCU 跳线,可串入电流表或功耗分析仪。软件侧,Data Visualizer 可以配合 Power Debugger 或 INA 电流传感器采集电流曲线,把“进入睡眠—唤醒—执行—再睡眠”的过程可视化。

资料获取方面,优先阅读三类文档:一是器件数据手册中的“Electrical Characteristics”和“Power Consumption”章节,里面给出不同模式、不同时钟、不同电压下的典型与最大电流;二是“Low Power”相关应用笔记,通常包含模式切换流程与代码片段;三是 MCC 生成的初始化代码,它把时钟树和电源配置以图形化方式呈现,适合对照寄存器理解。需要提醒的是,数据手册中的功耗数值有明确的测试条件,例如温度、电压、时钟源、外设开关状态,直接拿来做电池寿命估算前必须确认条件是否一致。

四、一个贯穿课程的示例场景

为了让后续章节有统一的参照,本课程设定一个示例场景:使用 SAM L10 做周期性温度采集,每 10 秒唤醒一次,采集一次内部温度传感器并通过 UART 发送,其余时间进入 Standby 模式,由 RTC 周期唤醒。示例中假设系统电压 3.3 V,RTC 使用 32.768 kHz 晶振,UART 仅在发送时开启。这个场景会贯穿模式选择、时钟配置、唤醒源设置、电流测量与平均电流计算。例如,若 Standby 电流约为 1.5 µA,唤醒期间平均电流约为 800 µA、持续 2 ms,则一个 10 秒周期内的平均电流可近似为:

I_avg ≈ (1.5 µA × 9.998 s + 800 µA × 0.002 s) / 10 s
      ≈ (14.997 µA·s + 1.6 µA·s) / 10 s
      ≈ 1.66 µA

这个计算说明:即使唤醒电流比睡眠电流高数百倍,只要占空比足够小,平均电流仍由睡眠电流主导。后续章节会进一步讨论如何降低唤醒期间的电流与时间,以及如何避免“看起来在睡眠、实际被反复唤醒”的隐性功耗。

学习建议:每学完一个模式或外设,回到示例场景中问三个问题——它改变了哪部分电流?它影响了哪个唤醒路径?它是否引入了新的静态功耗?把这三个问题回答清楚,低功耗设计就会从“试参数”变成“有依据的工程决策”。

五、学习目标清单

完成本课程后,你应当能够:

  • 说清 SAM 系列中 Idle、Standby、Backup、Off 等模式的区别,以及各自保留的时钟、RAM 和唤醒源。
  • 根据应用需求选择睡眠深度,并配置对应的时钟源、电源域和唤醒外设。
  • 使用 MCC 或寄存器配置完成一次“进入睡眠—RTC 唤醒—恢复执行”的完整流程。
  • 用电流测量工具观察睡眠电流、唤醒电流和唤醒持续时间,判断是否存在异常唤醒或漏电。
  • 按占空比估算平均电流与电池寿命,并能说明估算结果与实测结果差异的可能来源。

本课程不要求你一开始就记住所有寄存器位,而是希望你先建立“功耗—模式—时钟—唤醒—测量”的整体框架,再逐步深入到具体配置。接下来的章节会从功耗来源与分解开始,把这张知识地图上的每个节点逐一展开。