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

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

[复制链接]
STMCU小助手 发布时间:2022-12-6 13:54
前言
3 h1 ^& F* L+ z4 y0 E6 m6 o0 TSTM32L0 和 STM32L4 系列微控制器具有复用的 UART 接口,这一设计令 MCU 仅需最小功耗即可工作。, M1 M, S5 k1 m; m: H: {
本文的目的是解释怎样充分利用低功耗 UART (LPUART)的优势,扩展上述产品的电池寿命。
. D7 Z) g" N" l2 U+ M它显示了在实际示例中,等待通信设备的极低功耗。9 P8 q6 i' ^& _8 {1 B1 x5 |

$ D# F' v3 Z1 x# a下列文件可作为参考:
5 t- y, k6 ?3 F- v  ~4 L• 应用笔记 AN4445:“STM32L0xx 超低功耗特性概述 ”
/ C4 l2 @2 b  m& d. h• 应用笔记 AN4621:“STM32L4xx 超低功耗特性概述 ”+ `; S1 @( I  c1 U* k) I# Z6 h
• 应用笔记 AN4746:“ 优化 STM32L4xx 的功耗和性能 ”
, S5 g, h2 \  b  A6 J( W  \• 参考手册 RM0351:“STM32L4x6 高级的基于 ARM® 的 32 位 MCU”( S6 U; ?5 V+ _4 W5 Z
• 参考手册 RM0376:“ 超低功耗 STM32L0x2 高级的基于 ARM® 的 32 位 MCU”。8 O- J! L- Z! [1 t) O
& p+ S+ N2 N  d# h) ]
1 [% T% t  M, o4 b3 ?9 m  b! B
1 定义" G! z4 H1 j# Q  P6 g$ Y# M
6IXYS0TEYMI@567_FX(MWIG.png
' n! d* m5 S7 g1 [; [" J& c* o6 ]+ y/ |1 w. s, q
2 特性总结7 t" j& X( N4 `) h  X0 a
2.1 L0 和 L4 系列比较+ h. ~2 I5 G  z( {
虽然 STM32L4 和 STM32L0 系列上的 LPUART 外设实际上相同,但这两种产品有很大区别。除了 ARM® Cortex® 内核不同,还有其它区别影响了 LPUART 的效率。, \5 V0 m0 N0 o" K6 _
, |; N, E/ B/ ], J6 Z7 j
2.1.1 时钟子系统! w6 L% \9 x" ?9 O/ }, F, T
STM32L4xx MCU 可支持更高的时钟速度,这有效地降低了高要求任务的处理时间。 MSI 内部时钟源也因此调整以达到更高时钟速度。这一 MSI 的加速降低了低速的选择范围,STM32L4 MSI 的最低可能频率为 100 kHz,而 STM32L0xx MCU 为 65 kHz。
2 c6 M. O, w- Z: Y) T1 R. P1 MHz 以下的可选速度是不同的,因此难以直接比较两种 MCU 的效率。另外,在STM32L4 系列中,MSI 可在其 PLL 模式中使用 LSE 硬件自动校准。这使得 MSI 更加精确,而 STM32L0 产品无此选项。3 c1 D9 x" @; M( C- j2 R. j
STM32L0 系列对于 HSI 时钟源具有一个简单的时钟因子 4 分频器,这使得 HSI 成为 16 或 4MHz 的有效源。 STM32L4 MCU 在 HSI16 时钟上没有直接的分频器。因此,在一些 UART速度需要高于 9600 Bd 的应用中, STM32L0 可能会高效很多。对于 STM32L4,若 16 MHz不够有效,解决方案为使用第二时钟源做系统时钟。% [7 J/ z+ I3 a! j
LSI 时钟频率也有不同,但这与我们的情况无关。7 H$ B- M6 n7 H
- Q9 d* e/ c1 {: h# m9 D: ?/ ]. `
2.1.2 电源管理; X/ ~3 p, `- q; Q8 m$ E& `4 i
STM32L4 系列的主调压器仅有两个范围,而 STM32L0xx MCU 有三个。此外,由于有更强的 MCU 支持,这两个范围被移到了更高频率。" j4 Q  ?% I. r4 e; C6 o) X- p
非常有用的低功耗运行模式弥补了这一不足。
2 E2 J/ e" b& S8 @3 MSTM32L0xx MCU 在从 Sleep 或 Stop 低功耗模式唤醒后,无法直接返回至低功耗运行模式,而 STM32L4 系列不存在这一限制。 STM32L4xx 上的低功耗运行也不限于 MSI 范围 1,还能工作于高达 2 MHz 的系统时钟速度。即使在低功耗运行中, HSI16 仍可被用作外设时钟。
$ z! P9 b( E6 j* G/ a
: ^- c; {% G+ D6 R4 U$ F9 c
2.2 与 USART 外设的比较
- k5 u$ i% H+ W. Z- B+ KLPUART 比 USART 特性更少,但可用更低功耗工作,并可更有效地使用 LSE 时钟。
+ }9 n* ^% `  O8 N& d两种外设的主要特性总结于表 2 中。6 Y0 ^  i, d. M5 l/ T2 b

* l9 F. y# I) d. d8 P& g( {
" E# w5 w: x+ r- W. e- j
C$J~YUG1(5I{]YMZ3ZBOAYJ.png
2 D: F$ a# H' i3 N- M
. R7 A) m, H  w- Y. }, T1 FUSART 还可使用 LSE 时钟工作,当过采样为 8 时,通信速度最高为 4000 波特,当过采样为 16 时,为 2000 波特。
7 R  J8 s2 o/ s: e. H8 S: a当使用 LPUART 时,仅需 32.768 kHz LSE 时钟即可达到 9600 波特的串行通信,功耗最低,外部晶振可允许非常精确的速度设置。$ z6 V. f8 j+ c% ^% b
对于更高的速率 (例如用于 BT LE 的 57600 波特), LPUART 能效优势下降,但仍可测量为 5% 左右 (参见第 6.1.9 节:更高通信速率)。
% f& i& N* ^$ g8 @* y) {* c本文侧重于 9600 波特处的通信,这对很多应用是通用的:当在 9600 波特速率设置处从Stop 唤醒时, LPUART 的能效优势更加显著。8 I( d: g: {3 L+ R
: _+ K; `& N" v
3 工作模式' G/ V5 n: ]) a, J& @7 \
实际场景可能覆盖多种配置,使用不同的波特率、发 / 收比以及消息间时延。所有这些因素都会影响工作模式的选择。1 n) s2 S4 P# I3 f0 P( p, R& s" w
+ S( [6 I- s. A. t" |2 R/ ]
3.1 轮询模式
7 l6 N- i9 w7 S( l& S; u+ S$ X轮询模式为最简单的可能的工作模式,也称为阻塞模式。CPU 处理单个任务,在非激活期间切换至低功耗模式。几乎没有处理开销,因此可使用非常低的系统时钟速度。0 t9 T$ e; |( n6 }
对于非常简单的场景,此模式极其有效。然而阻塞模式有效地阻塞了 CPU,使其不处理任何其它任务,例如数据处理或并发通信。
9 Q0 `/ p0 c  j7 Z+ P+ o
: Q; j; Y3 _  E+ J
3.2 IT 模式
. S9 O1 M! s6 m8 [1 I2 |# L# R第二个选项是完全依赖于中断,对于每个传输的字节都唤醒 CPU。此工作模式利用 ARM®Cortex® 高级 NVIC 的优势,将处理分割为原子操作,永不阻塞 CPU,实现实时响应。/ ?# V) O; o' a; F: u6 x
然而,此模式会略微加重 CPU 负担,它增加了与栈和上下文恢复有关的处理开销。
& K$ k. z2 _8 C' z" D: z8 F4 n) A- V5 j6 a
# f# Q8 }0 l: m0 L1 j: u
3.3 DMA 模式# }' ]7 W! {- C: I6 a3 ]8 n
在 DMA 模式中, CPU 空余了一大部分的处理,设置 DMA 通道在外设和 SRAM 间移动数据。 CPU 可能会花费一部分处理时间在 Sleep 模式。对于循环缓冲管理,用户应在不需要时禁用半缓冲中断,以让 CPU 内核休息更长时间。然而,DMA 无法与 Stop 模式组合使用,在进入 Stop 低功耗模式之前,应禁用所有 DMA 通道。/ ?' Y9 u* w$ k* P# Y
LPUART 传输的实现得益于批采集模式 (BAM),在该模式中 MCU 处于 Sleep 或低功耗Sleep 模式 (CPU 时钟关闭)。通过将 Flash 存储器配置为掉电模式并关闭其时钟,以及仅对 DMA、 LPUART、 SRAM 提供时钟,可优化功耗。6 K5 `; j: F: q
4 ?: `  u6 S: A7 ?
3.4 组合模式举例2 b5 L9 {4 e' s( A
实际应用通常是以上所述模式的混合,开发者一直尝试在冲突的需求间达到最佳。下面的例子并不在附带的源代码中,只是为了抛砖引玉。
: R6 e" P* x1 b. B  o1 h. _; n" K# f' l; u
3.4.1 带轮询的中断- c4 k# F7 |$ \. P* B! v+ r
一些嵌入式系统可能不需要严格实时,在此情况下,可阻塞 CPU 一段时间以处理一个消息帧。尤其是对于发送的情况,通常用于处理所有 TC 中断的能量被保留,在阻塞模式中发送消息,这时时钟速度可降低,功耗调压器切换至低功耗模式 (LPRUN)。如果 CPU 可在阻塞模式中处理消息,则大约仅需要一半时钟速度。之后恢复正常工作,最好在 Stop 模式中等待进入的应答中断。
  T% c: f1 p+ P: o* t
0 a: g3 E' T9 R0 s: h3 q1 W
3.4.2 DMA 和直接访问组合5 J) h: g9 ?4 Q8 w3 l4 k, b/ {. ?$ g
DMA 通道方便发送数据,它在接收期间是节约功耗的。* I8 R, S7 n' [7 T" c
它的缺点是,在 DMA 模式, LPUART 无法利用从 Stop 模式唤醒的功能。原因是,在唤醒事件之后, DMA 获取正在进行的通信有困难。对于所有可能长时间空闲的应用来说,这是一个严重的缺点。5 H1 R" U' f" q1 S. [
然而, DMA 仍可用于发送,然后用阻塞或中断方法接收。在通信系统中,若进入的消息快速连续或时序可预期,基于 DMA 的接收也可能是一个有效的选项。
2 I+ k- d+ |/ a( |; ]
; U' y; ]. p: ]/ k2 B1 I3 L  z/ }4 其他注意事项
- Z" G" d4 i; h8 e若需低功耗优势的完整概述,请参考已经提及的 AN4445 和 AN4621。下列建议针对我们的情况和用例。6 l7 h& ?% ~% Y8 O+ b9 a
1 ?4 X% H8 H: t% S& ^' C7 H
4.1 从 SRAM 执行
4 B! c# ]2 C7 B: C如果可从 SRAM 执行程序,则有一个选项可以关闭嵌入式 Flash 存储器 (通过时钟门控),进一步降低功耗。
. e) \/ a4 ^+ @2 S8 q% t, I8 H: _7 k2 p: y% a5 O1 \
4.2 GPIO 配置
! c/ t4 |0 b8 }. X  {+ g- K5 O3 ~一些 GPIO 设置可能对功耗有极大影响,而其它设置则不然。. {4 |- r4 R4 Y& z4 U9 K; X! m  _
用于 UART 通信线的引脚应配置为它们的复用功能模式。如果最重要的目标是达到可能的最低功耗,则不建议激活上拉,然而,在一些应用中,可能有必要增强通信的可靠性。速率设置与被测波特率处的功耗没有因果关系。
8 |$ ^: U- h, k在半双工模式适用的地方,也可能做进一步的功耗节省,然而本文不涉及此配置。$ B$ Z7 q. d/ a, {4 j$ y) ]2 M' S8 r) U
其它应用不用的引脚应配置为模拟输入。一旦应用可以部署后,开发者不要忘记将调试线置为模拟。
' z# _- `& B5 Y* ~6 R  V
6 K. C% v  T9 z# ?
4.3 时钟配置
# n' v) z, ]2 n6 F7 N3 N/ s对于 LPUART 外设时钟,为达到 9600 波特并从 Stop 模式唤醒,应选择 LSE 源。
9 i( y$ ?) P) M* I建议对于更高速率使用 HSI。
4 L5 j& Y; n  X6 j+ B# ?系统时钟显而易见的 (也是默认的)选择通常是 MSI 振荡器。除此之外, STM32L0xx 微控制器提供了 HSI 时钟分支上简单的 4 因子分频器,以产生 4 MHz。在 STM32L4xx 产品上,MSI 提供了更高的灵活性,可在 LSE 为 PLL 模式时,使用硬件自动校准纠正它的波动。" H: S. @- j6 ?. {" t
可使用预分频器和 PLL 生成其它速度,本文随后会分析不同的选项。当功耗为第一考虑因素时,这些解决方案都不是最佳的。用户必须参考产品数据手册,以得到不同时钟配置的典型功耗。& d# o# Z, @6 l: }6 _
' F% k- h9 ]! o2 X: `. o% i' A
TJO$]G~FBFS7W%8P%UPYMAP.png
1 `# p* @1 l4 s1 ~; C) Y4 i
; ^7 Z/ |+ d4 h" b, l7 }完整版请查看:附件
0 T- C* c) J6 j! j$ r; s8 j' U8 c% E/ @9 s

在 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 手机版