#ifndef __I2C_EE_H #define __I2C_EE_H /*****24Cxx Seriel EEPROM*************************/ #define EEPROM 8 /******** 01 -> 24C01; 02 -> 24C02; 04 -> 24C04; 08 -> 24C08; 16 -> 24C16; 32 -> 24C32; 64 -> 24C64; 128 -> 24C128; 256-> 24C256; 512 -> 24C512; *****/ #if EEPROM==1 #define EE_PAGESIZE 8 #define EE_SIZE 0x007F #define EE_WR_ADDRESS(addr) (BSP_EEROM_WR_ADDRESS) #define EE_RD_ADDRESS(addr) (BSP_EEROM_RD_ADDRESS) #elif EEPROM==2 #define EE_PAGESIZE 16 #define EE_SIZE 0x00FF #define EE_WR_ADDRESS(addr) (BSP_EEROM_WR_ADDRESS) #define EE_RD_ADDRESS(addr) (BSP_EEROM_RD_ADDRESS) #elif EEPROM==4 #define EE_PAGESIZE 16 #define EE_SIZE 0x01FF #define EE_WR_ADDRESS(addr) (BSP_EEROM_WR_ADDRESS | ((addr & 0x0100)>>8)) #define EE_RD_ADDRESS(addr) (BSP_EEROM_RD_ADDRESS | ((addr & 0x0100)>>8)) #elif EEPROM==8 #define EE_PAGESIZE 16 #define EE_SIZE 0x03FF #define EE_WR_ADDRESS(addr) (BSP_EEROM_WR_ADDRESS | ((addr & 0x0300)>>8)) #define EE_RD_ADDRESS(addr) (BSP_EEROM_RD_ADDRESS | ((addr & 0x0300)>>8)) #elif EEPROM==16 #define EE_PAGESIZE 16 #define EE_SIZE 0x07FF #define EE_WR_ADDRESS(addr) (BSP_EEROM_WR_ADDRESS | ((addr & 0x0700)>>8)) #define EE_RD_ADDRESS(addr) (BSP_EEROM_RD_ADDRESS | ((addr & 0x0700)>>8)) #elif EEPROM==32 #define EE_PAGESIZE 32 #define EE_SIZE 0x0FFF #define EE_WR_ADDRESS(addr) (BSP_EEROM_WR_ADDRESS) #define EE_RD_ADDRESS(addr) (BSP_EEROM_RD_ADDRESS) #elif EEPROM==64 #define EE_PAGESIZE 32 #define EE_SIZE 0x1FFF #define EE_WR_ADDRESS(addr) (BSP_EEROM_WR_ADDRESS) #define EE_RD_ADDRESS(addr) (BSP_EEROM_RD_ADDRESS) #elif EEPROM==128 #define EE_PAGESIZE 64 #define EE_SIZE 0x3FFF #define EE_WR_ADDRESS(addr) (BSP_EEROM_WR_ADDRESS) #define EE_RD_ADDRESS(addr) (BSP_EEROM_RD_ADDRESS) #elif EEPROM==256 #define EE_PAGESIZE 64 #define EE_SIZE 0x7FFF #define EE_WR_ADDRESS(addr) (BSP_EEROM_WR_ADDRESS) #define EE_RD_ADDRESS(addr) (BSP_EEROM_RD_ADDRESS) #elif EEPROM==512 #define EE_PAGESIZE 128 #define EE_SIZE 0xFFFF #define EE_WR_ADDRESS(addr) (BSP_EEROM_WR_ADDRESS) #define EE_RD_ADDRESS(addr) (BSP_EEROM_RD_ADDRESS) #else #ERROR "EEROM size can not be supported!!" #endif uint8_t I2C_ReadOneByte(uint16_t ReadAddr); void I2C_WriteOneByte(uint16_t WriteAddr,uint8_t DataToWrite); void I2C_WriteBuffer(uint8_t* pBuffer, uint16_t WriteAddr, uint16_t NumByteToWrite); void I2C_ReadBuffer(uint8_t* pBuffer, uint16_t ReadAddr, uint16_t NumByteToRead); void I2C_ReadMultipleBytes(uint8_t* pBuffer, uint16_t ReadAddr, uint16_t NumByteToRead); void I2C_WriteMultipleBytes(uint8_t* pBuffer, uint16_t WriteAddr, uint16_t NumByteToWrite); #endif