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