开始前适用开发板:ESP32-P4 + ESP32-C5 · 开发框架:ESP-IDF
适用开发板:ESP32P4-C5 4.3 寸触摸屏
工程:P4_C5_4.3_Firmware/04.advanced.p4c5_board_test
target:esp32p4
用途:出厂/买家 约 30 分钟验板
学习时长:约 25 分钟 · 难度:★★☆☆☆
学习目标
完成本节后,你将能够:
- 使用综合测试工程验证 P4C5 开发板全部关键硬件
- 理解 P4C5 板上各外设的功能与连接关系
- 按照正确顺序高效完成验板流程
- 排查常见硬件问题
Korvo 验板见 korvo_board_test,UI 和硬件完全不同。
1. 这个例子在干嘛
P4C5 的工程模式——赛博风格 NODE P4 主界面 + 8 个功能磁贴,一个程序覆盖所有关键硬件测试。比逐个例程烧录更快判断「板子是否好」。
┌──────────────────────────────────────────────┐
│ NODE P4 主界面(赛博风格) │
│ 健康度指示 · 频谱动画 · 时钟 │
├──────┬──────┬──────┬──────┬──────┬──────┬────┤
│ MIPI │ USB │ 按键 │ IMU │ 硬件 │Wi-Fi │语音│
│ CSI │ UVC │ │6轴 │ 检测 │ 扫描 │唤醒│
│ │ │ │ │ │(C5) │ │
└──────┴──────┴──────┴──────┴──────┴──────┴────┘
+ About 页
2. 编译烧录
cd P4_C5_4.3_Firmware\04.advanced.p4c5_board_test
idf.py set-target esp32p4
idf.py build flash monitor
说明:
- 无需 menuconfig 配置 Wi-Fi(扫描页为被动扫描,不需要密码)
- CSI/UVC 需对应硬件已物理连接
- 首次编译时间较长(组件多)
3. 八大测试页详解
3.1 MIPI CSI 摄像头
| 测试项 | 合格标准 | 不合格表现 |
|---|---|---|
| SC2336 CSI 预览 | 实时画面清晰流畅 | 黑屏/花屏/无帧率 |
| 色彩还原 | 颜色正常 | 偏色(字节序问题) |
前置:SC2336 摄像头模组 FPC 排线已正确连接。
3.2 USB UVC 摄像头
| 测试项 | 合格标准 | 不合格表现 |
|---|---|---|
| USB Host 枚举 | 识别到 UVC 设备 | 无设备 |
| UVC 预览 | 画面显示 | 黑屏 |
前置:
- USB 摄像头插入 Type-A 口
- GPIO20 升压 必须开启(为 USB 口提供 5V)
- 枚举较慢,等待 5~10 秒
3.3 按键
| 测试项 | 合格标准 |
|---|---|
| 板载按键响应 | 按下有 UI 反馈和串口输出 |
3.4 LSM6DS3 IMU 六轴
| 测试项 | 合格标准 | 测试方法 |
|---|---|---|
| 加速度计 | X/Y/Z 值随倾斜变化 | 缓慢倾斜板子 |
| 陀螺仪 | 角速度值随旋转变化 | 快速旋转板子 |
| 静止读数 | Z 轴约 1g(9.8m/s²) | 板子水平放置 |
3.5 硬件检测
汇总扫描所有 I2C 设备和关键外设状态:
| 预期检测到的设备 | 说明 |
|---|---|
| AXP2101 | PMIC 电源管理 |
| ST7123 | 触摸 IC |
| ES8311 | 音频 codec(若有) |
| ES7210 | 麦克风 ADC(若有) |
| LSM6DS3 | IMU 六轴 |
全部绿色 = 硬件完好;红色项 = 对应外设通信异常。
3.6 Wi-Fi 扫描(C5 协处理器)
| 测试项 | 合格标准 | 不合格表现 |
|---|---|---|
| C5 启动 | 10~20秒后就绪 | 超时无响应 |
| AP 扫描 | 列出周围 Wi-Fi | 列表为空 |
重要:进入 Wi-Fi 扫描页后需等待 10~20 秒 让 C5 协处理器启动完成。第一次进入若为空,退出再进一次。
3.7 语音唤醒
| 测试项 | 合格标准 | 不合格表现 |
|---|---|---|
| ES8311/ES7210 初始化 | 页面正常显示 | 红屏报错 |
| 录音播放 | 能录并回放 | 无声 |
| 唤醒词检测 | 说唤醒词有反应 | 无反应 |
红屏含义:音频 codec I2C 通信失败,检查音频排线/连接器。
3.8 About 页
显示固件版本、编译信息、板级信息,确认烧录了正确版本。
4. 推荐验板顺序
Step 1: 上电 → 主界面是否正常显示(MIPI + 背光 + PMIC)
Step 2: 触摸任意磁贴 → 能否点击进入(触摸 IC)
Step 3: 硬件检测 → 所有 I2C 设备是否识别(整体健康度)
Step 4: MIPI CSI → 有模组则检查画面(CSI 接口)
Step 5: Wi-Fi 扫描 → 等 C5 就绪后查看 AP 列表(C5 通信)
Step 6: UVC → 接 USB 摄像头 + GPIO20 升压(USB Host)
Step 7: IMU → 晃动板子看数值变化(I2C + IMU)
Step 8: 语音 → 非红屏则测录放/唤醒(Audio 子系统)
Step 9: 串口全程无 panic/reboot(系统稳定性)
5. 关键文件
| 文件 | 作用 | 重点关注 |
|---|---|---|
main/app_main.c | 入口、BSP 初始化 | 启动自检流程 |
main/page_*.c | 各磁贴页面 UI 与测试逻辑 | 按页面名对应 |
main/wifi_scanner.c | C5 Wi-Fi 扫描接口 | esp_hosted 通信 |
main/app_csi_camera.c | MIPI CSI 摄像头驱动 | SC2336 配置 |
main/lsm6ds3.c | IMU 六轴传感器驱动 | I2C 读写 |
6. P4C5 硬件连接概览
ESP32-P4 主芯片
┌──────────────┐
MIPI DSI ────→│ │←──── MIPI CSI (SC2336)
(ST7102) │ │
│ │←──── USB Host (UVC 摄像头)
I2C Bus ─────→│ │ GPIO20 升压 5V
├── AXP2101 │ │
├── ST7123 │ │←──── SDIO/SPI
├── ES8311 │ │ ↓
├── ES7210 │ │ ┌─────────┐
├── LSM6DS3 │ │ │ ESP32-C5│ Wi-Fi 协处理器
└── TCA9554 └──────────────┘ └─────────┘
7. 验收标准快速检查清单
| 检查项 | 合格 ✓ | 不合格 ✗ |
|---|---|---|
| MIPI 屏亮起,主界面正常 | ✓ | 不亮/花屏 |
| 触摸操作正常 | ✓ | 无响应/偏移 |
| 硬件检测全绿 | ✓ | 有红色项 |
| CSI 摄像头有画面 | ✓ | 黑屏(需有模组) |
| Wi-Fi 能扫描到 AP | ✓ | 列表为空(等足时间后) |
| IMU 数值变化 | ✓ | 全零/无变化 |
| 串口无 panic | ✓ | 循环重启 |
全部 ✓ → 硬件完好,可以开始学习!
8. 常见问题与排查
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| 主界面不亮 | AXP2101/MIPI 排线 | 检查排线连接;串口看 I2C 日志 |
| Wi-Fi 列表一直为空 | C5 未就绪 | 等待 20 秒;退出再进;检查 C5 供电 |
| CSI 黑屏 | FPC 排线松/反 | 重新插拔;硬件检测页确认 sensor |
| UVC 无设备 | GPIO20 未升压 | 确认升压使能;换摄像头/线 |
| 语音红屏 | ES8311/ES7210 I2C 失败 | 非致命——检查音频排线 |
| IMU 全零 | LSM6DS3 I2C 异常 | 硬件检测页确认设备存在 |
| 触摸偏移 | 校准参数 | 先确认 mipi_lcd_touch 正常 |
9. 动手改造建议
- 添加温度页:如果外接了温度传感器,增加显示页面
- 导出测试报告:通过 MQTT 将所有硬件测试结果上报到服务器
- 自动化测试:不需要人工点击,自动遍历所有页面并串口输出 PASS/FAIL
- 学习多页面 UI:
page_*.c的磁贴式导航是一个很好的 LVGL 架构参考
10. 下一步
验板通过后,从以下起点开始你的 P4C5 开发之旅:
| 方向 | 推荐起点 | 说明 |
|---|---|---|
| 显示入门 | mipi_lcd_touch | 理解 MIPI 初始化 |
| 网络入门 | wifi_station | C5 Wi-Fi 连接 |
| 完整学习路线 | P4C5 学习指南 | 系统化学习 |
酷世DIY · Kevincoooool