
前言 STM32F411 产品线属于 STM32 Dynamic Efficiency™ 微控制器的一部分。这些器件是高性能 F4 系列的入门级产品,具有动态功耗和处理性能的最佳平衡,并能够在运行、睡眠和停止模式下实现极低功耗。 STM32F411xx 微控制器具有新型的批采集模式 (BAM),为数据批处理进行了功耗优化,将动态效率提升到了一个新的水平。 本应用笔记通过一个用例,指导您在 STM32F411xx 微控制器上实现预期的功耗。还提供了关于如何实现 BAM 的示例。 本应用笔记中采用 X-CUBE-BAM 固件包。 1应用概述 本章给出了应用笔记用例概览,详细说明了用户如何实现 BAM,并描述了用例工作中涉及的每个低功耗模式。 1.1 硬件高层描述 本文档首先说明如何评价不同低功耗模式 (待机、睡眠、停止和低功耗运行)中的功耗,然后重点说明通过使用 BAM 将传感器 (LSM6DS0 MEMS)数据流向 (UP 或 DOWN)传输至主 STM32F411xx 微控制器,来实现明显的功率降低。 传感器发送的数据通过 I2C 接口接收,利用 DMA 传输至 RAM。经过数据处理后, DMA 将数据流向传到 UART。然后通过 USB 虚拟串口显示出来。 图 1 显示了应用的高层框图。 ![]() 注: X-CUBE-BAM 还包括一个基于 LSM303DLH MEMS 和 32F401DISCOVERY 作为传感器的用例。更多详细信息,请参考固件封装,可在项目 /NUCLEO-F411RE/LSM303DLHC 下获取。 1.2 低功耗模式 本章描述了应用中所使用的不同低功耗模式。 • 低功耗运行模式 CPU 和一些外设处于运行中。为了进一步降低功耗,不用的 GPIO 被配置为模拟引脚并禁用外设。 • 睡眠模式 这种模式下,仅有 CPU 是停止的,外设保持运行。为了降低功耗,可在进入睡眠模式前关闭闪存。发生中断时,外设能够唤醒 CPU。 • 停止模式 CPU 处于深度睡眠模式 (DeepSleep mode)。除了 RTC,所有外设都禁用。通过发出中断来退出停止模式。 • 待机模式 这种模式下,功率仅用于维持 RTC 寄存器。器件被 WKUP 脚上的上升沿 (产生系统复位)唤醒。 注: 更多关于低功耗模式的详细信息,请参考 STM32F411xx 数据手册。 1.3 批采集模式 (BAM) 1.3.1 原理 批采集模式 (BAM)可优化数据批处理的功耗。 它可通过通信外设交换大量数据,同时器件的其它部分 (包括 CPU)可处于省电模式: • 只使能所需要的 DMA 数据流,并将来自通信接口的数据传输到内部 RAM。 • 从 RAM 执行程序允许关闭闪存和停止 Flash 接口时钟。 • MCU 内核处于睡眠模式,等待中断 / 事件将其唤醒。 1.3.2 BAM 用例 图 2 显示了应用笔记用例高层框图的一部分。它描述了 BAM 涉及的不同外设及其功率状态(低功耗或激活的)。 事实上,数据接收过程中,只有 DMA stream0、 I2C1 和 SRAM 是激活的。 MCU 内核处于睡眠模式且闪存停止,直至完成 DMA 传输。 ![]() 1.3.3 如何实现 BAM 当 BAM 使能时,通过设置 PWR_CR 寄存器的 FMSSR 和 FISR 位来关闭闪存。从闪存执行程序时不能设置这些位。这可以通过从RAM执行一个特殊程序来实现(具体描述请参见图 3,图 4 和图 5)。 可采用 3 种方法来实现 BAM。每种方法都取决于用户应用: • 从 RAM 执行中断 • 从闪存执行中断 • 利用事件来唤醒 CPU 从 RAM 执行中断 应用笔记用例中采用此方法 (参见图 3)。中断将器件从睡眠模式中唤醒。因此用户应用必须将所需 ISR 和向量表存储在 RAM 中,以便在中断发生时能够立即从 RAM 中执行。 ![]() 从闪存执行中断 这种方法里,闪存停止,必须禁用所有中断,直至闪存再次使能 (参见图 4)。 ![]() 利用事件唤醒 CPU 此方法利用事件而不是中断将 CPU 从睡眠模式中唤醒 (参见图 5)。 ![]() BAM 实现方法总结 ![]() 完整版请查看:附件 |
DM00121312_ZHV4.pdf
下载796.84 KB, 下载次数: 3