42 #ifndef I2C_DRIVER_INT_H_
43 #define I2C_DRIVER_INT_H_
51 #include "dma_channel_config.h"
52 #include "scheduler.h"
55 #define I2C_SCHEDULE_SLOTS 10
59 #define I2C_WRITE1_THEN_READ 2
92 void i2c_driver_init(uint8_t i2c_device, twim_options_t twi_opt);
113 int32_t i2c_append_read_transfer(uint8_t slave_address, uint8_t *data, uint16_t size, task_handle_t *event_handler);
125 int32_t i2c_append_write_transfer(uint8_t slave_address, uint8_t *data, uint16_t size, task_handle_t *event_handler);
138 int32_t i2c_append_register_read_transfer(uint8_t slave_address, uint8_t register_address, uint8_t *data, uint16_t size, task_handle_t *event_handler);
145 int32_t i2c_clear_queue(
void);
152 bool i2c_is_ready(
void);
159 int32_t i2c_get_queued_requests(
void);
uint8_t slave_address
I2C address of slave.
Definition: i2c_driver_int.h:75
uint16_t data_size
size of the data buffer
Definition: i2c_driver_int.h:80
uint8_t * data
pointer to a data buffer of uint8_t
Definition: i2c_driver_int.h:79
structure to embed the i2c's data
Definition: i2c_driver_int.h:73
uint16_t data_index
index of the data buffer
Definition: i2c_driver_int.h:81
bool transfer_in_progress
define whether the transfer is in progress
Definition: i2c_driver_int.h:82
task_handle_t * event_handler
pointer to a task handler buffer
Definition: i2c_driver_int.h:83
uint32_t i2c_speed
speed of i2c bus clock in kHz/kbps. Normally 100-400
Definition: i2c_driver_int.h:76
int8_t write_then_read_preamble
preamble in "write follow by read" mode
Definition: i2c_driver_int.h:78
int8_t direction
direction of the bus
Definition: i2c_driver_int.h:77