LPC55S69 : what is NOP for flash memory ?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LPC55S69 : what is NOP for flash memory ?

2,820 Views
EugeneHiihtaja
Senior Contributor I

Hi !

Unfortunately flash memory can be written by 512 bytes chunks only.

But I need to sabe small 16-128 bytes chunks and I can see I can read modify and write the same page several times.

LPC55S69 flash memory has erased state as 0x00 and each bit can be programmed to 1 on time.

So I can program page several time but I can only modify bit 0 to bit 1 and not wise versa what is typical for flash memory technology.

But each type of memory have clear limit of NOP operations what can be done on one page before Erase must be executed ( What's NOPs of NAND  as example ).

What amount of NOP's are specified for that flash memory what is part of LPC55S69 MCU ?

Regards,

Eugene

Labels (1)
0 Kudos
17 Replies

2,604 Views
ZhangJennie
NXP TechSupport
NXP TechSupport

Eugene,

I guess you ask Flash endurance parameter. see below table, it is extracted from LPC55S6X datasheet.

pastedImage_1.png


Have a great day,
Jun Zhang

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

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos

2,604 Views
EugeneHiihtaja
Senior Contributor I

Hi !

Not it is not endurance , this is partial write e.h how may times you can write one 512 pages before erase.

e.g read whole page  ( if need )  fill some area and write back. During this operation you can change only bits from 1 to 0 or may be like in your case 0 to 1 only.

But each type of memory must have this value, It can be 1 as well. Too much overwrite cause retention problems for sure.

OR I can write 512 one time and after that only erase must be done. In other case you might not garantie data retention at all.

But NXP should specify this value. In other case is very difficult to implement any file system on top of LPC's flash memory.

Regards,

Eugene

0 Kudos

2,604 Views
EugeneHiihtaja
Senior Contributor I

Hi !

For example here : NOR Flash FAQs - KBA222273 | Cypress Developer Community 

"

Is it possible to write twice (erase  write  write to the same address) without reissuing the Erase command for the same address?

It is physically possible to change 10, but if you write to the same Write Page twice, the built-in ECC function will be invalid. So, it is not recommended to write twice.

"

So in NXP , I don't know how you calculate ECC ans etc. But this value is essential for implement compact  flash file systems on top of some types of memory.

br, Eugene

0 Kudos

2,605 Views
ZhangJennie
NXP TechSupport
NXP TechSupport

Hi,

LPC55S69 doesn't define NOP value.

But the flash program principle is, after erase, physically program from 0->1, no way to do it vice versa if using Flash program command.


Have a great day,
Jun Zhang

 

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

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos

2,605 Views
EugeneHiihtaja
Senior Contributor I

Hi ZhangJennie‌ !

So I can write page one time or multiple time for keep rule 0->1 and ECC of page will be updated automatically and no data retention degradation ?

Or NXP forbid to write several times ?

Regards,

Eugene

0 Kudos

2,605 Views
ZhangJennie
NXP TechSupport
NXP TechSupport

you can write multiple times, but only first 0->1 can take effect. once flash is 1, you write it with 0, there is nothing change although no error report. please test it with board.

0 Kudos

2,605 Views
EugeneHiihtaja
Senior Contributor I

Hi !

So you think multiple overwrites is not have any effect for ECC and data retention and endurance is not degradate too much ?

Regards,

Eugene

0 Kudos

2,605 Views
ZhangJennie
NXP TechSupport
NXP TechSupport

No effect.

0 Kudos

2,605 Views
EugeneHiihtaja
Senior Contributor I

if it written somewhere or practical testing show no problem ?

0 Kudos

2,605 Views
ZhangJennie
NXP TechSupport
NXP TechSupport

it's from practical testing. no where document it.

0 Kudos

2,605 Views
EugeneHiihtaja
Senior Contributor I

can this question be asked from silicon manufacture part of NXP for be sure if current process of flash memory supports this kind of operation without degradation of endurance and retention capabilities of used flash memory

0 Kudos

2,605 Views
ZhangJennie
NXP TechSupport
NXP TechSupport

For the data that are not documented, mostly two reasons: no test on it, or can't share to public.

If we want to request it, we need more information from you so that I can compose my internal request:

- your project name and scenarios

- the sufficient reason why you need these data

- the chips ordered yearly.

- company name.

the market will evaluate and make decision if we have resource to arrange the test.

0 Kudos

2,604 Views
EugeneHiihtaja
Senior Contributor I

Hi !

 No need any testing. Every memory vendor always specify this value or clearly said how-to write data to the sector.

In other case it is internal flash memory for firmware code only and it shouldn't be used for store any data in any fashions.

Regards,

Eugene

0 Kudos

2,604 Views
ZhangJennie
NXP TechSupport
NXP TechSupport

From the free support channel, I can only support the info that documented for public or based on my personal test.

If you need further that we don't documented, above information is needed.

0 Kudos

2,604 Views
bernhardfink
NXP Employee
NXP Employee

To complement this thread:

It is a valid question, but in the case of the LPC55XX there is another reason to avoid over-programming:

From chapter 5.7.13 of the User's Manual

Due to the presence of ECC, over-programming an already programmed word will likely result in inconsistent parity bits; for this reason, it is not allowed to program a memory word without erasing it first.

Anyway, programming smaller portions of data into the flash is possible, the 512 bytes pages don't play a role for writing. Data word can be written in 128 bit format, so four 32-bit word are the smallest portion which can be written to the flash

From chapter 5.7.8 of the User's Manual:

Data to be written is accumulated inside the controller’s DATAW0-DATAW3 registers. After specifying an address in the STARTA register and 128 bit of data in the DATAW0-3 registers, it’s possible to activate the controller’s Write” command, which will transfer the data to the memory’s page register, at the position indicated by the STARTA register (only the column part of the address is significant).

However, erasing is bound to the 512-byte pages, so even for small parameter sections you need two pages to swap between them, even if the content is just a few bytes.

Regards,

Bernhard.

0 Kudos

2,605 Views
EugeneHiihtaja
Senior Contributor I

Hi bernhardfink‌ !

But NXP doesn't provide any API's for manipulate with smaller chunks what is less than 512 bytes,

In my case I have multiple 128 bytes chunks what I would like to compact in one page sequentially.

Noe I should do read-modify-write operation for 512 byte window,

Or possible to control FLASH controller directly and this part can be added to SDK ?

Regards,

Eugene

0 Kudos

2,605 Views
bernhardfink
NXP Employee
NXP Employee

Hi Eugene,

I need to admit that i didn't look at this on API level.

If a programming cycle can only take place on a page, then you need to switch between two pages and do it in 3 steps:

  1. erase the unused page
  2. read content from used page into RAM buffer and add new chunk
  3. program buffer into unused page

We don't provide more details about the flash controller, so you need to live with the functionality provided by the API.

Regards,

Bernhard.

0 Kudos