Hi,NXP
we are using S32K146 on our project, and we already used the EEP for data storage. but the 4KB EEPROM is not enough, so we plan to seperate the 64K DFlash, 32K for EEPROM backup, the other 32K for FEE.
Does NXP provide a official FEE driver for S32K14x devices, or is there any third-party driver we can port to S32K platform?
we have already tried to modify the MPC5XXX_EEE_DRIVER package which find from MPC5746C branch, but it seems not easy to make it work on S32K146 platform.
Do you have any other suggestions?Thanks and best regards.
Solved! Go to Solution.
Hi, I don’t understand too much what would you achieved by splitting of FlexNVM on two parts, in both part performing eeprom emulation different way.
Additionally having 32kB for E-flash would require 2kB of EEERAM (this however cannot be setup as the device only allows to use 4kB) to keep recommended EEPROM backup to FlexRAM ratio (at least 16) to have specified data endurance.
I am afraid we don’t have any dedicated driver for SW emulation, because this device use HW emulation.
MPC5xxx driver you cannot use as a base as it is completely different flash platform. Maybe following driver could be useful as a base if you were developed your own driver:
AN4903 EEPROM Emulation Driver for the Kinetis E Series Microcontrollers
https://www.nxp.com/docs/en/application-note/AN4903.pdf
You can find the associated SW when searching “an4903sw” at nxp.com
Associated File:: AN4903SW
But I would rather recommend to optimize your data to <4kB if possible.
Hi, I don’t understand too much what would you achieved by splitting of FlexNVM on two parts, in both part performing eeprom emulation different way.
Additionally having 32kB for E-flash would require 2kB of EEERAM (this however cannot be setup as the device only allows to use 4kB) to keep recommended EEPROM backup to FlexRAM ratio (at least 16) to have specified data endurance.
I am afraid we don’t have any dedicated driver for SW emulation, because this device use HW emulation.
MPC5xxx driver you cannot use as a base as it is completely different flash platform. Maybe following driver could be useful as a base if you were developed your own driver:
AN4903 EEPROM Emulation Driver for the Kinetis E Series Microcontrollers
https://www.nxp.com/docs/en/application-note/AN4903.pdf
You can find the associated SW when searching “an4903sw” at nxp.com
Associated File:: AN4903SW
But I would rather recommend to optimize your data to <4kB if possible.
Hi david,
thanks for your reply.
we are going to split 64KB D-Flash to two 32KB part, one 32KB for HW emulation EEPROM(4KB, set the NVM Backup size 8 times the portion of RAM), and the other 32KB for SW emulation EEPROM (implement sw driver).
I noticed that you mentioned about the least ratio of EEPROM backup size to FlexRAM portion, which is 16 times.
so I read the S32K146 RM again, and it says for "specified w/e cycle endurance", the ratio must be at least 16, but in the Table 37-42 "Valid FlexNVM partition codes", it support "0011" and "1011" for a ratio of 1:8 (RAM:NVM).
Is this least ratio (16) a must requirement ?
if it is able to set the ratio of HW emulation EEPROM of 1:8 (RAM:NVM), how much it will affect the "specified w/e cycle endurance" ?
Yes, it is what I talked about.
However you may download FlexMemory endurance calculator:
https://www.nxp.com/downloads/en/calculators/FME-Calculator.zip
Another point which speaks against the use of SW emulation is that native endurance when HW emulated module is higher (about 12.5x) that programming over FTFC commands (when it is used as data flash). It is given by EEE algoritm use advanced HW techniques that are not available if you use SW emulation.
i get it now, thanks.