简体中文
English
简体中文
日本語

AddOn Display In For PoE-P4 ESP-IDF 示例程序使用教程

本教程将介绍如何编译 Unit PoE-P4 与 AddOn Display In For PoE-P4 配合使用的示例程序,用户可基于该示例进行二次开发。

1. 准备工作

  1. 环境配置:本教程基于 Ubuntu 操作系统搭建 ESP-IDF 开发环境,其他平台的编译环境搭建方式,具体请参考 ESP-IDF - ESP32-P4 上手教程
ESP-IDF 版本
本教程推荐使用 ESP-IDF 版本 v5.5.2,如果使用 v5.5.2 以上的版本, 由于 ESP-IDF MIPI DSI 底层时序计算逻辑有变动, 会导致屏幕显示闪烁。
  1. 使用 git 版本管理工具拉取 esp-idf 项目,切换至指定分支并执行脚本安装相关工具链。
注意事项
. ./export.sh 指令的 "." 与脚本之间有一个空格,该指令等同于 source ./export.sh
git clone -b v5.5.2 --recursive https://github.com/espressif/esp-idf.git
cd esp-idf
./install.sh esp32p4
. ./export.sh
  1. 除 Unit PoE-P4 与 AddOn Display In For PoE-P4 外,本案例还使用了一块 5.0 寸 分辨率为 1280 x 720 的 24P FPC ST7123 屏幕总成。若使用其他屏幕,具体接口详情请对照 Unit PoE-P4 MIPI DSI+TP+BL FPC 接口

  2. 后续教程使用到的 idf.py 指令均依赖 ESP-IDF。运行指令前,需要调用 ESP-IDF 中的 export.sh,用于激活相关环境变量。详细说明请参考 ESP-IDF - ESP32-P4 上手教程

2. 示例程序

  1. 下载 Unit PoE-P4 与 AddOn Display In For PoE-P4 配合使用的示例源码,并将其解压。

  2. 进入 M5Unit-PoE-P4-AddOn-Display-In-Example 项目文件夹,调用 esp-idf 项目中的 export.sh,用于激活相关环境变量。(请根据 esp-idf 实际路径修改指令)

cd M5Unit-PoE-P4-AddOn-Display-In-Example
. ~/.espressif/v5.5.2/esp-idf/export.sh

3. 程序编译与烧录

Unit PoE-P4 通过数据线连接至电脑,长按复位按键直至绿色指示灯亮起,松开按键后,设备即进入下载模式,等待固件烧录。

此时执行以下指令设置目标芯片、端口(请根据实际情况修改最后一条指令)、编译并烧录程序。

idf.py set-target esp32p4
idf.py build
idf.py -p /dev/ttyACM0 flash monitor

4. 开始使用

注意事项
1. 请在断电状态下插拔 AddOn Display In For PoE-P4 和 FPC 排线。
2. 由于 Windows 与 macOS 默认启用了 GPU 缩放功能,实际输出分辨率信号可能与系统中设置的分辨率不一致,从而导致程序无法正常工作:
Windows:需在显卡驱动中设置,才能正常输出目标分辨率信号显示。
macOS:需借助第三方工具(SwitchResX等)强制输出对应分辨率后,才能正常显示。

烧录完成后,按以下步骤连接设备并显示 HDMI 输入画面:

  1. 断开 Unit PoE-P4 电源。
  2. 将 AddOn Display In For PoE-P4 连接至 Unit PoE-P4 的 MIPI-CSI 接口。
  3. 使用 24P FPC 排线将 ST7123 屏幕总成连接至 Unit PoE-P4 的 MIPI-DSI 接口。
  4. 将 HDMI 信号源连接至 AddOn Display In For PoE-P4 的 HDMI 输入接口,检查 FPC 排线方向和连接器锁扣,确认无误后为 Unit PoE-P4 供电。
  5. 将实际输出分辨率信号设置为 1280 x 720 @ 60Hz
  • Win 系统以 Intel 集成显卡为例,进入 Intel® Graphics Command Center (Beta)(若无此软件请到 Microsoft Store 中下载)中点击 Display,如下图所示设置相关参数:
  • macOS 系统以 MacBook Pro 2020 为例,下载 SwitchResX 后进入软件,点击 M5DisplayIn -> Current Resolutions,在 Resolution 栏勾选 1280 x 720
  1. 设置成功后,macOS 系统下显示正常,Win 系统 活动信号模式 分辨率如下图所示即可正常显示:

该示例通过 LT6911D 将 HDMI 输入信号转换为 2-Lane MIPI-CSI YUYV422 数据,支持 1280 x 720 @ 60Hz1920 x 1080 @ 30Hz 两种输入分辨率。ESP32-P4 根据 LT6911D 检测到的有效分辨率和 MIPI-CSI Lane 速率配置 CSI 控制器,并通过 CSI DMA 将完整图像帧写入 PSRAM:输入为 1280 x 720 @ 60Hz 时显示完整画面(若输入为 1920 x 1080 @ 30Hz 时,从画面中心裁剪出 1280 x 720 区域,不进行缩放)。随后,程序使用双核 CPU 将 YUYV422 转换为 BGR565,再通过 PPA 将图像逆时针旋转 90°,最终经 2-Lane MIPI-DSI 输出至分辨率为 720 x 1280 的 ST7123P 屏幕,实现 HDMI 输入画面显示。实际 CSI DMA 捕获帧率以串口输出的 Status: DMA=... (... FPS) 日志为准,MIPI-DSI 屏幕扫描刷新率与 HDMI 输入刷新率相互独立。

  • Win
  • macOS
Page Tools
PDF
On This Page