Subject: Re: Hardware Project From: dempson@actrix.gen.nz (David Empson) Date: Sat, Nov 14, 1998 7Ç14 Message-id: <1diilo9.1kf6uj1e328pyN@dempson.actrix.gen.nz> David Wilson wrote: > dempson@actrix.gen.nz (David Empson) writes: > >Yet another variant is Flash ROM. I've never been entirely clear on the > >difference between Flash ROM and EEPROM, as they seem to overlap in > >features. Flash is generally characterised by being able to be erased > >and reprogrammed in sectors, while EEPROM is more often bulk erased and > >reprogrammed one byte at a time. > > I had the same query re the difference between Flash and EEPROM. > > Here is one explanation from http://webopedia.internet.com/TERM/E/EEPROM.html: > > EEPROM is similar to flash memory > (sometimes called flash EEPROM). > The principal difference is that > EEPROM requires data to be written > or erased one byte at a time whereas > flash memory allows data to be > written or erased in blocks. This > makes flash memory faster. Unfortunately, manufacturers keep coming out with products that break this description. At work we have a Xicor EEPROM which is accessed serially, and behaves like Flash: reprogram in 32-byte sectors. Just to confuse things further, they have a different product that is described as Flash, but is functionally identical! We also have a micro with a so-called internal Flash ROM which only supports 1000 write cycles (so much for Flash generally supporting more writes than EEPROM does!). > The Flash chips I have been using lately in another project are 4Mb (512KByte) > and can be erased in 64KB blocks and are rewritten one byte at a time needing > only 5v supply (the 1Mb parts we had before this needed 12v to program). We are using Atmel AT29Cxxx Flash ROMs at work (512, 010, 020, 040A). They can be erased and reprogrammed in small sectors. I don't have the exact sizes in front of me, but they are either 64, 128 or 256 bytes per sector, depending on the chip capacity (the 040 and 040A differ only in their sector size: one is 512 bytes, the other 256 bytes, if I remember right). When writing data, you fill a sector and then wait long enough to allow the actual write to commence (the ROM has an internal sector write buffer, with a 150 microsecond timeout on new data being written). It takes up to 10 ms to finish writing the sector. They are 5V programmable. I don't recall offhand whether they support 10K or 100K write cycles (probably 100K). Even if you were using a small-sector programmable Flash ROM, I'd recommend implementing a write-through cache in RAM on the card, particularly for use with directory blocks. Hm, may be too difficult unless you want to put dual-port RAM and a controlling micro on there. -- David Empson dempson@actrix.gen.nz Snail mail: P.O. Box 27-103, Wellington, New Zealand