I2C driver implementation for a CC26XX I2C controller.
The I2C header file should be included in an application as follows:
Refer to I2C.h for a complete description of APIs.
The general I2C API is normally used in application code, e.g. I2C_open() is used instead of I2CCC26XX_open(). The board file will define the device specific config, and casting in the general API will ensure that the correct device specific functions are called. This is also reflected in the example code in Use Cases.
Before using the I2C in CC26XX:
The following is true for receive operation:
The following apply for transmit operation:
After I2C operation has ended:
If an error occurs during operation:
The I2CCC26XX driver sets a power constraint during transactions to keep the device out of standby; so when all tasks are blocked, the device will enter idle mode instead of standby. When the transactions have finished, the power constraint to prohibit standby is released. The following statements are valid:
Generic API Function | API Function | Description |
---|---|---|
I2C_init() | I2CCC26XX_init() | Initialize I2C driver |
I2C_open() | I2CCC26XX_open() | Initialize I2C HW and set system dependencies |
I2C_close() | I2CCC26XX_close() | Disable I2C HW and release system dependencies |
I2C_transfer() | I2CCC26XX_transfer() | Start I2C transfer |
The CC26XX I2C driver currently does not support:
Receive 10 bytes over I2C in I2C_MODE_BLOCKING.
Transmit 16 bytes over I2C in I2C_MODE_CALLBACK.
Transmit 10 bytes and then 32 bytes over I2C in I2C_MODE_CALLBACK.
The I2C driver interface produces log statements if instrumentation is enabled.
Diagnostics Mask | Log details |
---|---|
Diags_USER1 | basic I2C operations performed |
Diags_USER2 | detailed I2C operations performed |
#include <stdint.h>
#include <stdbool.h>
#include <ti/drivers/I2C.h>
#include <ti/drivers/Power.h>
#include <ti/drivers/dpl/SwiP.h>
Go to the source code of this file.
Data Structures | |
struct | I2CCC26XX_I2CPinCfg |
I2CCC26XX Pin Configuration. More... | |
struct | I2CCC26XX_HWAttrsV1 |
I2CCC26XX Hardware attributes. More... | |
struct | I2CCC26XX_Object |
I2CCC26XX Object. More... | |