你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

在 STM32L0 和 STM32L4 系列微控制器中使用 LPUART 使功耗最小

[复制链接]
STMCU小助手 发布时间:2022-12-6 13:54
前言
STM32L0 和 STM32L4 系列微控制器具有复用的 UART 接口,这一设计令 MCU 仅需最小功耗即可工作。
本文的目的是解释怎样充分利用低功耗 UART (LPUART)的优势,扩展上述产品的电池寿命。
它显示了在实际示例中,等待通信设备的极低功耗。

下列文件可作为参考:
• 应用笔记 AN4445:“STM32L0xx 超低功耗特性概述 ”
• 应用笔记 AN4621:“STM32L4xx 超低功耗特性概述 ”
• 应用笔记 AN4746:“ 优化 STM32L4xx 的功耗和性能 ”
• 参考手册 RM0351:“STM32L4x6 高级的基于 ARM® 的 32 位 MCU”
• 参考手册 RM0376:“ 超低功耗 STM32L0x2 高级的基于 ARM® 的 32 位 MCU”。


1 定义
6IXYS0TEYMI@567_FX(MWIG.png

2 特性总结
2.1 L0 和 L4 系列比较
虽然 STM32L4 和 STM32L0 系列上的 LPUART 外设实际上相同,但这两种产品有很大区别。除了 ARM® Cortex® 内核不同,还有其它区别影响了 LPUART 的效率。

2.1.1 时钟子系统
STM32L4xx MCU 可支持更高的时钟速度,这有效地降低了高要求任务的处理时间。 MSI 内部时钟源也因此调整以达到更高时钟速度。这一 MSI 的加速降低了低速的选择范围,STM32L4 MSI 的最低可能频率为 100 kHz,而 STM32L0xx MCU 为 65 kHz。
1 MHz 以下的可选速度是不同的,因此难以直接比较两种 MCU 的效率。另外,在STM32L4 系列中,MSI 可在其 PLL 模式中使用 LSE 硬件自动校准。这使得 MSI 更加精确,而 STM32L0 产品无此选项。
STM32L0 系列对于 HSI 时钟源具有一个简单的时钟因子 4 分频器,这使得 HSI 成为 16 或 4MHz 的有效源。 STM32L4 MCU 在 HSI16 时钟上没有直接的分频器。因此,在一些 UART速度需要高于 9600 Bd 的应用中, STM32L0 可能会高效很多。对于 STM32L4,若 16 MHz不够有效,解决方案为使用第二时钟源做系统时钟。
LSI 时钟频率也有不同,但这与我们的情况无关。

2.1.2 电源管理
STM32L4 系列的主调压器仅有两个范围,而 STM32L0xx MCU 有三个。此外,由于有更强的 MCU 支持,这两个范围被移到了更高频率。
非常有用的低功耗运行模式弥补了这一不足。
STM32L0xx MCU 在从 Sleep 或 Stop 低功耗模式唤醒后,无法直接返回至低功耗运行模式,而 STM32L4 系列不存在这一限制。 STM32L4xx 上的低功耗运行也不限于 MSI 范围 1,还能工作于高达 2 MHz 的系统时钟速度。即使在低功耗运行中, HSI16 仍可被用作外设时钟。

2.2 与 USART 外设的比较
LPUART 比 USART 特性更少,但可用更低功耗工作,并可更有效地使用 LSE 时钟。
两种外设的主要特性总结于表 2 中。


C$J~YUG1(5I{]YMZ3ZBOAYJ.png

USART 还可使用 LSE 时钟工作,当过采样为 8 时,通信速度最高为 4000 波特,当过采样为 16 时,为 2000 波特。
当使用 LPUART 时,仅需 32.768 kHz LSE 时钟即可达到 9600 波特的串行通信,功耗最低,外部晶振可允许非常精确的速度设置。
对于更高的速率 (例如用于 BT LE 的 57600 波特), LPUART 能效优势下降,但仍可测量为 5% 左右 (参见第 6.1.9 节:更高通信速率)。
本文侧重于 9600 波特处的通信,这对很多应用是通用的:当在 9600 波特速率设置处从Stop 唤醒时, LPUART 的能效优势更加显著。

3 工作模式
实际场景可能覆盖多种配置,使用不同的波特率、发 / 收比以及消息间时延。所有这些因素都会影响工作模式的选择。

3.1 轮询模式
轮询模式为最简单的可能的工作模式,也称为阻塞模式。CPU 处理单个任务,在非激活期间切换至低功耗模式。几乎没有处理开销,因此可使用非常低的系统时钟速度。
对于非常简单的场景,此模式极其有效。然而阻塞模式有效地阻塞了 CPU,使其不处理任何其它任务,例如数据处理或并发通信。

3.2 IT 模式
第二个选项是完全依赖于中断,对于每个传输的字节都唤醒 CPU。此工作模式利用 ARM®Cortex® 高级 NVIC 的优势,将处理分割为原子操作,永不阻塞 CPU,实现实时响应。
然而,此模式会略微加重 CPU 负担,它增加了与栈和上下文恢复有关的处理开销。


3.3 DMA 模式
在 DMA 模式中, CPU 空余了一大部分的处理,设置 DMA 通道在外设和 SRAM 间移动数据。 CPU 可能会花费一部分处理时间在 Sleep 模式。对于循环缓冲管理,用户应在不需要时禁用半缓冲中断,以让 CPU 内核休息更长时间。然而,DMA 无法与 Stop 模式组合使用,在进入 Stop 低功耗模式之前,应禁用所有 DMA 通道。
LPUART 传输的实现得益于批采集模式 (BAM),在该模式中 MCU 处于 Sleep 或低功耗Sleep 模式 (CPU 时钟关闭)。通过将 Flash 存储器配置为掉电模式并关闭其时钟,以及仅对 DMA、 LPUART、 SRAM 提供时钟,可优化功耗。

3.4 组合模式举例
实际应用通常是以上所述模式的混合,开发者一直尝试在冲突的需求间达到最佳。下面的例子并不在附带的源代码中,只是为了抛砖引玉。

3.4.1 带轮询的中断
一些嵌入式系统可能不需要严格实时,在此情况下,可阻塞 CPU 一段时间以处理一个消息帧。尤其是对于发送的情况,通常用于处理所有 TC 中断的能量被保留,在阻塞模式中发送消息,这时时钟速度可降低,功耗调压器切换至低功耗模式 (LPRUN)。如果 CPU 可在阻塞模式中处理消息,则大约仅需要一半时钟速度。之后恢复正常工作,最好在 Stop 模式中等待进入的应答中断。

3.4.2 DMA 和直接访问组合
DMA 通道方便发送数据,它在接收期间是节约功耗的。
它的缺点是,在 DMA 模式, LPUART 无法利用从 Stop 模式唤醒的功能。原因是,在唤醒事件之后, DMA 获取正在进行的通信有困难。对于所有可能长时间空闲的应用来说,这是一个严重的缺点。
然而, DMA 仍可用于发送,然后用阻塞或中断方法接收。在通信系统中,若进入的消息快速连续或时序可预期,基于 DMA 的接收也可能是一个有效的选项。

4 其他注意事项
若需低功耗优势的完整概述,请参考已经提及的 AN4445 和 AN4621。下列建议针对我们的情况和用例。

4.1 从 SRAM 执行
如果可从 SRAM 执行程序,则有一个选项可以关闭嵌入式 Flash 存储器 (通过时钟门控),进一步降低功耗。

4.2 GPIO 配置
一些 GPIO 设置可能对功耗有极大影响,而其它设置则不然。
用于 UART 通信线的引脚应配置为它们的复用功能模式。如果最重要的目标是达到可能的最低功耗,则不建议激活上拉,然而,在一些应用中,可能有必要增强通信的可靠性。速率设置与被测波特率处的功耗没有因果关系。
在半双工模式适用的地方,也可能做进一步的功耗节省,然而本文不涉及此配置。
其它应用不用的引脚应配置为模拟输入。一旦应用可以部署后,开发者不要忘记将调试线置为模拟。

4.3 时钟配置
对于 LPUART 外设时钟,为达到 9600 波特并从 Stop 模式唤醒,应选择 LSE 源。
建议对于更高速率使用 HSI。
系统时钟显而易见的 (也是默认的)选择通常是 MSI 振荡器。除此之外, STM32L0xx 微控制器提供了 HSI 时钟分支上简单的 4 因子分频器,以产生 4 MHz。在 STM32L4xx 产品上,MSI 提供了更高的灵活性,可在 LSE 为 PLL 模式时,使用硬件自动校准纠正它的波动。
可使用预分频器和 PLL 生成其它速度,本文随后会分析不同的选项。当功耗为第一考虑因素时,这些解决方案都不是最佳的。用户必须参考产品数据手册,以得到不同时钟配置的典型功耗。

TJO$]G~FBFS7W%8P%UPYMAP.png

完整版请查看:附件

在 STM32L0 和 STM32L4 系列微控制器中使用 LPUART 使功耗最小.pdf

下载

1.34 MB, 下载次数: 13

收藏 评论0 发布时间:2022-12-6 13:54

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版