50 lines
1.3 KiB
C
50 lines
1.3 KiB
C
#ifndef __I2C_H__
|
|
#define __I2C_H__
|
|
|
|
// Includes:
|
|
|
|
#include "fsl_i2c.h"
|
|
|
|
// Macros:
|
|
|
|
// Main bus
|
|
|
|
#define I2C_MAIN_BUS_BASEADDR I2C0
|
|
#define I2C_MASTER_BUS_CLK_SRC I2C0_CLK_SRC
|
|
#define I2C_MAIN_BUS_BAUD_RATE 100000 // 100 kHz works even with a 20 meter long bridge cable.
|
|
#define I2C_MAIN_BUS_MUX kPORT_MuxAlt7
|
|
|
|
#define I2C_MAIN_BUS_SDA_PORT PORTD
|
|
#define I2C_MAIN_BUS_SDA_CLOCK kCLOCK_PortD
|
|
#define I2C_MAIN_BUS_SDA_PIN 3
|
|
|
|
#define I2C_MAIN_BUS_SCL_PORT PORTD
|
|
#define I2C_MAIN_BUS_SCL_CLOCK kCLOCK_PortD
|
|
#define I2C_MAIN_BUS_SCL_PIN 2
|
|
|
|
// EEPROM bus
|
|
|
|
#define I2C_EEPROM_BUS_BASEADDR I2C1
|
|
#define I2C_EEPROM_BUS_CLK_SRC I2C1_CLK_SRC
|
|
#define I2C_EEPROM_BUS_BAUD_RATE 1000000 // 1 Mhz is the maximum speed of the EEPROM.
|
|
#define I2C_EEPROM_BUS_MUX kPORT_MuxAlt2
|
|
|
|
#define I2C_EEPROM_BUS_SDA_PORT PORTC
|
|
#define I2C_EEPROM_BUS_SDA_CLOCK kCLOCK_PortC
|
|
#define I2C_EEPROM_BUS_SDA_PIN 11
|
|
|
|
#define I2C_EEPROM_BUS_SCL_PORT PORTC
|
|
#define I2C_EEPROM_BUS_SCL_CLOCK kCLOCK_PortC
|
|
#define I2C_EEPROM_BUS_SCL_PIN 10
|
|
|
|
// Variables:
|
|
|
|
extern i2c_master_handle_t I2cMasterHandle;
|
|
|
|
// Functions:
|
|
|
|
void I2cAsyncWrite(uint8_t i2cAddress, uint8_t *data, size_t dataSize);
|
|
void I2cAsyncRead(uint8_t i2cAddress, uint8_t *data, size_t dataSize);
|
|
|
|
#endif
|