在特定的應用場景下對能耗要求極為嚴格,為滿足不同能耗要求,SemiDrive E3 系列分別支持 RTC,Sleep 和 Hibernate 三種低功耗模式,本文講解晶片處於低功耗時,系統內部資源分配情況及如何喚醒低功耗,本文以 RTC 低功耗模式為例,講解如何使用 EB 工具配置低功耗參數。
硬體平台:E3640 官方開發板(SD103_E3_GATEWAY_ePOWERTRAIN_A03_019);
軟體環境:IAR Embedded Workbench for ARM 8.50.6;
軟體平台:E3 MCAL PTG3.0。
![](https://edit.wpgdadawant.com/uploads/news_file/blog/2024/14176/tinymce/1.jpg)
圖1 E3640 官方開發板
二、低功耗功能說明
1 Sleep 低功耗模式
在系統通過軟體進入 Sleep 模式,需要做如下操作:
- 所有的 CPU 核處於 inactive 狀態,關閉所有 CPU 時鐘;
- 關閉所有外部時鐘,只保留 wakeup 事件所需要的時鐘;
- 關閉所有 PLL;
- 24MHz 外部時鐘或者內部 RC 時鐘是否關閉,取決於具體應用;
- 所有的存儲進入保留模式。
喚醒 Sleep 低功耗模式,方式如下幾種:
- 24MHz 時鐘沒有關閉
所有中斷腳都可以喚醒;
- 24MHz 時鐘關閉
RTC 時鐘中斷喚醒;
USB_ID 或者 VBUS 喚醒;
未斷電的 GPIO 異步喚醒。
2 Hibernate 低功耗模式
在系統通過軟體進入 Hibernate 模式,需要做如下操作:
- 關閉所有的 CPU 電源;
- 關閉 AP 域電源 ;
- Safety 域片內的存儲進入保留模式;
- 關閉所有 Safety 域周邊時鐘 ;
- 關閉 PLL ;
- 關閉 24MHz 晶體和內部 RC 晶體 ;
- 關閉所有的模擬模塊ADC、ACMP、POR、VD、PT_SENSOR等。
喚醒 Hibernate 方式有如下幾種:
- RTC 時鐘中斷喚醒 ;
- 未斷電的 GPIO 異步喚醒。
3 RTC 低功耗模式
在 RTC 模式下,除了 RTC 電源不關,其他電源都關閉,外部 32KHz 或者內部 32KHz 不關閉。
喚醒 RTC 低功耗模式,方式如下幾種:
- RTC 時鐘中斷喚醒;
- Sys_Wakeup0,Sys_Wakeup1 喚醒;
- Sys_Button 喚醒。
在 RTC 模式下,系統典型功耗為 50uW,系統進入 RTC 模式,除了 RTC 域的 IO,其他 IO 都進入高阻態。
3.1 RTC 低功耗配置項
3.1.1 WakeupSourceConfiguration
![](https://edit.wpgdadawant.com/uploads/news_file/blog/2024/14176/tinymce/image3.png)
- Wakeup0 Pin Select:配置 enable/disable wakeup0 喚醒源;
- Wakeup1 Pin Select:配置 enable/disable wakeup1 喚醒源;
- Wakeup0 And Wakeup1 Pin Select:配置 Wakeup0 And Wakeup1 組合模式,AND 僅當 wakeup0 和 wakeup1 都處於活動狀態時才生成喚醒事件,OR 為 wakeup0 或wakeup1 處於活動狀態時生成喚醒事件;
- BC Button Select:配置 enable/disable BC_Button enter/exit RTC mode;
- RTC Interrupt Select:配置 enable/disable RTC Timer 喚醒源;
註:Wakeup0 And Wakeup1 Pin Select 選擇 AND 模式時,wakeup0/wakeup1 同時選擇 EDGE 是不支持的。
3.1.2 Wakeup0PinConfiguration
![](https://edit.wpgdadawant.com/uploads/news_file/blog/2024/14176/tinymce/image4.png)
- Wakeup0 Pin Pulse Mode Edge Select:配置 RTC 模式下 Wakeup0 引腳的脈衝模式邊緣設置,RAISING:上升沿有效,FALLING:下降沿有效,BOTH:雙邊沿有效,INVALID:邊沿觸發無效。
- Wakeup0 Pin Trigger Mode:配置觸發方式,LEVEL:電平觸發,EDGE邊沿觸發;
- Wakeup0 Pin Polarity Select:配置有效電平/邊沿;
- Wakeup0 Pin Filter Bypass Select:使能濾波,FILTER_ENABLE:使能濾波,FILTER_BYPASS:禁止濾波;
- Wakeup0 Pin Filter Edge Select:濾波邊沿;
- Wakeup0 Pin Filter Cnt (0 -> 15):濾波過濾閥值;
- Wakeup0 Pin Sample Interval (0 -> 7):濾波採樣值;
註:Wakeup0 必須在edge mode下才支持濾波功能;
3.1.3 BCButtonConfiguration
![](https://edit.wpgdadawant.com/uploads/news_file/blog/2024/14176/tinymce/image5.png)
- BC Button Off/on Sensitive Select:配置 off/on 觸發模式;
- BC Button Off/on Polarity Select:配置 off/on 電平/邊沿;
- BC Button Off/on Max Valid Window Select :配置 enable/disable max 窗口設置;
- BC Button Off/on Max Valid Window Timer:配置 max 計數值;
- BC Button Off/on Min Valid Window Timer:配置 min 計數值;
- BC Button Window Timer Unit:配置窗口基準單元;
- BC Button Filter Bypass Select:配置過濾 enable/disable;
- BC Button Filter Edge Select:配置過濾邊沿;
- BC Button Filter timer:配置過濾閾值;
- BC Button Sample Interval:配置過濾採樣值;
3.1.4 RTCConfiguration
![](https://edit.wpgdadawant.com/uploads/news_file/blog/2024/14176/tinymce/image6.png)
配置RTC Timer硬體通道,秒/分,計時時間。
- RTC Channel Select:選擇 RTC Timer 硬體通道;
- RTC1 Timer Mode Select:選擇 RTC1 Timer 計時單位(SEC/MIN);
- RTC1 Wakeup Timer:配置 RTC1 Timer 計數值;
- RTC2 Timer Mode Select:選擇 RTC2 Timer 計時單位(SEC/MIN);
- RTC2 Wakeup Timer:配置 RTC2 Timer 計數值。
3.2 結果驗證
晶片上電重啟 log 信息提示,如下圖:
在命令行中輸入 runcase 100,使開發板切換至 RTC 低功耗狀態,VCC3V3_AP、VCC3V3_SAF、VCC1V8_SAF處於掉電狀態,CPU 處於斷電狀態,開發板此時不能 Debug 或 attach CPU 內核,開發電源情況如下圖。
RTC 定時器喚醒低功耗或 Wakeup0 按鍵喚起低功耗,如下圖所示:
![](https://edit.wpgdadawant.com/uploads/news_file/blog/2024/14176/tinymce/1713335374645.png)
三、參考文檔
《SemiDrive_E3硬體設計手冊_Rev1.09》
《SemiDrive_E3_MCAL_User_Guide_Rev03.00》
歡迎在博文下方留言評論,我們會及時回復您的問題。
如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com 作者:Linna Wang / 王麗娜
更多資訊,請掃碼關注我們!
評論