diff options
author | Gregory Nutt <gnutt@nuttx.org> | 2014-11-27 09:14:19 -0600 |
---|---|---|
committer | Gregory Nutt <gnutt@nuttx.org> | 2014-11-27 09:14:19 -0600 |
commit | 049c54a7b0d1b21e2b0b35e88d18172fef11173c (patch) | |
tree | d24d81a07fb5e5a5ae7b302895f1ec698964ea52 /nuttx/drivers | |
parent | 6644cc6ae84106f5a5a2c4e226aa599858fd485f (diff) | |
download | px4-nuttx-049c54a7b0d1b21e2b0b35e88d18172fef11173c.tar.gz px4-nuttx-049c54a7b0d1b21e2b0b35e88d18172fef11173c.tar.bz2 px4-nuttx-049c54a7b0d1b21e2b0b35e88d18172fef11173c.zip |
EEPROM: Add a README file
Diffstat (limited to 'nuttx/drivers')
-rwxr-xr-x | nuttx/drivers/eeprom/README.txt | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/nuttx/drivers/eeprom/README.txt b/nuttx/drivers/eeprom/README.txt new file mode 100755 index 000000000..60938ccf4 --- /dev/null +++ b/nuttx/drivers/eeprom/README.txt @@ -0,0 +1,95 @@ +README +====== + + This directory holds simple, EEPROM drivers. EEPROMs are a form of Memory + Technology Device (MTD). EEPROMs are non-volatile memory like FLASH, but + differ in underlying memory technology and differ in usage in many respects: + They may not be organized into blocks (at least from the standpoint of the + user) and it is not necessary to erase the EEPROM memory before re-writing + it. In addition, EEPROMs tend to be much smaller than FLASH parts, usually + only a few kilobytes vs megabytes for FLASH. EEPROM tends to be used to + retain a small amount of device configuration information; FLASH tends + to be used for program or massive data storage. For these reasons, it may + not be convenient to use the more complex MTD interface but instead use + the simple character interface provided by the EEPROM drivers. + +EEPROM Device Support +===================== + + drivers/eeprom/spi_xx25xx.c + --------------------------- + This is a driver for SPI EEPROMs that use the same commands as the + 25AA160. + + Manufacturer Device Bytes PgSize AddrLen + Microchip + 25xx010A 128 16 1 + 25xx020A 256 16 1 + 25AA02UID 256 16 1 + 25AA02E48 256 16 1 + 25AA02E64 256 16 1 + 25xx040 512 16 1+bit + 25xx040A 512 16 1+bit + 25xx080 1024 16 1 + 25xx080A 1024 16 2 + 25xx080B 1024 32 2 + 25xx080C 1024 16 x + 25xx080D 1024 32 x + 25xx160 2048 16 2 + 25xx160A/C 2048 16 2 TESTED + 25xx160B/D 2048 32 2 + 25xx160C 2048 16 2 + 25xx160D 2048 32 2 + 25xx320 4096 32 2 + 25xx320A 4096 32 2 + 25xx640 8192 32 2 + 25xx640A 8192 32 2 + 25xx128 16384 64 2 + 25xx256 32768 64 2 + 25xx512 65536 128 2 + 25xx1024 131072 256 3 + Atmel + AT25010B 128 8 1 + AT25020B 256 8 1 + AT25040B 512 8 1+bit + AT25080B 1024 32 2 + AT25160B 2048 32 2 + AT25320B 4096 32 2 + AT25640B 8192 32 2 + AT25128B 16384 64 2 + AT25256B 32768 64 2 + AT25512 65536 128 2 + AT25M01 131072 256 3 + + drivers/mtd/at24xx.c + --------------------- + This is drier for I2C-based at24cxx EEPROM (at24c32 ,at24c64, at24c128, + at24c256, at24c512). This driver driver is currently provided as an + MTD driver but could easily be modified to support the character driver + interface + +File Systems +============ + + Most EEPROM parts are too small to be candidates for use with a file + system. The character driver interface is optimal for these small parts + because you can open and access the EEPROM part as if it were a single, + fixed size file. + + It is also possible to use these character drivers with a file system. + The character driver can converted to a block device using the NuttX loop + device. The loop device can be found the file drivers/loop.c. Interface + function prototypes can be found in include/nuttx/fs/fs.h: + + int losetup(FAR const char *devname, FAR const char *filename, + uint16_t sectsize, off_t offset, bool readonly); + + Give a file or character devices at 'filename', losetup will create the + block device 'devname' using a bogus sector size of sectsize. 'offset' is + normally zero but can be used to provide an offset into the EEPROM where + the block driver data starts; The EEPROM block driver can also be read- + only. + + There is a corresponding function that will destory the loop device: + + int loteardown(FAR const char *devname); |