pca9557 - Driver for PCA9537/PCA9557/TCA9534 remote 4/8-bit I/O expanders for I2C-bus
- group pca9557
ESP-IDF driver for PCA9536/PCA9537/PCA9557/TCA9534 remote 4/8-bit I/O expanders for I2C-bus.
Copyright (c) 2021 Ruslan V. Uss unclerus@gmail.com
BSD Licensed as described in the file LICENSE
Defines
-
PCA9536_I2C_ADDR
I2C address for PCA9536.
-
PCA9537_I2C_ADDR
I2C address for PCA9537.
-
PCA9557_I2C_ADDR_BASE
Base I2C address for PCA9557.
-
TCA9534_I2C_ADDR_BASE
Base I2C address for TCA9534.
Enums
Functions
-
esp_err_t pca9557_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
port – I2C port number
addr – I2C address (
0b0011<A2><A1><A0>
for PCA9557/PCA9537_I2C_ADDR
for PCA9537,TCA9534_I2C_ADDR_BASE
for TCA9534)sda_gpio – SDA GPIO
scl_gpio – SCL GPIO
- Returns:
ESP_OK
on success
-
esp_err_t pca9557_free_desc(i2c_dev_t *dev)
Free device descriptor.
- Parameters:
dev – Pointer to I2C device descriptor
- Returns:
ESP_OK
on success
-
esp_err_t pca9557_port_get_mode(i2c_dev_t *dev, uint8_t *mode)
Get directions of I/O pins.
0 - output, 1 - input for each bit in
mode
- Parameters:
dev – Pointer to device descriptor
mode – [out] I/O directions
- Returns:
ESP_OK
on success
-
esp_err_t pca9557_port_set_mode(i2c_dev_t *dev, uint8_t mode)
Set directions of I/O pins.
0 - output, 1 - input for each bit in
mode
- Parameters:
dev – Pointer to device descriptor
mode – I/O directions
- Returns:
ESP_OK
on success
-
esp_err_t pca9557_port_get_polarity(i2c_dev_t *dev, uint8_t *pol)
Get input polarity settings.
0 - normal input polarity, 1 - inverted for each bit in
pol
- Parameters:
dev – Pointer to device descriptor
pol – [out] Input polarity settings
- Returns:
ESP_OK
on success
-
esp_err_t pca9557_port_set_polarity(i2c_dev_t *dev, uint8_t pol)
Set input polarity settings.
0 - normal input polarity, 1 - inverted for each bit in
pol
- Parameters:
dev – Pointer to device descriptor
pol – Input polarity settings
- Returns:
ESP_OK
on success
-
esp_err_t pca9557_port_read(i2c_dev_t *dev, uint8_t *val)
Read I/O port value.
- Parameters:
dev – Pointer to I2C device descriptor
val – [out] 8-bit GPIO port value for PCA9557 or 4-bit port value for PCA9536/PCA9537
- Returns:
ESP_OK
on success
-
esp_err_t pca9557_port_write(i2c_dev_t *dev, uint8_t val)
Write value to I/O port.
- Parameters:
dev – Pointer to I2C device descriptor
val – 8-bit GPIO port value for PCA9557 or 4-bit port value for PCA9536/PCA9537
- Returns:
ESP_OK on success
-
esp_err_t pca9557_get_mode(i2c_dev_t *dev, uint8_t pin, pca9557_mode_t *mode)
Read I/O pin mode.
- Parameters:
dev – Pointer to device descriptor
pin – Pin number, 0..7 for PCA9557, 0..3 for PCA9536/PC9537
mode – [out] Pin mode
- Returns:
ESP_OK
on success
-
esp_err_t pca9557_set_mode(i2c_dev_t *dev, uint8_t pin, pca9557_mode_t mode)
Set I/O pin mode.
- Parameters:
dev – Pointer to device descriptor
pin – Pin number, 0..7 for PCA9557, 0..3 for PCA9536/PC9537
mode – Pin mode
- Returns:
ESP_OK
on success
-
PCA9536_I2C_ADDR