Files
inmp441recondtest/README.md
DESKTOP-PUHFO60\dsx2016 313a6c4747 Document explicit-only REC/PLAY gate and refresh VERSION.
Add usage steps for long-press touch, BOOT, and line serial;
point firmware notes at the no-auto-record policy.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-27 23:07:56 +08:00

4.3 KiB
Raw Permalink Blame History

CYD INMP441 录音

ESP32 Cheap Yellow Display + INMP441(I2S)→ microSD WAV 录音,支持 DAC 回放。

默认 2.8" ESP32-2432S028R;可选 3.5" ESP32-3248S035C(cyd_35r)。
引脚约定见同目录 CYD_PROJECT_GUIDE.md;麦克风接线参考 inmp441test。

硬件

项目 2.8" · 2432S028R 3.5" C · 3248S035C
屏驱 ILI9341 ST7796
触控 XPT2046 SoftSPI(见下) GT911 Wire1(SDA33/SCL32/INT21/RST25)
背光 TFT_BL GPIO21 GPIO27
INMP441 WS GPIO22(CN1/P3) GPIO22
INMP441 SCK GPIO27(CN1) GPIO21(CN1;勿占 27=BL)
INMP441 SD GPIO35(P3,仅输入) GPIO35
microSD CS5 / SCK18 / MISO19 / MOSI23 同左
喇叭 GPIO26(DAC2,P4) 同左

接线:

INMP441 CYD
VDD 3.3V(CN1)
GND GND
L/R GND(左声道,勿悬空)
WS IO22
SCK IO27(2.8)/ IO21(3.5)
SD IO35(P3)

不要接 5V;不要占用背光脚。I2S 需要三根信号线(22 + 27/21 + 35)。
3.5C:SCK=GPIO21 与 GT911 INT 同脚;固件先完成触控选址,再把 21 交给 I2S,触控仅轮询。

功能

  • 触控 REC / STOP:录制 16 kHz / 16-bit 单声道 PCM WAV 到 /rec/Rxxxx.WAV
  • 最长约 120 秒(自动停)
  • 实时电平条(近似 dB,与 inmp441test 同一换算)
  • PLAY / STOP:用板载喇叭(GPIO26)回放最近一条录音
  • 需插入 FAT32 microSD
  • 备用:板载 BOOT 键切换 REC;串口整行 r / rec / p / play(不会吃 USB 杂字节)
  • 绝无自动开录:无触控按钮 / BOOT / 串口整行命令;上电 4s 内锁死

2.8" 触控说明(重要)

本板 XPT2046 不在硬件 SPI 上(CLK25 / MOSI32 / MISO39 / CS33 / IRQ36),与 microSD 的 VSPI 冲突。固件使用 vendored lib/CYD28_Touchscreen(hexeguitar SoftSPI bit-bang),把 VSPI 留给 SD。

项 做法
总线 SoftSPI,读触控前拉高 SD_CS
坐标 raw ADC → 横屏 UI 320×240;X/Y 均反向 以对齐 LVGL ROTATION_270 画面
点击 只命中画出的 REC / PLAY;按住 ≥120ms 且指头不滑出按钮才算
防抖 z≥70 且连续 5 采样;2 s 冷却;上电 4 s 动作锁
备用 BOOT(稳定按下)/ 串口整行命令

参考:RNT CYD + SoftSPI + SD、hexeguitar/CYD28_Touchscreen。

使用

  1. 插入 FAT32 microSD,上电后等约 4 秒(动作锁结束)再操作。
  2. 录音:用力按住屏幕下方红色 REC ≥0.12s 再松开;再按一次停止并保存 /rec/Rxxxx.WAV。
  3. 播放:同样方式按 PLAY(需已有录音)。
  4. 备用:BOOT 键开关录音;串口 115200 发送整行 rec / play(或 r / p)后回车。
  5. 固件不会在无触控、无 BOOT、无串口命令时自行开录或开播。

构建与烧录

依赖 PlatformIO。

pio run -e cyd_28r -t upload          # 2.8"
pio run -e cyd_35r -t upload          # 3.5C
pio device monitor -b 115200

预编译固件

板型 目录
2.8" firmware/cyd_28r/
3.5" firmware/cyd_35r/
cd firmware\cyd_28r   # 或 cyd_35r
.\flash.ps1

重新打包:

.\firmware\export_from_build.ps1
.\firmware\export_from_build.ps1 -Env cyd_35r

项目结构

platformio.ini
include/pins.h lv_conf.h touch.h sdcard.h recorder.h player.h
src/main.cpp touch.cpp sdcard.cpp recorder.cpp player.cpp
lib/CYD28_Touchscreen/          # 2.8 SoftSPI 触控(与 SD 隔离)
scripts/exclude_lvgl_asm.py
firmware/
README.md

变更记录

日期 说明
2026-10-27 初版:INMP441 → microSD WAV 录音 + DAC 回放;双板 cyd_28r / cyd_35r
2026-10-27 2.8 触控:SoftSPI + XY 反向校准、按钮命中区、1.5s 冷却;消除误触反复录音
2026-10-27 显式操作门闩:上电锁 4s、触控长按确认、BOOT 防抖、串口整行;禁止无操作自启录音