FlexRAM as EEPROM

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 
2,536件の閲覧回数
jorged_avila
Contributor II

I intend to use the Kinetis FlexNVM/FlexRAM as EEPROM, but reading the documentation raised a question:
The Freescale text says, textually: "Writes to the EEE space launch a EEE operation to store the data within the E-flash memory".

Ok, fine. I write to the FlexRAM, the hardware automatically launches the store algorithms, chooses the appropriate area in Flash, and stores it. Great! But...

If I need to change a larger area - say, 4 32-bit word in sequence - Do I need to write each one, wait for the hardware to finish the store process and them write the next one? It doesn't seem practical, especially because this would mean writing 3 un-needed intermediate records to flash.

Some external flash memories work like that, but they use a "time out" - that is, you write several data, and after you stop for some time (usually some micro seconds) they launch the recording process.

Did I miss anything in the documentation?

Thanks for any light shed on this!

ラベル(1)
1 解決策
1,450件の閲覧回数
Jorge_Gonzalez
NXP Employee
NXP Employee

Hello Jorge d'Avila:

Actually your understanding is correct. You need to wait for the EEERDY bit to set after each longword (32-bit) write operation. For reference on the timings give a check to your device datasheet.


Regards!,
Jorge Gonzalez

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

元の投稿で解決策を見る

0 件の賞賛
返信
4 返答(返信)
1,450件の閲覧回数
mevon
Contributor II

Hello,

Maybe I'm not posting in the right subject but I would like to have more help on the subject of FlexRAM as EEPROM. I am using a K20DX256 and Kinetis Design Studio (KDS) and I would like to use the FlexRAM + FlexNVM + EEEController to store some data with endurance as a normal EEPROM would be.

From AN4282 : Using the Kinetis Family Enhanced EEPROM Functionality :

“How FlexMemory EEE works

To provide enhanced EEPROM functionality, the FlexMemory uses a RAM block (FlexRAM), a flash

block (FlexNVM), and EEE state machine. When the EEE functionality is enabled, the FlexRAM becomes

your EEE memory. The FlexRAM address space is where you access all of your EEE data. When the EEE

is accessed, the EEE state machine keeps track of the data and backs it up as data records, stored in some

portion of the FlexNVM used as an E-flash. Using a large block of E-flash to back up the data for a smaller

amount of EEE data allows the FlexMemory EEE implementation to offer extremely high endurance.

My guess is I need to access the FlexRAM to access the FlexNVM and from the Reference Manual,  FlexRAM address range = 0x1400_0000 – 0x1400_07FF.

I think I have all the bits configured right in the CPU component of Processor Expert regarding the Flex Memory Settings and the configuration of the ROM/RAM areas in the Build Options tab too.

My trouble resides in the way of writting and reading the data in the FlexRAM, anyone has a clue on how to proceed? And if there are PExp componants already made for this purpose?

Thanks in advance,

MH

1,451件の閲覧回数
Jorge_Gonzalez
NXP Employee
NXP Employee

Hello Jorge d'Avila:

Actually your understanding is correct. You need to wait for the EEERDY bit to set after each longword (32-bit) write operation. For reference on the timings give a check to your device datasheet.


Regards!,
Jorge Gonzalez

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 件の賞賛
返信
1,450件の閲覧回数
jorged_avila
Contributor II

Thanks, Jorge!

Then it is not a good practice to use this feature for larger amounts of configuration data, is it? You would generate a new "backup copy" of your record for each 32-bit word written!  Better to use normal flash operation!

1,450件の閲覧回数
Jorge_Gonzalez
NXP Employee
NXP Employee

Yes I think it would be better to use standard flash for large amounts of data, as long as you do not change that data very often, due to the lifetime and programming cycles of the memory.


Regards!,
Jorge Gonzalez

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------