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