- DataFlash
-
DataFlash is a low pin-count serial interface for flash memory. It is an Atmel proprietary interface, compatible with the SPI standard.
Information is written and read from a DataFlash chip using any microcontroller, such as the Atmel AVR, the Microchip PIC or the ARM. The Boot ROM of numerous Atmel ARM microcontrollers support downloading code from DataFlash chips after reset.
The AT26 series DataFlash chips are software-incompatible with the original AT45 series chips. They use a simpler command set, supported by other vendors of serial flash but omitting SRAM buffers and other features that make AT45 chips simpler to support. On this page, only the original AT45 series chips will be called DataFlash; in this case, brand-oriented marketing creates needless technical confusion.
Contents
Examples of DataFlash
The AT45DB161D chip is an example of a 2 MB (16 Mbit) dataflash chip available from Atmel. This chip comes in a 8x5 mm SOIC 8-pin package. This chip is used in a huge number of consumer electronic products. Any microcontroller can use this chip to store data.
The AT45DCB008D card is an 8 MB (64 Mbit) flash memory card, which could be mistaken for an MMC or SD card. This DataFlash card packages an AT45DB642D flash chip, which is also available in 8x6 mm CASON 8-pin packages.
Comparison between DataFlash, EEPROM and MMC/SD
Both DataFlash and EEPROM chips can be accessed from a microcontroller, using a 4-wire SPI bus. Both are available in small 8 pin packages. The protocol interfaces are very similar; in both cases, bytes are written or read, via SPI, one or more bytes at a time.
DataFlash usually had higher capacities than EEPROM in the early days, and it still provides faster access times. DataFlash capacities in small packages range from 128 kB to 8 MB, while SPI EEPROM capacities in similar packages range from 1 kB to 8 MB . Flash chips are tuned for page access, rather than the byte access used with EEPROM. However, AT45 series chips have commands that let their drivers act more like EEPROM drivers. Leveraging the SRAM buffers exposed by AT45 chips to do more than support EEPROM-like access requires specialized software.
DataFlash cards are more expensive than the consumer oriented MMC or SD cards, and have lower capacities, but have an extremely simple programming interface compared to MMC/SD. All these cards can be used in SPI mode.
In summary, DataFlash enables use of more data storage and faster access times than EEPROM. DataFlash chips can leverage the AT45 SRAM buffers. EEPROMs, AT26 series chips, or MMC/SD cards permit use of second sources for parts.
For cards used in field upgrades, DataFlash cards permit simple software support and compatibility with on-board flash chips; MMC/SD costs less.
The programming code required to interface EEPROM to the DataFlash chip is simpler.
Example C source code to interface to DataFlash
A free example of PIC microcontroller source code in C, that can be used to interface to any DataFlash chip, is available from www.microchipC.com.
Another free example which uses a more generic approach, suitable for most microcontrollers, can be found as a driver for BeRTOS, and is available from [1]
External links
Categories:
Wikimedia Foundation. 2010.