EEprom i2c 24AA08 & 24LC08 (no Address pin) library control
Ee24xx08.h@0:e295d3596c85, 2014-09-10 (annotated)
- Committer:
- mederic
- Date:
- Wed Sep 10 08:57:38 2014 +0000
- Revision:
- 0:e295d3596c85
first release
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mederic | 0:e295d3596c85 | 1 | #ifndef EE24XX08_H |
mederic | 0:e295d3596c85 | 2 | #define EE24XX08_H |
mederic | 0:e295d3596c85 | 3 | |
mederic | 0:e295d3596c85 | 4 | #include "mbed.h" |
mederic | 0:e295d3596c85 | 5 | |
mederic | 0:e295d3596c85 | 6 | #define EE24xx08ADDR 0xA0 |
mederic | 0:e295d3596c85 | 7 | |
mederic | 0:e295d3596c85 | 8 | /** Ee24xx08 class. |
mederic | 0:e295d3596c85 | 9 | * I2C eeprom (without functional adress pins) driver |
mederic | 0:e295d3596c85 | 10 | * for 24xx00,24xx01,24xx02,24xx04,24xx08,24xx016 device |
mederic | 0:e295d3596c85 | 11 | |
mederic | 0:e295d3596c85 | 12 | * Example: |
mederic | 0:e295d3596c85 | 13 | * @code |
mederic | 0:e295d3596c85 | 14 | * #include "mbed.h" |
mederic | 0:e295d3596c85 | 15 | * #include "Ee24xx08.h" |
mederic | 0:e295d3596c85 | 16 | * |
mederic | 0:e295d3596c85 | 17 | * Serial ser(USBTX,USBRX); |
mederic | 0:e295d3596c85 | 18 | * I2C iic(p28,p27);Ee24xx08 eeprom(&iic, &ser); |
mederic | 0:e295d3596c85 | 19 | * |
mederic | 0:e295d3596c85 | 20 | * int main() |
mederic | 0:e295d3596c85 | 21 | * { |
mederic | 0:e295d3596c85 | 22 | * char str[12] = "hello wolrd"; |
mederic | 0:e295d3596c85 | 23 | * |
mederic | 0:e295d3596c85 | 24 | * eeprom.write(54,str,12); |
mederic | 0:e295d3596c85 | 25 | * wait(1); |
mederic | 0:e295d3596c85 | 26 | * eeprom.read(54,str,12); |
mederic | 0:e295d3596c85 | 27 | * ser.printf("%s\r\n",str); |
mederic | 0:e295d3596c85 | 28 | * |
mederic | 0:e295d3596c85 | 29 | * while(1) |
mederic | 0:e295d3596c85 | 30 | * { |
mederic | 0:e295d3596c85 | 31 | * } |
mederic | 0:e295d3596c85 | 32 | * } |
mederic | 0:e295d3596c85 | 33 | * @endcode |
mederic | 0:e295d3596c85 | 34 | */ |
mederic | 0:e295d3596c85 | 35 | class Ee24xx08 |
mederic | 0:e295d3596c85 | 36 | { |
mederic | 0:e295d3596c85 | 37 | public: |
mederic | 0:e295d3596c85 | 38 | /** Create Ee24xx08 instance |
mederic | 0:e295d3596c85 | 39 | * @param I2C bus connected to eeprom |
mederic | 0:e295d3596c85 | 40 | */ |
mederic | 0:e295d3596c85 | 41 | Ee24xx08(I2C *i2c); |
mederic | 0:e295d3596c85 | 42 | |
mederic | 0:e295d3596c85 | 43 | /**Write byte on eeprom |
mederic | 0:e295d3596c85 | 44 | * @param addr Byte address in memory |
mederic | 0:e295d3596c85 | 45 | * @param byte Byte to write in memory |
mederic | 0:e295d3596c85 | 46 | * @returns 0 if succes |
mederic | 0:e295d3596c85 | 47 | */ |
mederic | 0:e295d3596c85 | 48 | bool write(const short addr, const char byte); |
mederic | 0:e295d3596c85 | 49 | |
mederic | 0:e295d3596c85 | 50 | /**Write buffer on eeprom |
mederic | 0:e295d3596c85 | 51 | * @param addr Buffer start address in memory |
mederic | 0:e295d3596c85 | 52 | * @param buffer buffer to write in memory |
mederic | 0:e295d3596c85 | 53 | * @param len number of byte to write in memory |
mederic | 0:e295d3596c85 | 54 | * @returns 0 if succes |
mederic | 0:e295d3596c85 | 55 | */ |
mederic | 0:e295d3596c85 | 56 | bool write(const short addr, const char* buffer,const int len); |
mederic | 0:e295d3596c85 | 57 | |
mederic | 0:e295d3596c85 | 58 | /**Read byte on eeprom |
mederic | 0:e295d3596c85 | 59 | * @param addr Byte address in memory |
mederic | 0:e295d3596c85 | 60 | * @param byte Byte to read in memory |
mederic | 0:e295d3596c85 | 61 | * @returns 0 if succes |
mederic | 0:e295d3596c85 | 62 | */ |
mederic | 0:e295d3596c85 | 63 | bool read(const short addr, char *byte); |
mederic | 0:e295d3596c85 | 64 | |
mederic | 0:e295d3596c85 | 65 | /**Read buffer on eeprom |
mederic | 0:e295d3596c85 | 66 | * @param addr Buffer start address in memory |
mederic | 0:e295d3596c85 | 67 | * @param buffer buffer to read in memory |
mederic | 0:e295d3596c85 | 68 | * @param len number of byte to read in memory |
mederic | 0:e295d3596c85 | 69 | * @returns 0 if succes |
mederic | 0:e295d3596c85 | 70 | */ |
mederic | 0:e295d3596c85 | 71 | bool read(const short addr, char* buffer,const int len); |
mederic | 0:e295d3596c85 | 72 | |
mederic | 0:e295d3596c85 | 73 | protected: |
mederic | 0:e295d3596c85 | 74 | I2C *_i2c; |
mederic | 0:e295d3596c85 | 75 | }; |
mederic | 0:e295d3596c85 | 76 | |
mederic | 0:e295d3596c85 | 77 | #endif |