tca6424a - Driver for TCA6424A low-voltage 24-bit I2C I/O expander
- group tca6424a
ESP-IDF driver for TCA6424A low-voltage 24-bit I2C I/O expander.
Copyright (c) 2023 Ruslan V. Uss unclerus@gmail.com
BSD Licensed as described in the file LICENSE
Functions
-
esp_err_t tca6424a_init_desc(i2c_dev_t *dev, uint8_t addr, i2c_port_t port, gpio_num_t sda_gpio, gpio_num_t scl_gpio)
Initialize device descriptor.
Default SCL frequency is 400kHz
- Parameters:
dev – Pointer to I2C device descriptor
addr – I2C address (
0b0100<A2><A1><A0>
)port – I2C port number
sda_gpio – SDA GPIO
scl_gpio – SCL GPIO
- Returns:
ESP_OK
on success
-
esp_err_t tca6424a_free_desc(i2c_dev_t *dev)
Free device descriptor.
- Parameters:
dev – Pointer to I2C device descriptor
- Returns:
ESP_OK
on success
-
esp_err_t tca6424a_port_get_mode(i2c_dev_t *dev, uint32_t *mode)
Get GPIO pins mode.
0 - output, 1 - input for lower 24 bits in
val
- Parameters:
dev – Pointer to device descriptor
mode – [out] Buffer to store mode, 0 bit for P00 .. 23 bit for P27
- Returns:
ESP_OK
on success
-
esp_err_t tca6424a_port_set_mode(i2c_dev_t *dev, uint32_t mode)
Set GPIO pins mode.
0 - output, 1 - input for lower 24 bits in
val
- Parameters:
dev – Pointer to device descriptor
mode – Mode, 0 bit for P00 .. 23 bit for P27
- Returns:
ESP_OK
on success
-
esp_err_t tca6424a_port_get_polarity_inversion(i2c_dev_t *dev, uint32_t *polarity)
Get GPIO pins polarity inversion.
0 - no inversion, 1 - invert polarity for lower 24 bits in
val
- Parameters:
dev – Pointer to device descriptor
polarity – [out] Polarity, 0 bit for P00 .. 23 bit for P27
- Returns:
ESP_OK
on success
-
esp_err_t tca6424a_port_set_polarity_inversion(i2c_dev_t *dev, uint32_t polarity)
Set GPIO pins polarity inversion.
0 - no inversion, 1 - invert polarity for lower 24 bits in
val
- Parameters:
dev – Pointer to device descriptor
polarity – Polarity, 0 bit for P00 .. 23 bit for P27
- Returns:
ESP_OK
on success
-
esp_err_t tca6424a_port_read(i2c_dev_t *dev, uint32_t *val)
Read GPIO port value.
- Parameters:
dev – Pointer to I2C device descriptor
val – 24-bit GPIO port value, 0 bit for P00 .. 23 bit for P27
- Returns:
ESP_OK
on success
-
esp_err_t tca6424a_port_write(i2c_dev_t *dev, uint32_t val)
Write value to GPIO port.
- Parameters:
dev – Pointer to I2C device descriptor
val – GPIO port value, 0 bit for P00 .. 23 bit for P27
- Returns:
ESP_OK on success
-
esp_err_t tca6424a_init_desc(i2c_dev_t *dev, uint8_t addr, i2c_port_t port, gpio_num_t sda_gpio, gpio_num_t scl_gpio)