停止模式下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进行唤醒,具体的还得需要去啃芯片手册,只有设计时做了对应唤醒功能的外设才可以。

相关推荐
小柯博客1 小时前
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(十二)
c语言·stm32·单片机·嵌入式硬件·php·嵌入式
SY师弟4 小时前
51单片机基础部分——独立按键检测
单片机·嵌入式硬件·51单片机
Mapleay5 小时前
FMC STM32H7 SDRAM
stm32·单片机·嵌入式硬件
自小吃多5 小时前
STC8H系列 驱动步进电机
笔记·单片机
易知嵌入式小菜鸡5 小时前
STM32CubeMX-H7-19-ESP8266通信(中)--单片机控制ESP8266实现TCP地址通信
stm32·单片机·嵌入式硬件
乄夜6 小时前
嵌入式面试高频(5)!!!C++语言(嵌入式八股文,嵌入式面经)
c语言·c++·单片机·嵌入式硬件·物联网·面试·职场和发展
c7_ln8 小时前
STM32 低功耗设计全攻略:PWR 模块原理 + 睡眠 / 停止 / 待机模式实战(串口 + 红外 + RTC 应用全解析)
stm32·单片机·实时音视频·江协科技
待什么青丝9 小时前
【TMS570LC4357】之相关驱动开发学习记录2
c语言·arm开发·驱动开发·单片机·学习
小柯博客9 小时前
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
c语言·stm32·单片机·嵌入式硬件·物联网
云山工作室10 小时前
一种停车场自动停车导航器的设计(论文+源码)
单片机·嵌入式硬件·毕业设计·毕设