eerom.h 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #ifndef __I2C_EE_H
  2. #define __I2C_EE_H
  3. /*****24Cxx Seriel EEPROM*************************/
  4. #define EEPROM 8
  5. /********
  6. 01 -> 24C01; 02 -> 24C02; 04 -> 24C04; 08 -> 24C08;
  7. 16 -> 24C16; 32 -> 24C32; 64 -> 24C64; 128 -> 24C128;
  8. 256-> 24C256; 512 -> 24C512;
  9. *****/
  10. #if EEPROM==1
  11. #define EE_PAGESIZE 8
  12. #define EE_SIZE 0x007F
  13. #define EE_WR_ADDRESS(addr) (BSP_EEROM_WR_ADDRESS)
  14. #define EE_RD_ADDRESS(addr) (BSP_EEROM_RD_ADDRESS)
  15. #elif EEPROM==2
  16. #define EE_PAGESIZE 16
  17. #define EE_SIZE 0x00FF
  18. #define EE_WR_ADDRESS(addr) (BSP_EEROM_WR_ADDRESS)
  19. #define EE_RD_ADDRESS(addr) (BSP_EEROM_RD_ADDRESS)
  20. #elif EEPROM==4
  21. #define EE_PAGESIZE 16
  22. #define EE_SIZE 0x01FF
  23. #define EE_WR_ADDRESS(addr) (BSP_EEROM_WR_ADDRESS | ((addr & 0x0100)>>8))
  24. #define EE_RD_ADDRESS(addr) (BSP_EEROM_RD_ADDRESS | ((addr & 0x0100)>>8))
  25. #elif EEPROM==8
  26. #define EE_PAGESIZE 16
  27. #define EE_SIZE 0x03FF
  28. #define EE_WR_ADDRESS(addr) (BSP_EEROM_WR_ADDRESS | ((addr & 0x0300)>>8))
  29. #define EE_RD_ADDRESS(addr) (BSP_EEROM_RD_ADDRESS | ((addr & 0x0300)>>8))
  30. #elif EEPROM==16
  31. #define EE_PAGESIZE 16
  32. #define EE_SIZE 0x07FF
  33. #define EE_WR_ADDRESS(addr) (BSP_EEROM_WR_ADDRESS | ((addr & 0x0700)>>8))
  34. #define EE_RD_ADDRESS(addr) (BSP_EEROM_RD_ADDRESS | ((addr & 0x0700)>>8))
  35. #elif EEPROM==32
  36. #define EE_PAGESIZE 32
  37. #define EE_SIZE 0x0FFF
  38. #define EE_WR_ADDRESS(addr) (BSP_EEROM_WR_ADDRESS)
  39. #define EE_RD_ADDRESS(addr) (BSP_EEROM_RD_ADDRESS)
  40. #elif EEPROM==64
  41. #define EE_PAGESIZE 32
  42. #define EE_SIZE 0x1FFF
  43. #define EE_WR_ADDRESS(addr) (BSP_EEROM_WR_ADDRESS)
  44. #define EE_RD_ADDRESS(addr) (BSP_EEROM_RD_ADDRESS)
  45. #elif EEPROM==128
  46. #define EE_PAGESIZE 64
  47. #define EE_SIZE 0x3FFF
  48. #define EE_WR_ADDRESS(addr) (BSP_EEROM_WR_ADDRESS)
  49. #define EE_RD_ADDRESS(addr) (BSP_EEROM_RD_ADDRESS)
  50. #elif EEPROM==256
  51. #define EE_PAGESIZE 64
  52. #define EE_SIZE 0x7FFF
  53. #define EE_WR_ADDRESS(addr) (BSP_EEROM_WR_ADDRESS)
  54. #define EE_RD_ADDRESS(addr) (BSP_EEROM_RD_ADDRESS)
  55. #elif EEPROM==512
  56. #define EE_PAGESIZE 128
  57. #define EE_SIZE 0xFFFF
  58. #define EE_WR_ADDRESS(addr) (BSP_EEROM_WR_ADDRESS)
  59. #define EE_RD_ADDRESS(addr) (BSP_EEROM_RD_ADDRESS)
  60. #else
  61. #ERROR "EEROM size can not be supported!!"
  62. #endif
  63. uint8_t I2C_ReadOneByte(uint16_t ReadAddr);
  64. void I2C_WriteOneByte(uint16_t WriteAddr,uint8_t DataToWrite);
  65. void I2C_WriteBuffer(uint8_t* pBuffer, uint16_t WriteAddr, uint16_t NumByteToWrite);
  66. void I2C_ReadBuffer(uint8_t* pBuffer, uint16_t ReadAddr, uint16_t NumByteToRead);
  67. void I2C_ReadMultipleBytes(uint8_t* pBuffer, uint16_t ReadAddr, uint16_t NumByteToRead);
  68. void I2C_WriteMultipleBytes(uint8_t* pBuffer, uint16_t WriteAddr, uint16_t NumByteToWrite);
  69. #endif