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

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

[复制链接]
STMCU小助手 发布时间:2022-7-21 13:09
前言
5 G3 y; y+ ^- @- ySTM32L0 和 STM32L4 系列微控制器具有复用的 UART 接口,这一设计令 MCU 仅需最小功耗即可工作。
# p/ F' E0 |2 I+ i$ o本文的目的是解释怎样充分利用低功耗 UART (LPUART)的优势,扩展上述产品的电池寿命。7 B/ m' d$ K6 O6 m
它显示了在实际示例中,等待通信设备的极低功耗。软件包 X-CUBE-LPUART 提供了在第 6.1 节和第 6.2 节中所述的用于执行测量的代码,可从 www.st.com 下载。6 y' N& M6 |3 @
下列文件 (也可在 www.st.com 获取)可作为参考:, Z7 J" A& \6 K( \6 _9 F  s1 C4 H0 d
• 应用笔记 AN4445:“STM32L0xx 超低功耗特性概述 ” * h4 o3 `4 T3 L5 W$ e
• 应用笔记 AN4621:“STM32L4xx 超低功耗特性概述 ”
; P1 U& Q6 \" o8 e& G. H• 应用笔记 AN4746:“ 优化 STM32L4xx 的功耗和性能 ” " Q" ~- K- U0 n
• 参考手册 RM0351:“STM32L4x6 高级的基于 ARM® 的 32 位 MCU”
  ^5 X  [0 L+ p: @# U; E, L, W• 参考手册 RM0376:“ 超低功耗 STM32L0x2 高级的基于 ARM® 的 32 位 MCU”。
  X) T! @' Y  F# {* X8 f8 j3 }. ?4 E4 W% o
1定义  `  d0 B7 s9 N* i
BX}YMICKN{F}ZL1_3M(37.png
5 n- [  m5 _% O& a( \, F* m4 W, g/ S) ?6 z0 V: P2 H6 L9 y/ U+ u4 E
2 特性总结- _5 |. P; s& @$ x: x( ~7 h
2.1 L0 和 L4 系列比较. H6 X& b+ d, `
虽然 STM32L4 和 STM32L0 系列上的 LPUART 外设实际上相同,但这两种产品有很大区别。除了 ARM® Cortex® 内核不同,还有其它区别影响了 LPUART 的效率。
  }8 M+ Q1 R  ?4 O. p4 Z& ]* n( K& R, G% l  [
2.1.1 时钟子系统% B0 Y9 N& H- s! X+ r0 h
STM32L4xx MCU 可支持更高的时钟速度,这有效地降低了高要求任务的处理时间。 MSI 内部时钟源也因此调整以达到更高时钟速度。这一 MSI 的加速降低了低速的选择范围,8 W8 z0 R7 R, ~+ n' C$ f, |
STM32L4 MSI 的最低可能频率为 100 kHz,而 STM32L0xx MCU 为 65 kHz。
: t! o  y3 }6 m5 ^; K5 L" G  s1 MHz 以下的可选速度是不同的,因此难以直接比较两种 MCU 的效率。另外,在STM32L4 系列中,MSI 可在其 PLL 模式中使用 LSE 硬件自动校准。这使得 MSI 更加精确,而 STM32L0 产品无此选项。* b3 n) ?6 l, A' S+ c/ l% E: @9 K
STM32L0 系列对于 HSI 时钟源具有一个简单的时钟因子 4 分频器,这使得 HSI 成为 16 或 4 MHz 的有效源。 STM32L4 MCU 在 HSI16 时钟上没有直接的分频器。因此,在一些 UART速度需要高于 9600 Bd 的应用中, STM32L0 可能会高效很多。对于 STM32L4,若 16 MHz不够有效,解决方案为使用第二时钟源做系统时钟。
+ Q4 ^' D/ F# A" LLSI 时钟频率也有不同,但这与我们的情况无关。
6 p3 t7 f% n& b3 `/ V
$ ]) I  E: Q/ j7 v4 x# S* w6 U
2.1.2 电源管理# M% i5 h- D) _8 f# j" g: B
STM32L4 系列的主调压器仅有两个范围,而 STM32L0xx MCU 有三个。此外,由于有更强的 MCU 支持,这两个范围被移到了更高频率。/ M; s7 N. N( ], v# ^7 l
非常有用的低功耗运行模式弥补了这一不足。
3 }* Q1 b6 B) Q$ E4 SSTM32L0xx MCU 在从 Sleep 或 Stop 低功耗模式唤醒后,无法直接返回至低功耗运行模式,而 STM32L4 系列不存在这一限制。 STM32L4xx 上的低功耗运行也不限于 MSI 范围 1,
( `. r* N/ T8 Z0 F) @9 H还能工作于高达 2 MHz 的系统时钟速度。即使在低功耗运行中, HSI16 仍可被用作外设时钟。
) j: M" p% w' r2 V% }% }7 n0 }
1 B9 E- F0 T" _+ C
2.2 与 USART 外设的比较
* N2 ]  ]2 w$ g8 z3 lLPUART 比 USART 特性更少,但可用更低功耗工作,并可更有效地使用 LSE 时钟。* m- T+ c8 P. T! i  z$ f* F/ x
两种外设的主要特性总结于表 2 中。% B' _# K0 r! d3 ~
9 j3 q* q% B0 t2 b

* m4 X. v) y# x" G& Q; E6 Q3 p$ R/ p& p2 R* ]! P/ ^5 s
- b* b$ W4 `- Z4 T- t2 J
USART 还可使用 LSE 时钟工作,当过采样为 8 时,通信速度最高为 4000 波特,当过采样为 16 时,为 2000 波特。
! j# k. F# e* d2 e/ z当使用 LPUART 时,仅需 32.768 kHz LSE 时钟即可达到 9600 波特的串行通信,功耗最低,外部晶振可允许非常精确的速度设置。& t3 s3 G& }7 p5 [7 U
对于更高的速率 (例如用于 BT LE 的 57600 波特), LPUART 能效优势下降,但仍可测量为 5% 左右 (参见第 6.1.9 节:更高通信速率)。
* t5 t! ?: q& @; k( A本文侧重于 9600 波特处的通信,这对很多应用是通用的:当在 9600 波特速率设置处从Stop 唤醒时, LPUART 的能效优势更加显著。1 G0 z# X% o3 y( {- X. \% a! y
' E$ v/ U# h  |7 [

' Z8 {. U# {8 F7 R4 M; v% H$ ]" l6 F* B6 J/ L2 K  n
3 工作模式
* m  D: S7 B, a" j, w) L4 ?1 H3 [- p实际场景可能覆盖多种配置,使用不同的波特率、发 / 收比以及消息间时延。所有这些因素都会影响工作模式的选择。
! F, @% s: i  u7 @0 n! w  d7 {% o$ w; t7 L7 P( r9 @
3.1 轮询模式" y2 e5 e3 F- q& f
轮询模式为最简单的可能的工作模式,也称为阻塞模式。CPU 处理单个任务,在非激活期间切换至低功耗模式。几乎没有处理开销,因此可使用非常低的系统时钟速度。
+ `5 A; V( y0 B( P9 O, @& f) o对于非常简单的场景,此模式极其有效。然而阻塞模式有效地阻塞了 CPU,使其不处理任何其它任务,例如数据处理或并发通信。
# R5 v: M( e# b, Q- e: l; o8 Q; f% I8 u: U' K, |( `
3.2 IT 模式
, y) k, S3 h9 d! w$ G5 P$ T0 S3 y第二个选项是完全依赖于中断,对于每个传输的字节都唤醒 CPU。此工作模式利用 ARM®Cortex® 高级 NVIC 的优势,将处理分割为原子操作,永不阻塞 CPU,实现实时响应。7 |! `! E/ y, P1 M8 E; c8 q+ t0 f& U
然而,此模式会略微加重 CPU 负担,它增加了与栈和上下文恢复有关的处理开销。7 z3 h% U4 W8 j! i

" ~1 ?$ V6 L6 C. l0 g
3.3 DMA 模式1 ~9 A. f4 j+ N. u$ L% B: o
在 DMA 模式中, CPU 空余了一大部分的处理,设置 DMA 通道在外设和 SRAM 间移动数据。 CPU 可能会花费一部分处理时间在 Sleep 模式。对于循环缓冲管理,用户应在不需要时禁用半缓冲中断,以让 CPU 内核休息更长时间。然而,DMA 无法与 Stop 模式组合使用,3 }# i. E* o; A8 c  c
在进入 Stop 低功耗模式之前,应禁用所有 DMA 通道。
3 h+ `( H3 C! n9 a. ~. o4 eLPUART 传输的实现得益于批采集模式 (BAM),在该模式中 MCU 处于 Sleep 或低功耗Sleep 模式 (CPU 时钟关闭)。通过将 Flash 存储器配置为掉电模式并关闭其时钟,以及仅对 DMA、 LPUART、 SRAM 提供时钟,可优化功耗。% C& Y+ [- L5 q0 e  i) d+ B

" E; c8 q" H: r6 p3 Q/ E
3.4 组合模式举例% _  J8 _/ j" e) C& R, r
实际应用通常是以上所述模式的混合,开发者一直尝试在冲突的需求间达到最佳。下面的例子并不在附带的源代码中,只是为了抛砖引玉。' d5 q8 D  k( q
1 y! n1 g/ g0 G  A# `: a
3.4.1 带轮询的中断2 {7 }/ C4 a& ^* Q  F
一些嵌入式系统可能不需要严格实时,在此情况下,可阻塞 CPU 一段时间以处理一个消息帧。尤其是对于发送的情况,通常用于处理所有 TC 中断的能量被保留,在阻塞模式中发送消息,这时时钟速度可降低,功耗调压器切换至低功耗模式 (LPRUN)。如果 CPU 可在阻塞模式中处理消息,则大约仅需要一半时钟速度。之后恢复正常工作,最好在 Stop 模式中等待进入的应答中断。
) j5 i+ D! f+ A2 X5 d/ x
6 L7 S* @; v+ N* ^! B
3.4.2 DMA 和直接访问组合
' ^: j( u5 }% ?DMA 通道方便发送数据,它在接收期间是节约功耗的。
8 i3 `# j! ]1 R8 @/ w) y' W它的缺点是,在 DMA 模式, LPUART 无法利用从 Stop 模式唤醒的功能。原因是,在唤醒事件之后, DMA 获取正在进行的通信有困难。对于所有可能长时间空闲的应用来说,这是一个严重的缺点。* v3 A" y6 m% F) ^7 X
然而, DMA 仍可用于发送,然后用阻塞或中断方法接收。在通信系统中,若进入的消息快速连续或时序可预期,基于 DMA 的接收也可能是一个有效的选项。4 f, F3 m& D% U' V5 a  f& c* t7 R
& }  f/ }+ R& Y+ U4 D

+ P  v8 ^4 @& A# {# A
( q  L4 }. f, i, g+ Q完整版请查看:附件8 E- j/ O' u4 m4 m
3 ^- V3 i+ u6 p" N0 g

" z: W* v0 z1 b7 S; `* v

DM00151811_ZHV3.pdf

下载

1.12 MB, 下载次数: 10

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

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版