一、前言
E3 系列芯片是芯驰半导体高功能安全的车规级 MCU,对于 MCU 的硬件设计部分,本系列将会分模块进行讲解,旨在介绍 E3 系列芯片在硬件设计方面的注意事项与经验,本文主要讲解 E3 硬件设计中唤醒电路部分的设计。
二、RTC 模式
E3 系统有三种睡眠模式分别是:Sleep 模式、Hibernate 模式、RTC 模式,本文主要介绍 RTC 模式的唤醒,此处介绍 RTC 模式。在 RTC 模式下,除了 RTC 电源不关,其他电源都关闭, 外部 32kHz 或者内部 32kHz 不关闭。唤醒 RTC 方式有如下几种:① RTC 时钟中断唤醒,② SYS_WAKEUP0,SYS_WAKEUP1 唤醒,③SYS_BUTTON 唤醒。
在 RTC 模式下, 系统典型功耗为 50uW, 系统进入 RTC 模式, 除了 RTC 域的 IO, 其他 IO 都进入高阻态。
三、唤醒源介绍
wakeup0、 wakeup1 和 button 都支持上升沿下降沿以及电平触发, 在系统第一次开机过程中,系统不判断该引脚状态, 当系统进入睡眠前,软件通过写相应的寄存器, 让 wakeup0、 wakeup1、以及 button 处于何种唤醒模式。
四、唤醒电路介绍
当出现超过 3 种唤醒方式时, 需要根据外部唤醒源做一个分类上升沿下降沿以及电平, 通过分类做或门或与门实现。
或门电路设计如下:外部高电平信号进行唤醒,到芯片唤醒引脚则是低电平信号,唤醒引脚常态高电平,从而配置成下降沿唤醒。
与门电路如下:外部低电平信号进行唤醒,到芯片唤醒引脚则是高电平信号,唤醒引脚常态低电平,从而配置成上升沿唤醒。
不管电平触发还是边沿触发, 因为都在 RTC 域, 是参照 RTC 时钟的, 所需触发时间(高低电平保持时间) 不能少于是 50us。对于 50us 以下的触发源且需要判断触发源。对于部分唤醒源时间低于 50us, 比如有些 CAN 用 RX 唤醒系统, 高电平时间很可能是 1us,那么把该唤醒源直接接到 wakeup0、 wakeup1 和 button 是唤醒不了系统的。这个时候需要采用延时电路, 下面是具体的延时电路图,调节 R2,C1 和 R6 可以使输入 1us 的时间延长到 ms 级别。 并且把该信号接到 wakeup0、 wakeup1 和button 唤醒系统。 系统唤醒后,通过 TX/RX 判断是哪个唤醒源唤醒了系统,或者通过再延长该电路时间接到 E3 GPIO 上, 使得保证系统唤醒后 15ms,E3 GPIO 能够读到相应的状态。
另外此处唤醒源信号的延长也能通过 RC 电路进行电平脉冲延长,此处简单介绍 RC 电路延时时间的计算。关于 RC 电路延时的计算,如下图。
例如 R=470K,C=0.1uF 延时时间的计算,计算时间公式为:t=RC * ln[(V1-V0)/(V1-Vt)]。
V0 为电容上的初始电压值,V1 为电容最终可充到或放到的电压值,Vt 为 t 时刻电容上的电压值。
如上图,假设求充到 1.1V 的时间则计算如下:
V0=0,V1=3.3V, Vt=1.1V,
故 t=RC*ln[(3.3-0)/(3.3-1.1)]=RC*ln1.5=0.405*RC=405us.
此处 RC 电路主要延长脉冲上电的时间,当脉冲时间低于芯片识别阈值时,可以使用 RC 电路进行时间延长。
五、结语
本文介绍了 E3 硬件电路的唤醒电路的设计,主要涉及到 RTC 模式、唤醒源、唤醒电路、延时电路的介绍。
六、参考资料
《SemiDrive_E3硬件设计手册_Rev01.11》
阅读原文,了解更多精彩技术内容吧!