1. 簡介
通常有三種方法實現(xiàn) EEPROM功能。
其一是使用真正的 EEPROM,例如具有 256 B EEPROM 的 KEA64。優(yōu)點是不占用閃存,但缺點是價格昂貴。
第二種方法是使用軟件實現(xiàn) EEPROM 功能,如 KEA8 和 KEA128。優(yōu)點是便宜,但缺點是它占用了閃存,包括用于 EEPROM 實現(xiàn)的額外代碼和模擬EEPROM占用的閃存。
第三種方法是使用固件來實現(xiàn) EEPROM 功能,例如 S32K1xx。優(yōu)點在于 EEPROM 功能的實現(xiàn)對客戶來說是絕對透明的,并且不需要閃存來存儲用于 EEPROM 實現(xiàn)的額外代碼。
2.S32K1xx EEE 工作
為了提供增強的 EEPROM 功能,S32K1xx EEE 使用了一塊 RAM(FlexRAM),一塊閃存(FlexNVM)和EEE 狀態(tài)機器。啟用 EEE 功能后,F(xiàn)lexRAM 將成為您的 EEE 存儲空間。FlexRAM 地址空間是您訪問所有 EEE 數(shù)據(jù)的地方。當訪問 EEE 時,EEE 狀態(tài)機會跟蹤數(shù)據(jù)并將其備份為數(shù)據(jù)記錄,存儲在用作 E-flash 的 FlexNVM 的部分空間。
使用大容量 E-flash 來備份少量EEE 數(shù)據(jù),使 S32K1xx EEE 的實現(xiàn)提供極高的耐久性。EEE 狀態(tài)機使用72位記錄將數(shù)據(jù)從 EEE 備份到閃存(E-Flash)中。記錄的32位用于數(shù)據(jù),另外40位是有關數(shù)據(jù)的地址、狀態(tài)和奇偶校驗信息。按需寫入和刪除數(shù)據(jù)記錄。這意味著如果 EEPROM中的某個位置從未被訪問過,則不會有該位置的數(shù)據(jù)記錄。這有助于減少需要備份的數(shù)據(jù)量,并增加內(nèi)存耐久性。
3. S32K1xx EEE 如何使用內(nèi)存
3.1 EEE 功能啟用 及 EEE 內(nèi)存配置細節(jié)
S32K1xx 擁有兩塊獨立的閃存,P-Flash 塊和FlexNVM 塊。P-Flash 塊用作程序閃存塊,但也可用于存儲指令和數(shù)據(jù)。FlexNVM塊是一個可配置的閃存塊,可用作額外的閃存空間(D-flash)、支持增強型 EEPROM 功能的存儲器(E-flash)或作為兩者的組合。
注:FlexNVM 中不用作 EEE 備份存儲器(E-flash)的部分稱為D-flash。該閃存通常用于數(shù)據(jù)存儲空間;但是,與 P-flash 一樣,D-flash 實際上可以用于指令或數(shù)據(jù)的存儲。
如下圖所示:整個 FlexNVM 用作 E-flash 的示例。FlexRAM 作為 EEE 內(nèi)存空間(多達 4kB)。EEE 數(shù)據(jù)的任何讀寫操作都使用這 4kB 存儲空間,因為 E-flash 無法直接訪問。EEE 狀態(tài)機自動管理 EEE 內(nèi)存的所有寫入,并按需生成閃存寫入及擦除操作到 E-flash。
EEE數(shù)據(jù)的大小和用來備份EEE數(shù)據(jù)的E-flash 內(nèi)存大小都是可編程的。這讓你可以在 EEE 內(nèi)存大小和耐久性之間做出權(quán)衡。有兩個可變參數(shù)來定義你實際的存儲空間使用情況,這些參數(shù)有:
1. EEE 大小 — 這是EEE 數(shù)據(jù)需要的總大小。對于 S32K14x 設備,EEE 的總大小在 0 或 4kB,S32K11x 設備則為 0 或2kB。
2. FlexNVM 分區(qū) — 該參數(shù)定義了 FlexNVM 作為普通閃存(D-flash)的數(shù)量和用作 EEE 備份的數(shù)量(E-flash)。如果被使用,那么至少 32kB(針對 S32K14x 設備)或 24kB(針對 S32K11x 設備)的 FlexNVM 必須被分配為 E-flash。為了更好的獲得EEE的耐久性,整個 FlexNVM 可以被用作 E-flash。
3.2 EEE內(nèi)存分區(qū)
程序分區(qū)命令使 FlexNVM 塊準備以用作數(shù)據(jù)閃存、模擬 EEPROM 或兩者的組合,并初始化 FlexRAM。有關詳細信息,請參閱
S32K1xx的參考手冊。下表顯示了分區(qū)命令所需的參數(shù)。
Flash 命令通過FTFC 模塊中 FCCOB 寄存器進行配置。每個命令包自己的參數(shù),程序分區(qū)命令需要六個參數(shù):
?FCCOB0 定義了所需的命令。0x80 指 PGMPART 命令(程序分區(qū)命令)。
?FCCOB1 和 FCCOB2 用于 CSEc 配置。這兩個參數(shù)在 AN5401 - Getting Started with CSEc Security module。有深入解釋。
僅對于 EEPROM 功能,這兩個值可以設置為 0x00。
?FCCOB3(僅使用 bit 0)配置在復位期間 FlexRAM 是否加載 EEPROM 數(shù)據(jù)。如果該位(0x00),則 FlexRAM 在復位期間載入 EEEPROM 數(shù)據(jù)。另一方面,如果該位被設置為(0x01),則 FlexRAM 在復位期間不載入 EEEPROM 數(shù)據(jù),這意味著在復位后它將作為傳統(tǒng) RAM 運行,直到發(fā)出 FlexRAM 配置命令更改其模式,如 S32K1xx FlexRAM configuration 中描述的那樣。
? FCCOB4 表示 EEPROM 數(shù)據(jù)大小。根據(jù) FlexRAM 大小該選項有兩個不同的值。
-
閃存
+關注
關注
16文章
1845瀏覽量
115989 -
存儲器
+關注
關注
38文章
7653瀏覽量
167414 -
EEPROM
+關注
關注
9文章
1086瀏覽量
83769 -
S32k144
+關注
關注
1文章
9瀏覽量
2061
原文標題:S32K144 FlexNVM 用作為模擬EEPROM
文章出處:【微信號:嵌入式愛好者之家,微信公眾號:嵌入式愛好者之家】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
S32K1XX系列MCU復位問題的解決方法

S32K1xx系列MCU的EEE(Emulated EEPROM)使用詳解 精選資料分享
S32K1xx系列MCU啟動過程是怎樣的
安裝S32SDK S32K1XX RTM 4.0.2,IDE無法識別安裝是怎么回事?
S32K3xx EMIOS模塊與S32K1xx FTM模塊相比有什么優(yōu)勢?
S32K1xx開發(fā)包和S32K1實時驅(qū)動的區(qū)別是什么?
S32K1xx中的RCM_SRS和RCM_SSRS有什么區(qū)別?
NXP半導體產(chǎn)品S32K1XX數(shù)據(jù)手冊下載
vb關閉當前應用重新加載_S32K1xx系列MCU應用指南之芯片鎖死(lockup)復位原因分析與恢復方法詳解...

S32K1xx系列MCU的EEE(Emulated EEPROM)使用詳解

S32K1xx數(shù)據(jù)表
基于S32K1xx 系列的汽車通用評估板方案

評論