| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #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
|