ESP-IDF Quick Start

AddOn Display In For PoE-P4 ESP-IDF サンプルプログラム使用チュートリアル

本チュートリアルでは、Unit PoE-P4 と AddOn Display In For PoE-P4 を組み合わせて使用するサンプルプログラムのビルド方法を紹介します。本サンプルを基に二次開発を行うことができます。

1. 事前準備

  1. 環境構築:本チュートリアルは Ubuntu OS 上で 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 に設定します。
  • Windows では Intel 内蔵グラフィックスを例に、Intel® Graphics Command Center (Beta)(インストールされていない場合は Microsoft Store からダウンロードしてください)を開き、Display をクリックして、以下の図のように関連パラメータを設定します:
  • macOS では MacBook Pro 2020 を例に、SwitchResX をダウンロードして起動し、M5DisplayIn -> Current Resolutions をクリックして、Resolution 欄で 1280 x 720 を選択します:
  1. 設定が正常に適用されると、macOS では正常に表示されます。Windows では、アクティブ信号モードの解像度が以下の図のように表示されていれば正常に表示できます:

本サンプルでは、LT6911D を使用して HDMI 入力信号を 2-Lane MIPI-CSI YUYV422 データに変換し、1280 x 720 @ 60Hz1920 x 1080 @ 30Hz の 2 種類の入力解像度に対応します。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 入力のリフレッシュレートとは独立しています。

  • Windows
  • macOS
Page Tools
PDF
On This Page