以STM32L431为例,解析LPUART唤醒STOP模式

在低功耗应用中有时会让mcu进入stop模式以节省功耗,在有些芯片架构中,若要实现这种应用,往往会在进低功耗模式之前将串口的管脚设置成带外部中断模式的普通io口。虽然这样也可以达到效果,但这样难免会丢失开头的一些数据。
stm32家族里有些系列的芯片已经集成了低功耗uart,即lpuart,这样就能将低功耗、数据通信、正常唤醒完美结合。
我们可以使用新的lpuart把mcu从stop下唤醒,又可以不丢失通讯数据。当然基于lpuart唤醒stop模式下的mcu也有一定使用限制。下面我们将详细介绍一下。
使用不同时钟下lpuart进行唤醒分析
1、使用hsi16的lpuart 使用hsi16作为lpuart的时钟,波特率就可以较高。不过使用lpuart来唤醒还是有个问题要注意,即高速的波特率与lpuart的唤醒时间差的问题。我们以stm32l431作为例子,根据其数据手册,它的lpuart唤醒时间如下:
结合某客户的实际案例探讨。他们反映lpuart在576000时唤醒会丢失首字节。来一起详细分析一下这个情况。
如果应用在stop mode 1/2 下,唤醒时间最大为8.5us,这个时间不能逾越串口异步通信所能承受的最大时间公差。毕竟,串口异步通信时是不会针对这个唤醒时间做等待的。那么现在需要做的就是在这样情况下,求得串口的最大安全通信波特率。
首先我们需要需要以下两个参数:
twulpuart (mcu从stop模式下的唤醒时间),这可从数据手册上查得(如上表)。
lpuart接收的允许公差(如下表):
下面我们以8bit ,1 stop bit,brr ≥4096,stop 2 mode作为例子:
首先我们可以通过上表”table 165: tolerance of the lpuart receiver whenbrr[3:0] is different from 0000”得出lpuart在这情况下的接收容差是4.42%.
容错公式为 : dtra + dquant + drec + dtcl + dwu 《 usart
dtra: 预期发送的容错率(这个包含发射器本身振荡器的偏差)
dquant: 波特率接收的错误率
drec: 接收晶体的偏差
dtcl: 发送的偏差率 (一般都是发送器采用不对称的上升沿和下降沿时序)
dwu :是从stop mode 下唤醒后采样点的偏差而导致的错码率。
为了更容易计算,我们简化一下公式,假设dtra,dquant,drec和dtcl为0%,所以dwu是4.42%,为了更准确,我还要考虑晶体的误差,我们使用的hsi误差为1%,twulpuart = 8.5us(这里采用的是stop2):
drec + dwu 《 lpuart
=》1% + dwu 《4.42%
=》dwu《3.42%
因为我们这里采用的是8bit ,1stop,所以 :
m[1:0] = 00 :
dwu = twuusart/(10 × tbit )
tbit min = 8.5us/( 10* 3.42%)
tbit min = 24.8us
所以在这个条件下异步串口允许的最大波特率是1/24.8us,即要小于40.3k的波特率。我们客户使用的是576000的波特率显然过高,丢失首字节就不难理解了。当修改为19200后,问题就解决了。
2、使用lse的lpuart 有了上面的分析,如果lpuart使用lse就相对简单了。因为lse只有32.768khz,lpuart的波特率最大也只能到9600,速度下来了,自然就没有那么多问题了。

视频监控摄像机主要的技术有哪一些
linux与android的区别是什么
飞行汽车未来一定会成为热点话题 甚至达到从未有过的最高潮
手机基带坏了有什么现象?换一个手机基带多少钱
VR/AR头显和PS4相比还存在这些问题!
以STM32L431为例,解析LPUART唤醒STOP模式
开放原子开源基金会与Eclipse基金会正式签署协议,创造了两个第一
Solid Power:2022年初将开始测试用于汽车生产的固态电池
电线束线路故障的原因及检测
基于外部处理器的FPGA加载应用程序的方法研究
智慧交通的建设可以从哪几个方面入手
互导型放大器MAX435/36的性能指标及应用电路分析
Transphorm发布业界首款1200伏GaN-on-Sapphire器件的仿真模型
基于无线宽带的空中组网方案
罗永浩称锤子手机的用户学历最高、收入最高
Intel Rocket Lake 11代桌面酷睿性能曝光
BMS的构成、功能及智能充电机充电系统的设计与应用
ATR与北欧航空租赁签署了包含100余架飞机订单的意向书
凌华科技:全面开启数字化转型之旅
iPhone13发售_苹果13具体上线时间