espressif/esp_io_expander_tca95xx_16bit

2.0.0

Latest
uploaded 9 months ago
ESP IO Expander - tca9539 and tca9555

readme

# ESP IO Expander Chip TCA9539 and TCA9555

[![Component Registry](https://components.espressif.com/components/espressif/esp_io_expander_tca95xx_16bit/badge.svg)](https://components.espressif.com/components/espressif/esp_io_expander_tca95xx_16bit)

Implementation of the TCA9539 and TCA9555 io expander chip with esp_io_expander component.

| Chip             | Communication interface | Component name                | Link to datasheet |
| :--------------: | :---------------------: | :---------------------------: | :---------------: |
| TCA9539          | I2C                     | esp_io_expander_tca95xx_16bit | [datasheet](https://www.ti.com/lit/gpn/tca9539) |
| TCA9555          | I2C                     | esp_io_expander_tca95xx_16bit | [datasheet](https://www.ti.com/lit/gpn/tca9555) |

## Add to project

Packages from this repository are uploaded to [Espressif's component service](https://components.espressif.com/).
You can add them to your project via `idf.py add-dependency`, e.g.
```
    idf.py add-dependency esp_io_expander_tca95xx_16bit==1.0.0
```

Alternatively, you can create `idf_component.yml`. More is in [Espressif's documentation](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-component-manager.html).

## Example use

Creation of the i2c bus.

```c
    i2c_master_bus_handle_t i2c_handle = NULL;
    const i2c_master_bus_config_t bus_config = {
        .i2c_port = I2C_NUM_0,
        .sda_io_num = 47,
        .scl_io_num = 48,
        .clk_source = I2C_CLK_SRC_DEFAULT,
    };
    i2c_new_master_bus(&bus_config, &i2c_handle);
```

Creation of the component.

```c
    esp_io_expander_handle_t io_expander = NULL;
    esp_io_expander_new_i2c_tca95xx_16bit(i2c_handle, ESP_IO_EXPANDER_I2C_TCA9539_ADDRESS_00, &io_expander);
```

Print all pins's status to the log:

```c
    esp_io_expander_print_state(io_expander);
```

Set pin 0 and pin 1 with output dircetion and low level:

```c
    esp_io_expander_set_dir(io_expander, IO_EXPANDER_PIN_NUM_0 | IO_EXPANDER_PIN_NUM_1, IO_EXPANDER_OUTPUT);
    esp_io_expander_set_level(io_expander, IO_EXPANDER_PIN_NUM_0 | IO_EXPANDER_PIN_NUM_1, 0);
```

Set pin 2 and pin 3 with input dircetion:

```c
    uint32_t pin_levels = 0;
    esp_io_expander_set_dir(io_expander, IO_EXPANDER_PIN_NUM_2 | IO_EXPANDER_PIN_NUM_3, IO_EXPANDER_INPUT);
    esp_io_expander_get_level(io_expander, IO_EXPANDER_PIN_NUM_2 | IO_EXPANDER_PIN_NUM_3, &pin_levels);
```

Links

Supports all targets

License: Apache-2.0

To add this component to your project, run:

idf.py add-dependency "espressif/esp_io_expander_tca95xx_16bit^2.0.0"

or download archive

Stats

  • Archive size
    Archive size ~ 11.07 KB
  • Downloaded in total
    Downloaded in total 56.4k times
  • Downloaded this version
    This version: 31.2k times

Badge

espressif/esp_io_expander_tca95xx_16bit version: 2.0.0
|
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy