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 干预;后续章节讨论电池供电场景下的电源域裁剪、外设取舍、唤醒频率与占空比权衡,并通过一个周期性采集的示例把参数、代码与电流结果串起来。下图给出本课程的知识结构与工具链关系,便于你在学习过程中随时定位当前内容所处的位置。
三、开发工具与资料获取途径
本课程以 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 唤醒—恢复执行”的完整流程。
- 用电流测量工具观察睡眠电流、唤醒电流和唤醒持续时间,判断是否存在异常唤醒或漏电。
- 按占空比估算平均电流与电池寿命,并能说明估算结果与实测结果差异的可能来源。
本课程不要求你一开始就记住所有寄存器位,而是希望你先建立“功耗—模式—时钟—唤醒—测量”的整体框架,再逐步深入到具体配置。接下来的章节会从功耗来源与分解开始,把这张知识地图上的每个节点逐一展开。