chipKIT® Development Platform

Inspired by Arduino™

Max32 Eeprom memory limits?

Created Thu, 23 Jun 2011 21:28:02 +0000 by TECH GEEK


TECH GEEK

Thu, 23 Jun 2011 21:28:02 +0000

Hi I'm trying to use the eeprom library on a max32 but don't know the memory limits...

I know the mega 1280 has 4KB but what does the max32 have? also how is it set up? ie. In something like a folder?


Jacob Christ

Thu, 23 Jun 2011 22:55:08 +0000

Does the PIC32 have a built in eeprom?

It seems as if the memory limits would be a function of an attached shield.

Jacob


Mark

Thu, 23 Jun 2011 23:46:52 +0000

The PIC chips do not have eeprom, we reserved the last 4K of FLASH memory to be used as EEPROM. I did not write that library and I am not sure how it was implemented. I do know there was discussion about needing 16K to implement it properly.

The library is in the latest release but I have not tested it myself.

It should work, just be aware that it is bit different

Mark


robotguy

Fri, 24 Jun 2011 00:19:34 +0000

Does the PIC32 have a built in eeprom? It seems as if the memory limits would be a function of an attached shield.

Arduino shields do not control anything on the host Arduino board.

8-Dale


GeneApperson

Fri, 24 Jun 2011 17:54:03 +0000

The PIC32 parts don't have internal EEPROM. In both the Uno32 and the Max32, the last 4K of the program flash is reserved for use to simulate EEPROM. However, due to wearout limits of the flash (it's only rated for 1000 erase cycles) the flash can't be direct mapped to eeprom. The library treats the 4K as content addressable memory and stores both the eeprom address and the value in a 32 bit word. The result is 1Kbyte of simulated EEPROM and a page erase doesn't have to occur until 1K writes have occured.


TECH GEEK

Fri, 24 Jun 2011 17:58:39 +0000

So i can only use the simulated eeprom 1k times?


TECH GEEK

Fri, 24 Jun 2011 18:45:04 +0000

Does that mean I can only upload 1000 programs?


GeneApperson

Fri, 24 Jun 2011 19:49:15 +0000

So i can only use the simulated eeprom 1k times?

You can read from the EEPROM any number of times. The number of times you can write depends on the usage pattern of the writes, but the limit is ~1,000,000 byte writes. If you only use 1 EEPROM location, you can write that one byte about a million times. If you use 1K EEPROM locations and rewrite all of them each time, then you're limited to being able to rewrite them all ~1000 times.

Also keep in mind that this is a minimum, not a maximum. According to the data sheet Microchip guarantees that you can erase and rewrite a page a minimum of 1000 times. The actual number will vary from chip to chip and will almost certainly be larger (possibly much larger) than 1000.


TECH GEEK

Sat, 25 Jun 2011 03:38:26 +0000

ok, but what is the aprox. amount of time I can erase then load a 500k program?


GeneApperson

Mon, 27 Jun 2011 16:00:12 +0000

ok, but what is the aprox. amount of time I can erase then load a 500k program?

I don't really know. The PIC32MX5XX/6XX/7XX Family Data Sheet lists the program flash cell endurance as a minimum of 1000 erase/write cycles. They don't give a typical figure. Generally, these figures are conservative and the actually endurance is probably quite a bit greater, and will vary from chip to chip.

Gene Apperson Digilent


funlw65

Thu, 01 Sep 2011 13:50:00 +0000

So, at the end, PIC32 is not a good choice for a development/educational board... :( Specially when you don't have a socket for the microcontroller. Now I see the Chipkit board prices as fair ones.

Vasi


funlw65

Thu, 01 Sep 2011 16:27:56 +0000

So, at the end, PIC32 is not a good choice for a development/educational board... :( Specially when you don't have a socket for the microcontroller. Now I see the Chipkit board prices as fair ones. Vasi

In this light, a nice companion board for Max32 would be one based on PIC24FJ256DA210 which support 10,000 erase/write cycles. Having a donkey role for our development needs. Datasheet <-- this is an url. (Would be better if the admin modifies the CSS style to have a highlight or underline for links)

Best regards, Vasi


Darth Maker

Fri, 02 Sep 2011 03:46:50 +0000

On the other hand, unless the board is being passed between people and used a lot (such as a classroom board), 1000 erases is going to last a long time. The flash memory in the 328P (Arduino) is only rated for 10,000.

If you need EEPROM you can always use an external chip. You can get much higher capacity that way too.