
LPUART 唤醒 STOP MODE 下的 MCU
前言
在很多低功耗应用中都需将 MCU 进入 STOP MODE 以节省更多的功耗,但是在以前的架构中,如
果要达到这种应用,只能在进入低功耗模式之前将串口的管脚设置成普通的 GPIO 的中断模式,虽然也可
以达到效果,但是这样会丢失第一个字节.所以我们现在可以使用新的 LPUART,这样不仅可以把 MCU 从
STOP mode 下,还可以不丢失第一个数据,但是还是有一定限制和使用方法的.下面我们将详细介绍一下。
1.使用不同时钟下 LPUART 的方法
1.1 使用 LSE 的 LPUART
首先我们先介绍一下使用 LSE 下的 LPUART,这个相对简单了,因为 LSE 只有
32.768Khz,LPUART 的波特率最大也只能到 9600,速度下来了,自然就没有那么多问题了.
1.2 使用 HSI16 的 LPUART
在使用 HSI16 作为 LPUART 的时钟,这样波特率就可以上升很多,这样就会产生一个限制问题,高
速的波特率与 LPUART 的唤醒时间差的问题.我们以 STM32L431 作为例子,他的 LPUART 唤醒时间如
下 :
以下我们以某客户作为例子,他们反映,LPUART 在 576000 时唤醒会丢失字节.我们来详细分析
一下这些情况.
如果应用是在 STOP MODE 1/2 下,则需要等待 8.5uS,但是实际上,串口通信是异步的,并不会等等待,不
想 IIC 有始终延展功能.这时候我们需要做的就是在这样情况下,串口的最大波特率.
首先我们需要需要以下两个参数 :
tWULPUART (wakeup time from Stop mode),这个可以从数据手册上查询.(如上表)
LPUART 接收的允许公差(如下表)
评论0