Page 1 of 1
typo?
Posted: 02 December 2007, 8:10 AM
by dlh
PutProgMem, in the ZBasic Language Reference Manual, says, "Program Memory has a write cycle limit specified by the manufacturer of 100,000 cycles." Aren't most of the SPI EEPROMs that can be used with the various chips good for a million cycles? Both the AT25256A and ST M95512 datasheets say a million. I haven't checked all the others but think the Catalyst CAT25C256, equivalent to the AT25256A, is the only one rated for 100,000.
What bus speed does PutProgMem use?
Re: typo?
Posted: 02 December 2007, 8:26 AM
by dkinzer
dlh wrote:Both the AT25256A and ST M95512 datasheets say a million.
I hadn't noticed that the datasheet apparently has been updated, perhaps to reflect a new process or a new characterization. The older datasheet (April 2004) specifies 100,000 cycles. Thanks for pointing that out.
dlh wrote:What bus speed does PutProgMem use?
It uses the CPU clock divided by 2 yielding an SPI clock of 7.37MHz on standard ZX devices.
Posted: 02 December 2007, 9:08 AM
by spamiam
On a related topic, the Flash memory of the ZX (used for the virtual machine) is reported by Atmel to be good only for about 1000 flashings.
This is MUCH less of an issue for the ZX since the EEPROM carries the user program, and it woul dbe MANY years before there were 1000 updates to the VM. It may well be an issue to people who program te AVR directly and go through MANY re-writes.
-Tony
Posted: 02 December 2007, 10:26 AM
by stevech
I thought the FLASH (used for the VM was rated at 100,000 cycles in the AVRs. Never seen anything about 1,000 cycles. The term "Program Memory" in general means the FLASH, in these kinds of MCUs.
The use of EEPROM to store tokenized-code is perhaps "program memory" in the context of ZBasic, but not in general - since that pseudo-code, from the MCU's viewpoint, is "data" that happens to be codified for the VM to interpret.
Posted: 02 December 2007, 10:38 AM
by dkinzer
stevech wrote:I thought the FLASH (used for the VM and is "program memory" was rated at 100,000 cycles in the AVRs. Never seen anything about 1,000 cycles.
For the AVRs used for ZX devices, the internal Flash memory is rated at 10,000 write cycles while the internal EEPROM is rated at 100,000 write cycles. The latter is known as Persistent Memory while the former holds the VM and, except on devices with external SPI EEPROM (e.g. ZX-24), is also used for Program Memory. As Dave pointed out, the external SPI EEPROM is rated at 1 million write cycles.
This means that the ZX-1280 and ZX-1281 have a limit of 10,000 write cycles on Program Memory while the remaining devices have a limit of 1 million write cycles on Program Memory. All ZX devices have a limit of 100,000 write cycles on Persistent Memory.
Re: typo?
Posted: 02 December 2007, 11:26 AM
by dlh
dkinzer wrote:I hadn't noticed that the datasheet apparently has been updated, perhaps to reflect a new process or a new characterization. The older datasheet (April 2004) specifies 100,000 cycles.
It's not easy keeping up with all the datasheets. I'm just putting together a PDF to document a project I'm working on so I've been double checking to make sure my numbers add up - at least, for today.
Posted: 02 December 2007, 11:45 AM
by spamiam
stevech wrote:I thought the FLASH (used for the VM was rated at 100,000 cycles in the AVRs. Never seen anything about 1,000 cycles.
That is what I had thought too. I was told about the 1000 limit, but I never checked that number personally.
While I might flash my AVR 1000 times if I were very zealous, it would be rather hard to do it 10,000 times. I would usually have let the smoke out well before then.....
-Tony
Posted: 02 December 2007, 13:23 PM
by stevech
the 10,000 limit might be reached by people like me who make a lot of, er, "design improvements"