停止模式下USART为什么可以唤醒MCU?

在MCU的停止模式下,USART之类的外设时钟是关闭的,但是USART章节有描述到在停止模式下可以用USART来对MCU进行唤醒:

大家是否会好奇在外设的时钟被关闭的情况下,USART怎么能通过接收中断或者唤醒事件对MCU进行唤醒的呢?

其实除了USART可以做到外,I2C同样也可以做到相同的唤醒功能。

为什么这两个外设可以呢?

它们有一个相同点就是支持双时钟域,简单来说,假如外设挂在APB总线上,一般它们的时钟就直接来自于总线时钟,但是I2C和USART,它们的时钟源选择可以来自于HSI,这就给它们提供了从停止模式唤醒的一个条件,但是即使是HSI作为时钟源,在stop mode下,HSI也是关闭的状态,好像也无法唤醒?

当I2C或者USART时钟源选择为HSI的时候,且配置了它们在Stop mode下唤醒MCU的功能,此时进入stop mode后,HSI的时钟关闭,当有信号进入外设时,HSI会先一步被唤醒,供给I2C或USART,使得两个外设开始工作,当它们接收到对应的信息后,确认是否是可以唤醒CPU的事件,例如I2C接收到的地址是否匹配,若不匹配,则不会生成对应的唤醒事件用于唤醒MCU,且HSI再次关闭,如果信息匹配,则会生成唤醒事件用于唤醒CPU。大致的时序图如下:

但是也不是所有的时钟源可以选择为HSI的外设都可以在stop mode下对MCU进行唤醒,具体的还得需要去啃芯片手册,只有设计时做了对应唤醒功能的外设才可以。

相关推荐
Blossom.1184 分钟前
把 AI 推理塞进「 8 位 MCU 」——0.5 KB RAM 跑通关键词唤醒的魔幻之旅
人工智能·笔记·单片机·嵌入式硬件·深度学习·机器学习·搜索引擎
桃源学社(接毕设)1 小时前
基于人工智能和物联网融合跌倒监控系统(LW+源码+讲解+部署)
人工智能·python·单片机·yolov8
玖別ԅ(¯﹃¯ԅ)2 小时前
PID学习笔记6-倒立摆的实现
笔记·stm32·单片机
清风6666667 小时前
基于51单片机的手机蓝牙控制8位LED灯亮灭设计
单片机·嵌入式硬件·智能手机·毕业设计·51单片机·课程设计
anghost15014 小时前
基于单片机的超市储物柜设计
单片机·嵌入式硬件·超市储物柜设计
qq_5260991318 小时前
工控机的用途与介绍:工业自动化的重要引擎
嵌入式硬件·自动化·电脑
尘似鹤18 小时前
旋钮键盘项目---foc讲解(开环)
单片机·嵌入式硬件
意法半导体STM3219 小时前
STM32N6引入NPU,为边缘AI插上“隐形的翅膀”
单片机·ai·npu·st·stm32n6·边缘人工智能
范纹杉想快点毕业1 天前
嵌入式 C 语言编程规范个人学习笔记,参考华为《C 语言编程规范》
linux·服务器·数据库·笔记·单片机·嵌入式硬件·fpga开发
Wallace Zhang1 天前
STM32 - Embedded IDE - GCC - 解决LWRB库在GCC编译器会编译失败,在ARMCC编译器时却正常编译
ide·stm32·嵌入式硬件