From 464633e7a1af6301abea9a9cabad78e911aae087 Mon Sep 17 00:00:00 2001 From: virgil Date: Fri, 4 Apr 2025 15:33:17 +0800 Subject: [PATCH] Fix lcd bug (#443) * fix: fixed the issue that the LCD does not light up when some devices are turned on. * fix: fix task sys_evt stack overflow. --- main/boards/sensecap-watcher/config.h | 7 ++++++ .../sensecap-watcher/sensecap_watcher.cc | 23 +++++++++++++++++++ sdkconfig.defaults.esp32s3 | 2 ++ 3 files changed, 32 insertions(+) diff --git a/main/boards/sensecap-watcher/config.h b/main/boards/sensecap-watcher/config.h index 36ce1f7f..7375af09 100644 --- a/main/boards/sensecap-watcher/config.h +++ b/main/boards/sensecap-watcher/config.h @@ -82,6 +82,13 @@ #define DISPLAY_BACKLIGHT_PIN GPIO_NUM_8 #define DISPLAY_BACKLIGHT_OUTPUT_INVERT false +/* Touch */ +#define BSP_TOUCH_I2C_NUM (1) +#define BSP_TOUCH_GPIO_INT (IO_EXPANDER_PIN_NUM_5) +#define BSP_TOUCH_I2C_SDA (GPIO_NUM_39) +#define BSP_TOUCH_I2C_SCL (GPIO_NUM_38) +#define BSP_TOUCH_I2C_CLK (400000) + /* Settings */ #define DRV_LCD_PIXEL_CLK_HZ (40 * 1000 * 1000) #define DRV_LCD_CMD_BITS (32) diff --git a/main/boards/sensecap-watcher/sensecap_watcher.cc b/main/boards/sensecap-watcher/sensecap_watcher.cc index 4a67d926..8d4756a7 100644 --- a/main/boards/sensecap-watcher/sensecap_watcher.cc +++ b/main/boards/sensecap-watcher/sensecap_watcher.cc @@ -86,6 +86,29 @@ private: }, }; ESP_ERROR_CHECK(i2c_new_master_bus(&i2c_bus_cfg, &i2c_bus_)); + + // pulldown for lcd i2c + const gpio_config_t io_config = { + .pin_bit_mask = (1ULL << BSP_TOUCH_I2C_SDA) | (1ULL << BSP_TOUCH_I2C_SCL) | (1ULL << BSP_SPI3_HOST_PCLK) | (1ULL << BSP_SPI3_HOST_DATA0) | (1ULL << BSP_SPI3_HOST_DATA1) + | (1ULL << BSP_SPI3_HOST_DATA2) | (1ULL << BSP_SPI3_HOST_DATA3) | (1ULL << BSP_LCD_SPI_CS) | (1UL << DISPLAY_BACKLIGHT_PIN), + .mode = GPIO_MODE_OUTPUT, + .pull_up_en = GPIO_PULLUP_DISABLE, + .pull_down_en = GPIO_PULLDOWN_DISABLE, + .intr_type = GPIO_INTR_DISABLE, + }; + gpio_config(&io_config); + + gpio_set_level(BSP_TOUCH_I2C_SDA, 0); + gpio_set_level(BSP_TOUCH_I2C_SCL, 0); + + gpio_set_level(BSP_LCD_SPI_CS, 0); + gpio_set_level(DISPLAY_BACKLIGHT_PIN, 0); + gpio_set_level(BSP_SPI3_HOST_PCLK, 0); + gpio_set_level(BSP_SPI3_HOST_DATA0, 0); + gpio_set_level(BSP_SPI3_HOST_DATA1, 0); + gpio_set_level(BSP_SPI3_HOST_DATA2, 0); + gpio_set_level(BSP_SPI3_HOST_DATA3, 0); + } esp_err_t IoExpanderSetLevel(uint16_t pin_mask, uint8_t level) { diff --git a/sdkconfig.defaults.esp32s3 b/sdkconfig.defaults.esp32s3 index bdd0b2a2..021d39f7 100644 --- a/sdkconfig.defaults.esp32s3 +++ b/sdkconfig.defaults.esp32s3 @@ -18,3 +18,5 @@ CONFIG_ESP32S3_DATA_CACHE_64KB=y CONFIG_ESP32S3_DATA_CACHE_LINE_64B=y CONFIG_SR_WN_WN9_NIHAOXIAOZHI_TTS=y + +CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=4096