i2c_master.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #ifndef __I2C_MASTER_H__
  2. #define __I2C_MASTER_H__
  3. #define I2C_MASTER_SDA_MUX (pin_mux[sda])
  4. #define I2C_MASTER_SCL_MUX (pin_mux[scl])
  5. #define I2C_MASTER_SDA_GPIO (pinSDA)
  6. #define I2C_MASTER_SCL_GPIO (pinSCL)
  7. #define I2C_MASTER_SDA_FUNC (pin_func[sda])
  8. #define I2C_MASTER_SCL_FUNC (pin_func[scl])
  9. // #define I2C_MASTER_SDA_MUX PERIPHS_IO_MUX_GPIO2_U
  10. // #define I2C_MASTER_SCL_MUX PERIPHS_IO_MUX_MTDO_U
  11. // #define I2C_MASTER_SDA_GPIO 2
  12. // #define I2C_MASTER_SCL_GPIO 15
  13. // #define I2C_MASTER_SDA_FUNC FUNC_GPIO2
  14. // #define I2C_MASTER_SCL_FUNC FUNC_GPIO15
  15. // #define I2C_MASTER_SDA_MUX PERIPHS_IO_MUX_GPIO2_U
  16. // #define I2C_MASTER_SCL_MUX PERIPHS_IO_MUX_MTMS_U
  17. // #define I2C_MASTER_SDA_GPIO 2
  18. // #define I2C_MASTER_SCL_GPIO 14
  19. // #define I2C_MASTER_SDA_FUNC FUNC_GPIO2
  20. // #define I2C_MASTER_SCL_FUNC FUNC_GPIO14
  21. //#define I2C_MASTER_SDA_MUX PERIPHS_IO_MUX_GPIO2_U
  22. //#define I2C_MASTER_SCL_MUX PERIPHS_IO_MUX_GPIO0_U
  23. //#define I2C_MASTER_SDA_GPIO 2
  24. //#define I2C_MASTER_SCL_GPIO 0
  25. //#define I2C_MASTER_SDA_FUNC FUNC_GPIO2
  26. //#define I2C_MASTER_SCL_FUNC FUNC_GPIO0
  27. #if 0
  28. #define I2C_MASTER_GPIO_SET(pin) \
  29. gpio_output_set(1<<pin,0,1<<pin,0)
  30. #define I2C_MASTER_GPIO_CLR(pin) \
  31. gpio_output_set(0,1<<pin,1<<pin,0)
  32. #define I2C_MASTER_GPIO_OUT(pin,val) \
  33. if(val) I2C_MASTER_GPIO_SET(pin);\
  34. else I2C_MASTER_GPIO_CLR(pin)
  35. #endif
  36. #define I2C_MASTER_SDA_HIGH_SCL_HIGH() \
  37. gpio_output_set(1<<I2C_MASTER_SDA_GPIO | 1<<I2C_MASTER_SCL_GPIO, 0, 1<<I2C_MASTER_SDA_GPIO | 1<<I2C_MASTER_SCL_GPIO, 0)
  38. #define I2C_MASTER_SDA_HIGH_SCL_LOW() \
  39. gpio_output_set(1<<I2C_MASTER_SDA_GPIO, 1<<I2C_MASTER_SCL_GPIO, 1<<I2C_MASTER_SDA_GPIO | 1<<I2C_MASTER_SCL_GPIO, 0)
  40. #define I2C_MASTER_SDA_LOW_SCL_HIGH() \
  41. gpio_output_set(1<<I2C_MASTER_SCL_GPIO, 1<<I2C_MASTER_SDA_GPIO, 1<<I2C_MASTER_SDA_GPIO | 1<<I2C_MASTER_SCL_GPIO, 0)
  42. #define I2C_MASTER_SDA_LOW_SCL_LOW() \
  43. gpio_output_set(0, 1<<I2C_MASTER_SDA_GPIO | 1<<I2C_MASTER_SCL_GPIO, 1<<I2C_MASTER_SDA_GPIO | 1<<I2C_MASTER_SCL_GPIO, 0)
  44. void i2c_master_gpio_init(uint8 sda, uint8 scl);
  45. void i2c_master_init(void);
  46. #define i2c_master_wait os_delay_us
  47. void i2c_master_stop(void);
  48. void i2c_master_start(void);
  49. void i2c_master_setAck(uint8 level);
  50. uint8 i2c_master_getAck(void);
  51. uint8 i2c_master_readByte(void);
  52. void i2c_master_writeByte(uint8 wrdata);
  53. uint8 i2c_master_get_pinSDA();
  54. uint8 i2c_master_get_pinSCL();
  55. #endif