一、前言
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》
評論