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

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

[复制链接]
STMCU小助手 发布时间:2022-7-21 13:09
前言3 h8 L/ o7 J7 D. P' ?. T
STM32L0 和 STM32L4 系列微控制器具有复用的 UART 接口,这一设计令 MCU 仅需最小功耗即可工作。& G; l' d) N$ R$ H5 ^
本文的目的是解释怎样充分利用低功耗 UART (LPUART)的优势,扩展上述产品的电池寿命。
9 m) ^: m5 H9 {  v它显示了在实际示例中,等待通信设备的极低功耗。软件包 X-CUBE-LPUART 提供了在6.1 6.2 中所述的用于执行测量的代码,可从 www.st.com 下载。; }3 r2 I8 J0 b. f/ s1 n
下列文件 (也可在 www.st.com 获取)可作为参考:
- j0 y, ]; O8 F3 Z; B• 应用笔记 AN4445:“STM32L0xx 超低功耗特性概述 ”
0 ?6 n3 g5 F/ ~2 x  A3 m; z! x• 应用笔记 AN4621:“STM32L4xx 超低功耗特性概述 ”
% f: K; m9 C* `5 a• 应用笔记 AN4746:“ 优化 STM32L4xx 的功耗和性能 ” . u( V. Q5 }7 `4 ~  X- i' n
• 参考手册 RM0351:“STM32L4x6 高级的基于 ARM® 的 32 位 MCU”
; E/ {5 _% }3 q* O2 A! S+ h• 参考手册 RM0376:“ 超低功耗 STM32L0x2 高级的基于 ARM® 的 32 位 MCU”。
# ^1 U: P0 v8 ^& N) n1 ?5 v" _# x/ Y, a' @
1定义, f- S# _- M6 Y1 A6 {
BX}YMICKN{F}ZL1_3M(37.png % N8 i# j6 }! e/ F9 S
: {" C' _4 Z, E! v- U: j; f
2 特性总结
& N4 ^3 F: ^" B9 A2.1 L0 L4 系列比较( e/ ]' d7 g1 Q$ e3 V
虽然 STM32L4 和 STM32L0 系列上的 LPUART 外设实际上相同,但这两种产品有很大区别。除了 ARM® Cortex® 内核不同,还有其它区别影响了 LPUART 的效率。& r8 k" U1 Y( T) k" L1 R4 {5 I
9 \8 ?5 r/ a: ~2 c
2.1.1 时钟子系统6 P8 g" U7 Q7 Q  x7 i' S  [! J
STM32L4xx MCU 可支持更高的时钟速度,这有效地降低了高要求任务的处理时间。 MSI 内部时钟源也因此调整以达到更高时钟速度。这一 MSI 的加速降低了低速的选择范围,
& |- K- }" a7 Z2 ESTM32L4 MSI 的最低可能频率为 100 kHz,而 STM32L0xx MCU 为 65 kHz。
* n$ N/ F' S; O/ d# V1 MHz 以下的可选速度是不同的,因此难以直接比较两种 MCU 的效率。另外,在STM32L4 系列中,MSI 可在其 PLL 模式中使用 LSE 硬件自动校准。这使得 MSI 更加精确,而 STM32L0 产品无此选项。
6 E* L* z; [  D) h0 r' Z7 pSTM32L0 系列对于 HSI 时钟源具有一个简单的时钟因子 4 分频器,这使得 HSI 成为 16 或 4 MHz 的有效源。 STM32L4 MCU 在 HSI16 时钟上没有直接的分频器。因此,在一些 UART速度需要高于 9600 Bd 的应用中, STM32L0 可能会高效很多。对于 STM32L4,若 16 MHz不够有效,解决方案为使用第二时钟源做系统时钟。
* I' z( Y# |. P$ VLSI 时钟频率也有不同,但这与我们的情况无关。
! `" Q6 a% f& j  i' Z- L  X4 k& t
0 W: d1 L+ f5 F1 N+ b3 [
2.1.2 电源管理& `3 w( w3 a: ~1 F# d7 ?0 s
STM32L4 系列的主调压器仅有两个范围,而 STM32L0xx MCU 有三个。此外,由于有更强的 MCU 支持,这两个范围被移到了更高频率。
8 _- ^$ K5 `+ @8 V* `; m: V# P非常有用的低功耗运行模式弥补了这一不足。  D% h9 J9 ~0 b
STM32L0xx MCU 在从 Sleep 或 Stop 低功耗模式唤醒后,无法直接返回至低功耗运行模式,而 STM32L4 系列不存在这一限制。 STM32L4xx 上的低功耗运行也不限于 MSI 范围 1,
* w- b" @* E' ]0 ?/ y, N, U: ]4 K还能工作于高达 2 MHz 的系统时钟速度。即使在低功耗运行中, HSI16 仍可被用作外设时钟。
3 W9 K, |/ |8 @) C4 y, p7 F
: z1 G( Y* S) |
2.2 USART 外设的比较
6 K: ~8 ~% v8 p5 J2 ^# w" QLPUART 比 USART 特性更少,但可用更低功耗工作,并可更有效地使用 LSE 时钟。+ y# `: D% ]7 h9 L$ \! g: b
两种外设的主要特性总结于2 中。4 [. ^) v3 ^( Q

9 K' `: o' l, l
/ r  Q# s+ Z' A9 R2 ~
$ t0 E6 O; T; B+ B! e4 u! l+ Q/ _7 S% W
USART 还可使用 LSE 时钟工作,当过采样为 8 时,通信速度最高为 4000 波特,当过采样为 16 时,为 2000 波特。
3 X# I  Z) Y. W3 g5 c当使用 LPUART 时,仅需 32.768 kHz LSE 时钟即可达到 9600 波特的串行通信,功耗最低,外部晶振可允许非常精确的速度设置。9 t0 c+ g( G8 C) Z1 q
对于更高的速率 (例如用于 BT LE 的 57600 波特), LPUART 能效优势下降,但仍可测量为 5% 左右 (参见6.1.9 节:更高通信速率)。0 c. a( U6 P" S+ w/ a
本文侧重于 9600 波特处的通信,这对很多应用是通用的:当在 9600 波特速率设置处从Stop 唤醒时, LPUART 的能效优势更加显著。* J. h6 g5 H" w% C; y
0 b2 t; n" e) z% e& ?

  v1 X7 _+ g: h; c! s) {7 Z! ^8 m7 t: t' y" N) A/ V) [. q% p
3 工作模式" Q: }8 D- e- M! _
实际场景可能覆盖多种配置,使用不同的波特率、发 / 收比以及消息间时延。所有这些因素都会影响工作模式的选择。
+ k+ `: k! M# F5 `& B/ O, b
& e$ t2 x* B! A1 n2 e# a- D7 g( p
3.1 轮询模式7 G. Z: K% R% M& e5 x9 s
轮询模式为最简单的可能的工作模式,也称为阻塞模式。CPU 处理单个任务,在非激活期间切换至低功耗模式。几乎没有处理开销,因此可使用非常低的系统时钟速度。
) ?) _* i1 u# ^7 t* c; T+ q对于非常简单的场景,此模式极其有效。然而阻塞模式有效地阻塞了 CPU,使其不处理任何其它任务,例如数据处理或并发通信。8 s* X# v* p- k1 |9 l) @3 d# Y

2 R( V9 u$ g1 U
3.2 IT 模式" Y: w  P1 j) U8 F1 O5 M: h: \
第二个选项是完全依赖于中断,对于每个传输的字节都唤醒 CPU。此工作模式利用 ARM®Cortex® 高级 NVIC 的优势,将处理分割为原子操作,永不阻塞 CPU,实现实时响应。
" d/ p6 m' H. f然而,此模式会略微加重 CPU 负担,它增加了与栈和上下文恢复有关的处理开销。, |+ ^$ k7 D; o5 E; \1 n

! l# q5 O1 I* i2 m5 v2 N- o
3.3 DMA 模式, ~& T. q. b1 m7 i0 ?4 l
在 DMA 模式中, CPU 空余了一大部分的处理,设置 DMA 通道在外设和 SRAM 间移动数据。 CPU 可能会花费一部分处理时间在 Sleep 模式。对于循环缓冲管理,用户应在不需要时禁用半缓冲中断,以让 CPU 内核休息更长时间。然而,DMA 无法与 Stop 模式组合使用,5 `! M" o# d- O5 B* D3 ?
在进入 Stop 低功耗模式之前,应禁用所有 DMA 通道。
; l7 {# R1 k' s5 RLPUART 传输的实现得益于批采集模式 (BAM),在该模式中 MCU 处于 Sleep 或低功耗Sleep 模式 (CPU 时钟关闭)。通过将 Flash 存储器配置为掉电模式并关闭其时钟,以及仅对 DMA、 LPUART、 SRAM 提供时钟,可优化功耗。& L# I  t; y' y8 l$ u+ s% t
( N9 w" K- d8 H2 x4 s% ]! W6 i
3.4 组合模式举例7 ?, [- T+ S, }. l
实际应用通常是以上所述模式的混合,开发者一直尝试在冲突的需求间达到最佳。下面的例子并不在附带的源代码中,只是为了抛砖引玉。
0 |2 w3 x# K  z6 w; M& s( d8 C
, g4 i$ l8 ]9 P2 G+ @. _2 a3 P- K3.4.1 带轮询的中断
# P' I# S8 ~. T- W( i一些嵌入式系统可能不需要严格实时,在此情况下,可阻塞 CPU 一段时间以处理一个消息帧。尤其是对于发送的情况,通常用于处理所有 TC 中断的能量被保留,在阻塞模式中发送消息,这时时钟速度可降低,功耗调压器切换至低功耗模式 (LPRUN)。如果 CPU 可在阻塞模式中处理消息,则大约仅需要一半时钟速度。之后恢复正常工作,最好在 Stop 模式中等待进入的应答中断。
& B8 p* v' ^6 M8 }" ^8 p9 L' J1 Y0 C7 S# A0 b8 l
3.4.2 DMA 和直接访问组合6 d# \$ W% c& D' g
DMA 通道方便发送数据,它在接收期间是节约功耗的。
- a, G+ e: J7 V8 Q1 O+ s它的缺点是,在 DMA 模式, LPUART 无法利用从 Stop 模式唤醒的功能。原因是,在唤醒事件之后, DMA 获取正在进行的通信有困难。对于所有可能长时间空闲的应用来说,这是一个严重的缺点。
; ~4 e% o3 m% x) V, w/ [. r然而, DMA 仍可用于发送,然后用阻塞或中断方法接收。在通信系统中,若进入的消息快速连续或时序可预期,基于 DMA 的接收也可能是一个有效的选项。
) L( k' q8 g: a& ~% ^
# C% |4 t1 a4 x) S6 N! Z
2 e. U$ K0 d+ ?+ K4 C' w* M4 l3 [8 ~  e9 z6 d  X) E* F3 j. a9 O) X' ]
完整版请查看:附件$ l8 ?+ Z& D( y. ?9 ^
" E! K# x; \3 B' m
/ j9 R7 N; p; O) h4 a9 _

DM00151811_ZHV3.pdf

下载

1.12 MB, 下载次数: 6

收藏 评论0 发布时间:2022-7-21 13:09

举报

0个回答

所属标签

相似分享

官网相关资源

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