CH579M低功耗(shutdown)模式無法使用的問題

????一個調(diào)試了一周的問題,雖然現(xiàn)在臨時解決了,但是沒有找到原因,心里不踏實(shí),在這里向大家求助下,看有沒有遇到相同的問題

? ? 使用芯片是CH579M,外圍沒接電路,都拆掉了,只保留了最小系統(tǒng) 3.7V鋰電池供電,電容,32M晶振,32K晶振,按鍵(下拉,觸發(fā)高電平),DCDC電感,XC6504 LDO,20K-10K電池電壓檢測電阻,這些幾個原件。目的是實(shí)現(xiàn)最低功耗關(guān)機(jī),同時需要保存2K RAM的內(nèi)容與RTC計時,按鍵喚醒。

????發(fā)現(xiàn)一個問題是無法保存2K RAM,RTC,這些喚醒后就丟失了。配置了POWER PLAN 寄存器值為 0x9002,實(shí)際度回來時0x9003,RB_PWR_PLAN_EN|PB_PWR_RAM2K 配置這兩個位,然后設(shè)置SCB的SCB_SCR_SLEEPDEEP_Msk位 之后調(diào)用__WFI()函數(shù)進(jìn)入掉電模式

????這時測試掉電模式電流為26.5uA(可能有一些別的東西耗電),再開機(jī)后RTC復(fù)位,2Kram數(shù)據(jù)隨機(jī)改變,無法記錄,但是另一個同事用同樣的程序就都正常,都能保存。

????后來發(fā)現(xiàn)是在LDO電壓=3.3v的板子上所有東西都無法保存,SRAM RTC。但是在LDO=3.0V的板子上,所有功能就全都正常,請教版主 或者各位朋友,有沒有遇到過這樣的情況,或者大概是設(shè)么原因呢?

Shutdown睡眠喚醒之后必定會復(fù)位,RAM會丟失。

針對你的問題,需要在Shutdown模式下,進(jìn)行RTC的數(shù)據(jù)保持,可以通過復(fù)位狀態(tài)寄存器進(jìn)行判斷是否重新初始化RTC,因?yàn)槲覀兊腞TC是一個獨(dú)立的定時器。image.png

status?=?R8_RESET_STATUS;
if(((status?&?0x07)?==?0x01?)||?((status?&?0x07)?==?0x03?)){
  RTC_InitTime(2022,3,31,23,59,40);
  printf("Init?RTC?OK\r\n");
}

2K的RAM的數(shù)據(jù)如果需要在復(fù)位的情況下保持,可以定義一個變量放在RAM中,并指定一個絕對地址,芯片執(zhí)行復(fù)位時,RAM的值不會被復(fù)位。

1.png


是這樣的,我現(xiàn)在遇到的問題是 ,芯片再3.3V供電下,進(jìn)入掉電模式后再喚醒 ,RTC時鐘無法保存,會丟失時間,什么都不動,將電壓變成3.0V? ? ,就一切正常了


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频