大家在GD32 MCU應(yīng)用時(shí),是否會(huì)碰到以下應(yīng)用需求:希望在MCU掉電時(shí)保存一定的數(shù)據(jù)或標(biāo)志,用以記錄一些關(guān)鍵的數(shù)據(jù)。
以GD32E103為例,數(shù)據(jù)的存儲(chǔ)介質(zhì)可以選擇內(nèi)部Flash或者備份數(shù)據(jù)寄存器。
如下圖所示,片內(nèi)Flash具有10年的保存壽命,10萬(wàn)次擦寫,頁(yè)擦除時(shí)間在3.5ms,字寫入時(shí)間在40us左右,F(xiàn)lash特性決定Flash需要先擦后寫,擦寫要求的電壓范圍為供電范圍:1.8V-3.6V.
GD32 MCU基本都支持備份數(shù)據(jù)寄存器,GD32E103系列支持84字節(jié)數(shù)據(jù)寄存器,可以在VDD掉電,VBAT有電的情況下進(jìn)行數(shù)據(jù)保存,備份數(shù)據(jù)寄存器不需要擦除可以直接寫入,數(shù)據(jù)更新速度較快。
下面為大家介紹數(shù)據(jù)掉電保存的實(shí)現(xiàn),電源掉電的檢測(cè)可以選擇使用LVD低壓檢測(cè)功能,如下圖所示,LVD 的功能是檢測(cè) VDD / VDDA 供電電壓是否低于低電壓檢測(cè)閾值,該閾值由電源控制寄存器(PMU_CTL) 中的 LVDT[2:0]位進(jìn)行配置。 LVD 通過(guò) LVDEN 置位使能,位于電源控制和狀態(tài)寄存器(PMU_CS) 中的 LVDF 位表示低電壓事件是否出現(xiàn),該事件連接至 EXTI 的第 16 線,用戶可以通過(guò)配置 EXTI 的第 16 線產(chǎn)生相應(yīng)的中斷。
使用LVD檢測(cè)到掉電事件后,從LVD閾值到PDR電壓之間會(huì)有一個(gè)時(shí)間窗口,可用以實(shí)現(xiàn)掉電數(shù)據(jù)保存,這個(gè)時(shí)間由掉電速度決定,因而對(duì)數(shù)據(jù)保存的時(shí)間要求很高。若系統(tǒng)供電只有VDD供電,VBAT外部未接電池或者需要保存的數(shù)據(jù)比較多的情況下,可以選擇使用內(nèi)部Flash作為存儲(chǔ)介質(zhì),為了節(jié)省數(shù)據(jù)更新的時(shí)間,可以采用雙備份的方式,在系統(tǒng)運(yùn)行的過(guò)程中,先擦除一個(gè)備份,檢測(cè)到掉電事件后,節(jié)省擦除時(shí)間,直接向備份區(qū)域?qū)懭敫聰?shù)據(jù);若系統(tǒng)供電VBAT外接了電池,且更新的數(shù)據(jù)小于84字節(jié),可以選擇將數(shù)據(jù)寫入備份數(shù)據(jù)寄存器,其更新速度更快。另外如果評(píng)估下來(lái)掉電時(shí)間過(guò)快來(lái)不及更新數(shù)據(jù)的話,可以從硬件上減緩掉電速度,以預(yù)留更長(zhǎng)的時(shí)間窗口。
如果您有其他更好的方案,也喚醒評(píng)論區(qū)留言討論!
-
單片機(jī)
+關(guān)注
關(guān)注
6023文章
44376瀏覽量
628428 -
mcu
+關(guān)注
關(guān)注
146文章
16667瀏覽量
347806 -
GD32
+關(guān)注
關(guān)注
7文章
400瀏覽量
23974
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論