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