Back to Xiaozhi Esp32

LCD Wiki ES3C35P

main/boards/lcdwiki-es3c35p/README.md

2.4.24.6 KB
Original Source

LCD Wiki ES3C35P

3.5 寸 ESP32-S3 智能显示模块

资料文档: https://www.lcdwiki.com/zh/3.5inch_ESP32-S3_Display

产品规格

项目参数
SKUES3C35P (带喇叭) / ES3C35P-NS (无喇叭)
主控芯片ESP32-S3 Xtensa LX7 双核 240MHz
存储16MB QSPI Flash + 8MB OPI PSRAM (N16R8)
无线Wi-Fi 2.4GHz 802.11b/g/n, 蓝牙 5.0 BLE
工作电压5V (USB Type-C 供电)
电池支持 3.7V 锂电池, TP4054 充电管理

显示屏

项目参数
屏幕类型3.5" IPS TFT
分辨率320×480 像素
色彩65K RGB565
驱动 ICST77922 TDDI (触显一体)
显示接口QSPI (接 ESP32-S3)
触摸屏电容触摸 (全贴合), I2C 0x55
背光PWM 控制, 亮度 300 cd/m²

音频

项目参数
编解码芯片ES8311
功放FM8002E
麦克风MEMS 麦克风 (LMA2718B381)
音频接口I2S (双工: 输入+输出)
采样率输入/输出 24000Hz

外设

项目型号/接口
RGB LEDWS2812B ×1 (IO40)
MicroSDSDIO 4-bit
充电管理TP4054, 电池 ADC (IO8)
按键BOOT (IO0), RESET (EN)

完整引脚分配

GPIO功能说明
IO0BOOT 按键开机按下=下载模式, 运行中=切换对话
IO1PA 使能低电平使能功放
IO2SD D2SDIO DATA2
IO3SD D3SDIO DATA3
IO4SD CMDSDIO 命令
IO5SD CLKSDIO 时钟
IO6SD D0SDIO DATA0
IO7SD D1SDIO DATA1
IO8电池 ADC电压检测
IO9LCD D3QSPI 数据 D3
IO10LCD CSQSPI 片选 (低有效)
IO11LCD D0QSPI 数据 D0
IO12LCD CLKQSPI 时钟
IO13LCD D1QSPI 数据 D1
IO14LCD D2QSPI 数据 D2
IO15I2S DOUT音频输出
IO16I2S DIN音频输入 (MEMS 麦克风)
IO17I2S MCLKI2S 主时钟
IO18I2S BCLKI2S 位时钟
IO21I2S WSI2S 左右声道
IO38I2C SDA音频+触摸共用
IO39I2C SCL音频+触摸共用
IO40RGB LEDWS2812B 单线
IO41背光PWM 高电平点亮
IO43UART RXD0串口/普通 IO
IO44UART TXD0串口/普通 IO
IO45GPIO45扩展 IO
IO46GPIO46扩展 IO
IO47触摸 INT触摸中断 (低有效)
IO48触摸 RST触摸复位 (低复位)
ENLCD RST与 ESP32-S3 共用

显示 QSPI 引脚组

CS    = IO10          D0 = IO11
CLK   = IO12          D1 = IO13
                      D2 = IO14
                      D3 = IO9

I2C 设备地址

设备地址总线
ES8311 音频ES8311_CODEC_DEFAULT_ADDRI2C0
ST77922 触摸0x55I2C0 (共享)

编译

bash
# 一键编译打包 (推荐)
python scripts/build.py lcdwiki-es3c35p --zip

# 或手动编译
idf.py set-target esp32s3
idf.py menuconfig
# Xiaozhi Assistant -> Board Type -> LCD Wiki ES3C35P (3.5寸 ESP32-S3)
idf.py build flash monitor

关键配置说明

显示 ST77922 QSPI

配置项原因
DISPLAY_WIDTH/HEIGHT320×480原生竖屏分辨率
DISPLAY_RGB_ORDERBGR面板实际色彩顺序
SPI_DMA_CH_AUTO + max_transfer_sz51KBSPI 总线 DMA,缓冲在 SRAM 避免 PSRAM 中转
buff_dma=1, buff_spiram=0SRAM DMASRAM 可直接 DMA 访问,无需中转缓冲
buffer_sizewidth×80 (51KB)部分刷新缓冲
st77922_rounder_cbx 坐标 4 对齐ST77922 硬件要求,否则花屏

触摸 ST77922 内置

配置项
I2C 地址0x55
寄存器位宽16 位
单点数据7 字节
读取方式必须一次性读 7 × max_points 字节清空缓冲

音频 ES8311

配置项
PA 引脚IO1
PA 极性低电平使能 (pa_inverted=true)
I2C 总线I2C0 (与触摸共享 IO38/39)
采样率24000Hz 输入/输出

已知限制

  1. ST77922 不支持 swap_xy — 只能使用原生 320×480 竖屏
  2. ST77922 要求 x 坐标 4 对齐 — 已通过 rounder_cb 自动处理
  3. 触摸无 DMA/中断 — 使用轮询方式读取,约 30fps
  4. LVGL 缓冲在 SRAM — 占用约 51KB,剩余 ~180KB 给其他模块

文件结构

main/boards/lcdwiki-es3c35p/
  config.h          — 引脚/硬件配置宏
  config.json       — 构建目标 (esp32s3, 16MB Flash)
  lcdwiki-es3c35p.cc — 板级初始化 (QSPI 显示 + I2C 触摸 + ES8311 音频 + LED)
  README.md         — 本文档