EEprom i2c 24AA08 & 24LC08 (no Address pin) library control

Dependents:   accuBlast_display

Committer:
mederic
Date:
Wed Sep 10 08:57:38 2014 +0000
Revision:
0:e295d3596c85
first release

Who changed what in which revision?

UserRevisionLine numberNew 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