大家在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字節,可以選擇將數據寫入備份數據寄存器,其更新速度更快。另外如果評估下來掉電時間過快來不及更新數據的話,可以從硬件上減緩掉電速度,以預留更長的時間窗口。
如果您有其他更好的方案,也喚醒評論區留言討論!
-
單片機
+關注
關注
6063文章
44915瀏覽量
646830 -
mcu
+關注
關注
146文章
17831瀏覽量
360306 -
GD32
+關注
關注
7文章
418瀏覽量
25150
發布評論請先 登錄
【GD32 MCU入門教程】GD32 MCU GPIO 結構與使用注意事項

【GD32 MCU 入門教程】GD32 MCU 常見外設介紹(14)RTC 模塊介紹

GD32 MCU 入門教程】GD32 MCU 常見外設介紹(12)FMC 模塊介紹

【GD32 MCU 入門教程】二、GD32 MCU 燒錄說明(3)脫機燒錄

【GD32 MCU 入門教程】二、GD32 MCU 燒錄說明 (2)SWD/JTAG在線下載

【GD32 MCU 入門教程】二、GD32 MCU 燒錄說明(1)ISP 燒錄

【GD32 MCU 入門教程】一、GD32 MCU 開發環境搭建(3)使用 Embedded Builder 開發 GD32

【GD32 MCU 入門教程】一、GD32 MCU 開發環境搭建(2)使用 IAR 開發 GD32

【GD32 MCU 入門教程】一、GD32 MCU 開發環境搭建(1)使用Keil開發GD32

評論