I’m using the Adafruit Qualia board with ESP32-S3. The board uses the PCA9554 io_expander to provide the SPI interface for a 40 pin LCD display (which uses the ST7701 driver). Board schematics which show the ESP32-S3 to LCD connections can be found at
https://learn.adafruit.com/assets/124829
To install the SPI panel, here’s the code I’ve got:
spi_line_config_t line_config = {
.cs_io_type = IO_TYPE_EXPANDER,
.cs_expander_pin = EXAMPLE_LCD_IO_SPI_CS,
.scl_io_type = IO_TYPE_EXPANDER,
.scl_expander_pin = EXAMPLE_LCD_IO_SPI_SCL,
.sda_io_type = IO_TYPE_EXPANDER,
.sda_expander_pin = EXAMPLE_LCD_IO_SPI_SDA,
.io_expander = io_expander, //handle for io_expander
};
What I’m struggling with is how to create this io_expander handle for the PCA9554 expander. I see a library on github for the TCA9554 expander (which is presumably the newer version of PCA9554? I’m not sure). But I don’t see a library for the PCA9554 expander. Any idea on how to go about this?
The ESP example I’ve got (example_rgb_avoid_tearing.c) uses the esp_lcd_panel_io_additions library, which itself uses the esp_io_expander library as a dependency. Any help would be greatly appreciated.