Files

file  i2c.h
 

Data Structures

struct  i2c_frame_s
 

Macros

#define E_NO_ERR   -1
 
#define I2C_MTU   256
 
#define I2C_MASTER   0
 
#define I2C_SLAVE   1
 

Typedefs

typedef struct i2c_frame_s i2c_frame_t
 
typedef void(* i2c_callback_t) (i2c_frame_t *frame, void *pxTaskWoken)
 

Functions

int i2c_init (int handle, int mode, uint8_t addr, uint16_t speed, int queue_len_tx, int queue_len_rx, i2c_callback_t callback)
 
int i2c_send (int handle, i2c_frame_t *frame, uint16_t timeout)
 

Data Structure Documentation

struct i2c_frame_s

Data structure for I2C frames

Data Fields

uint8_t padding
 
uint8_t retries
 
uint32_t reserved
 
uint8_t dest
 
uint8_t len_rx
 
uint16_t len
 
uint8_t data [I2C_MTU]
 

Field Documentation

uint8_t i2c_frame_s::data[I2C_MTU]
uint8_t i2c_frame_s::dest
uint16_t i2c_frame_s::len
uint8_t i2c_frame_s::len_rx
uint8_t i2c_frame_s::padding
uint32_t i2c_frame_s::reserved
uint8_t i2c_frame_s::retries

Macro Definition Documentation

#define E_NO_ERR   -1

The return value of the driver is a bit strange, It should return E_NO_ERR if successfull and the value is -1

#define I2C_MASTER   0

I2C device modes

#define I2C_MTU   256

Maximum transfer length on I2C

#define I2C_SLAVE   1

Typedef Documentation

typedef void(* i2c_callback_t) (i2c_frame_t *frame, void *pxTaskWoken)

Initialise the I2C driver

Parameters
handleWhich I2C bus (if more than one exists)
modeI2C device mode. Must be either I2C_MASTER or I2C_SLAVE
addrOwn slave address
speedBus speed in kbps
queue_len_txLength of transmit queue
queue_len_rxLength of receive queue
callbackIf this value is set, the driver will call this function instead of using an RX queue
Returns
Error code
typedef struct i2c_frame_s i2c_frame_t

Data structure for I2C frames

Function Documentation

int i2c_init ( int  handle,
int  mode,
uint8_t  addr,
uint16_t  speed,
int  queue_len_tx,
int  queue_len_rx,
i2c_callback_t  callback 
)
int i2c_send ( int  handle,
i2c_frame_t frame,
uint16_t  timeout 
)

Send I2C frame via the selected device

Parameters
handleHandle to the device
framePointer to I2C frame
timeoutTicks to wait
Returns
Error code