Kamcho Library 02.00.03
lib.kamcho.02.00.03.287
|
Enumerations | |
enum | { I2C_STATE_IDLE, I2C_STATE_READ_START, I2C_STATE_WRITE_START, I2C_STATE_REPEAT_START, I2C_STATE_WRITE_DATA, I2C_STATE_RECEIVE_DATA, I2C_STATE_READ_DATA, I2C_STATE_STOP } |
enum | { I2C_MODE_MASTER, I2C_MODE_SLAVE } |
enum | { I2C_OP_READ, I2C_OP_WRITE, I2C_OP_REGISTER_READ } |
enum | { I2C_WRITE_FLAG = 0, I2C_READ_FLAG = 1 } |
Functions | |
I2C_Device_t * | I2C_devGetDevice (const char *name) |
Request a I2C Device. More... | |
int32_t | I2C_devEnable (I2C_Device_t *dev) |
Enable I2C hardware module. More... | |
int32_t | I2C_devDisable (I2C_Device_t *dev) |
Disable I2C hardware module. More... | |
int32_t | I2C_devReset (I2C_Device_t *dev) |
Reset I2C master device. More... | |
int32_t | I2C_devSlaveInit (I2C_Device_t *dev, I2C_Device_SlaveInfo_t *info) |
Initialize I2C slave device. More... | |
int32_t | I2C_devSlaveSetResponseData (I2C_Device_t *dev, uint8_t *array, uint32_t len) |
Set response data to I2C slave module. More... | |
int32_t | I2C_devSlaveReadResult (I2C_Device_t *dev, uint8_t *array, uint32_t len) |
Read data from I2C slave module. More... | |
int32_t | I2C_devSlaveDataReceived (I2C_Device_t *dev) |
Check how many bytes received by I2C slave module. More... | |
int32_t | I2C_devSlaveDataResponsed (I2C_Device_t *dev) |
Check how many bytes has been read by a I2C master. More... | |
int32_t | I2C_devSlaveRestart (I2C_Device_t *dev) |
Restart next I2C cycle as a slave. More... | |
int32_t | I2C_devMasterInit (I2C_Device_t *dev, I2C_Device_MasterInfo_t *info) |
Initialize I2C master device. More... | |
int32_t | I2C_devIsInProgress (I2C_Device_t *dev) |
Check if I2C master device is busy in last transation. More... | |
int32_t | I2C_devMasterSendData (I2C_Device_t *dev, uint16_t slave_addr, uint8_t *array, uint32_t len) |
Send a data block through I2C master device. More... | |
int32_t | I2C_devMasterReadResult (I2C_Device_t *dev, uint8_t *array, uint32_t len) |
Read data from I2C master device, the data is the result of last read request. More... | |
int32_t | I2C_devMasterReadRequest (I2C_Device_t *dev, uint16_t slave_addr, uint32_t len) |
Send a read request to I2C master device. More... | |
int32_t | I2C_devMasterRegisterReadRequest (I2C_Device_t *dev, uint16_t slave_addr, uint8_t *reg_addr, uint8_t addrlen, uint8_t datalen) |
Send a register read request to I2C master device. More... | |
void | I2C_Collision_Handler (void) |
I2C clollison interrupt handler. More... | |
void | master_isr (I2C_Device_t *dev) |
void | update_state (I2C_Device_t *dev) |
bool | is_new_session (I2C_Device_t *dev) |
void | slave_isr (I2C_Device_t *dev) |
void | I2C_Handler (void) |
I2C interrupt handler. More... | |
Variables | |
static const uint16_t | i2c_speed_map [I2C_DEVICE_SPEED_MAX+1] |
static const I2C_Device_t * | I2C_Device_Table [] |
The instances of I2C device. More... | |
This file is proprietary to Indie Semiconductor. All rights reserved. Reproduction or distribution, in whole or in part, is forbidden except by express written permission of Indie Semiconductor.
anonymous enum |
anonymous enum |
void I2C_Collision_Handler | ( | void | ) |
I2C clollison interrupt handler.
int32_t I2C_devDisable | ( | I2C_Device_t * | dev | ) |
Disable I2C hardware module.
dev | The pointer to I2C device. |
int32_t I2C_devEnable | ( | I2C_Device_t * | dev | ) |
Enable I2C hardware module.
dev | The pointer to I2C device. |
I2C_Device_t* I2C_devGetDevice | ( | const char * | name | ) |
Request a I2C Device.
name | The name string of I2C device. |
int32_t I2C_devIsInProgress | ( | I2C_Device_t * | dev | ) |
Check if I2C master device is busy in last transation.
dev | The pointer to I2C device. |
int32_t I2C_devMasterInit | ( | I2C_Device_t * | dev, |
I2C_Device_MasterInfo_t * | info | ||
) |
Initialize I2C master device.
dev | The pointer to I2C device |
info | The pointer to the initialization information for I2C master device. |
int32_t I2C_devMasterReadRequest | ( | I2C_Device_t * | dev, |
uint16_t | addr, | ||
uint32_t | len | ||
) |
Send a read request to I2C master device.
dev | The pointer to I2C device. |
addr | The slave addr. |
len | The length of the data block. |
int32_t I2C_devMasterReadResult | ( | I2C_Device_t * | dev, |
uint8_t * | data, | ||
uint32_t | len | ||
) |
Read data from I2C master device, the data is the result of last read request.
dev | The pointer to I2C device. |
data | The pointer to the memory for saving the data block. |
len | The length of the data block. |
int32_t I2C_devMasterRegisterReadRequest | ( | I2C_Device_t * | dev, |
uint16_t | slave_addr, | ||
uint8_t * | reg_addr, | ||
uint8_t | addrlen, | ||
uint8_t | datalen | ||
) |
Send a register read request to I2C master device.
dev | The pointer to I2C device. |
slave_addr | The slave device address. |
reg_addr | The pointer to register address in slave device. |
addrlen | The length of register address. |
datalen | The data length to be read from the slave. |
int32_t I2C_devMasterSendData | ( | I2C_Device_t * | dev, |
uint16_t | addr, | ||
uint8_t * | data, | ||
uint32_t | len | ||
) |
Send a data block through I2C master device.
dev | The pointer to I2C device. |
addr | The slave addr. |
data | The pointer to the data block. |
len | The length of the data block. |
int32_t I2C_devReset | ( | I2C_Device_t * | dev | ) |
Reset I2C master device.
dev | The pointer to I2C device |
int32_t I2C_devSlaveDataReceived | ( | I2C_Device_t * | dev | ) |
Check how many bytes received by I2C slave module.
dev | The pointer to I2C device. |
int32_t I2C_devSlaveDataResponsed | ( | I2C_Device_t * | dev | ) |
Check how many bytes has been read by a I2C master.
dev | The pointer to I2C device. |
int32_t I2C_devSlaveInit | ( | I2C_Device_t * | dev, |
I2C_Device_SlaveInfo_t * | info | ||
) |
Initialize I2C slave device.
dev | The pointer to I2C device |
info | The pointer to the initialization information for I2C slave device. |
int32_t I2C_devSlaveReadResult | ( | I2C_Device_t * | dev, |
uint8_t * | array, | ||
uint32_t | len | ||
) |
Read data from I2C slave module.
dev | The pointer to I2C device. |
array | The pointer to data array to store the data. |
len | The length of data array. |
int32_t I2C_devSlaveRestart | ( | I2C_Device_t * | dev | ) |
Restart next I2C cycle as a slave.
dev | The pointer to I2C device. |
int32_t I2C_devSlaveSetResponseData | ( | I2C_Device_t * | dev, |
uint8_t * | array, | ||
uint32_t | len | ||
) |
Set response data to I2C slave module.
dev | The pointer to I2C device. |
array | The pointer to data array to be set. |
len | The length of data array. |
void I2C_Handler | ( | void | ) |
I2C interrupt handler.
bool is_new_session | ( | I2C_Device_t * | dev | ) |
void master_isr | ( | I2C_Device_t * | dev | ) |
void slave_isr | ( | I2C_Device_t * | dev | ) |
void update_state | ( | I2C_Device_t * | dev | ) |
|
static |
The instances of I2C device.
The table of I2C device instances supported by the platform.
|
static |
At 12MHz system clock, the clock divider settings for each I2C speed.