前言
電池備份(VBAT)功能的實現(xiàn)方法,一般是使用 MCU 自帶的 VBAT 引腳,通過在該引腳連接鈕扣電池,當系統(tǒng)電源因故掉電時,保持 MCU 內(nèi)部備份寄存器內(nèi)容和 RTC 時間信息不會丟失。
本文檔介紹了如何基于 CW32 系列 MCU,通過增加簡單的外部電路配合軟件實現(xiàn) VBAT 功能,在系統(tǒng)電源掉電后仍能保持 RTC 時鐘正常計時,以及如何降低系統(tǒng)功耗,從而延長后備電池的使用壽命。
對于自帶 VBAT 引腳的 MCU,MCU 內(nèi)部有對 VBAT 電源和系統(tǒng)電源的管理單元,保證在系統(tǒng)電源掉電后,及時切換 VBAT 引腳電源給備份域供電,保證 RTC 正常工作。
對于沒有 VBAT引腳的 CW32,要實現(xiàn)類似的功能,可以在外部進行后備帶電池和系統(tǒng)電源的切換,如下圖所示:
后備電池(B1)提供的備用電源 VBAT 和系統(tǒng)電源 VDDIN 通過 2 個肖特基二極管(D1)合路,合路后的電源 VDD 給 MCU 的數(shù)字域 DVCC 和模擬域 AVCC 進行供電。系統(tǒng)電源 VDDIN 通過 R3、R4 電阻分壓得到WAKEIO 信號,連接到 MCU 的 IO 引腳。注意遵循如下規(guī)則:
1. Vwakeio 要大于 MCU IO 口的 Vih;
2. VDDIN 必須高于 Vb1 在 0.4V 以上,否則如果 VDDIN 和 Vb1 相等,在系統(tǒng)電源正常時,后備電池也會有一定的泄放電流,不利于節(jié)省后備電池電量。
2 程序設(shè)計
程序啟動后正常初始化時鐘、IO、RTC 以及 OELD,循環(huán)中檢測系統(tǒng)電源是否存在,如存在則讀取 RTC 時間并顯示。
當系統(tǒng)電源 VDDIN 因故掉電,則關(guān)閉 OLED 電源,并進入 DeepSleep 低功耗睡眠模式。
當系統(tǒng)電源 VDDIN 恢復供電時,產(chǎn)生高電平中斷,喚醒 MCU,退出 DeepSleep 低功耗睡眠模式。
3 參考代碼
int32_t main(void)
{
RCC_Configuration();?????// 時鐘配置
GPIO_Configuration();????//GPIO配置
OLED_Init();?????????//OLED顯示屏初始化配置
dis_err("RTC_TestBoard");?? // 顯示
FirmwareDelay(5000000);??// 增加延時防止過早休眠影響程序燒寫
RTC_init();??????????//RTC時鐘初始化
//DeepSleep 喚醒時,保持原系統(tǒng)時鐘來源
RCC_WAKEUPCLK_Config(RCC_SYSCTRL_WAKEUPCLKDIS);
ShowTime();???????// 獲取時間數(shù)據(jù)
displaydatetime();????// 顯示當前時間
while(1)
{
if( 0==PB05_GETVALUE() )? // 循環(huán)檢測是否掉電
{
PA05_SETHIGH();???// 關(guān) OLED 電源
SCB->SCR = 0X04;??//DeepSleep
__WFI();???????//MCU 進入DeepSleep模式以節(jié)省功耗
OLED_Init();?????// 外部電源接入后喚醒,重新初始化 OLED
}
else
{
ShowTime();??????// 獲取時間數(shù)據(jù)
displaydatetime();???// 顯示當前時間
}
}
}
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStruct= {0};
__RCC_GPIOB_CLK_ENABLE();???????? // 開 GPIOB 時鐘
GPIO_InitStruct.IT = GPIO_IT_RISING;????// 使能上升沿中斷
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;??// 輸入模式
GPIO_InitStruct.Pins = GPIO_PIN_5 ;????//PB05,連接 WAKEIO 網(wǎng)絡(luò)
GPIO_Init(CW_GPIOB, &GPIO_InitStruct);??// 初始化 IO
GPIOB_INTFLAG_CLR(bv5);????????// 清除 PB05 中斷標志
NVIC_EnableIRQ(GPIOB_IRQn);??????// 使能 PB05 中斷
}
4 實際測試
使用 CW32L031C8T6 設(shè)計了用于測試后備電池功能的評估板,實物如下圖所示:
使用 3V 的 CR2032 鈕扣電池,實測電池電壓為 3.14V;VDDIN 使用可調(diào)節(jié)數(shù)字電源,設(shè)置為 3.54V,保證VDDIN >= Vb1 + 0.4V;D1 實測合路后的電源電壓為 3.21V。
4.1 測試數(shù)據(jù)
實際測試時,斷開 J4 跳線接入萬用表,設(shè)置萬用表為電流測試檔位。
1. 關(guān)閉 VDDIN 電源輸入,MCU 檢測到無外電輸入,關(guān)閉 OLED 顯示,進入 DeepSleep 模式,實測此時B1 電流為 +0.95μA。
2. 打開 VDDIN電源輸入,MCU被高電平中斷從 DeepSleep狀態(tài)喚醒到正常狀態(tài),OLED正常顯示當前時間,實測此時 B1 電流為 -75nA(負電流是因為 D1 處于反向偏置狀態(tài),有小的反向漏電流)。
測試結(jié)果符合電路設(shè)計預(yù)期,以 CR2032 電池容量為 200mAH 計算,則電池可用時間為 210526 小時,合計24 年(不考慮電池和產(chǎn)品壽命),可實現(xiàn)超長待機時間,完全滿足各種低功耗產(chǎn)品對 RTC 后備電池容量需求。
5 附件
5.1 RTC_TestBoard 單板原理圖
關(guān)于武漢芯源半導體
武漢芯源半導體有限公司,于2018年8月28日成立,是上市公司武漢力源信息技術(shù)股份有限公司全資子公司,專注芯片的設(shè)計、研發(fā)、銷售及技術(shù)服務(wù)。武漢芯源半導體CW品牌源于Creative Wisdom首字母CW,傳遞“創(chuàng)芯源于智慧”的品牌理念。
武漢芯源半導體為電子行業(yè)用戶提供微處理器MCU、小容量存儲芯片EEPROM、功率器件SJ-MOSFET等系列產(chǎn)品,具有產(chǎn)品質(zhì)量保證、技術(shù)性能可靠、供貨能力穩(wěn)定三大競爭優(yōu)勢。
在MCU領(lǐng)域目前已推出通用高性能CW32F003/030系列、安全低功耗CW32L083/031/052系列、無線射頻CW32W031系列產(chǎn)品,廣泛應(yīng)用于消費電子、智能家居、物聯(lián)網(wǎng)、工業(yè)控制、醫(yī)療電子以及汽車電子行業(yè),未來將能夠滿足更多的市場需求。
武漢芯源半導體持續(xù)進行技術(shù)革新,確保穩(wěn)定可靠的供應(yīng)鏈能力,致力于成為***產(chǎn)業(yè)的領(lǐng)航者!
審核編輯:湯梓紅
-
mcu
+關(guān)注
關(guān)注
146文章
17149瀏覽量
351224 -
引腳
+關(guān)注
關(guān)注
16文章
1196瀏覽量
50498 -
RTC
+關(guān)注
關(guān)注
2文章
538瀏覽量
66555 -
電池備份
+關(guān)注
關(guān)注
0文章
4瀏覽量
5651 -
CW32
+關(guān)注
關(guān)注
1文章
203瀏覽量
647
發(fā)布評論請先 登錄
相關(guān)推薦
評論