STM32Cube は RGB LCD を駆動するように LTDC を構成します

Punctual Atom Polaris STM32H750 開発ボードを使用して、Punctual Atom 4.3 インチ RGB LCD を駆動します。

1.LTDCの紹介

LTDC は DPI (ディスプレイ ピクセル インターフェイス、ディスプレイ ピクセル インターフェイス、RGB インターフェイスとも呼ばれる) に属し、MCU が TFT スクリーンを駆動するために使用できます。同時に、グラフィックスアクセラレーション表示用のDMA2Dも一般的に搭載されています。

STM32H750 は最大 RGB888 (1600W カラー) をサポートしており、信号ラインは次のとおりです。

RGB888 は、RGB666 および RGB565 と下位互換性があります。

RGB 画面には通常、DE モードと HV モードの 2 つの駆動モードがあります。DE モードは、DE 信号を使用して有効なデータを決定します (DE が High/Low の場合、データは有効です)。一方、HV モードでは、スキャンされた行と列を示すために行同期とフィールド同期が必要です。

2. STM32 LTDC の説明

STM32H750 の LTDC には次の特性があります。

⚫ 24 ビット RGB パラレル ピクセル出力、ピクセルあたり 8 ビット データ (RGB888)

⚫ 専用 FIFO を備えた 2 つの表示レイヤー (FIFO 深さ 64x32 ビット)

⚫ カラー ルックアップ テーブル (CLUT) をサポート、レイヤーごとに最大 256 色 (256x24 ビット)

⚫ さまざまな表示パネルのプログラム可能なタイミング

⚫ プログラム可能な背景色

⚫ HSync、VSync、およびデータイネーブル (DE) 信号の極性をプログラム可能

⚫ レイヤーごとに最大 8 つのカラーフォーマットから選択可能: ARGB8888、RGB888、RGB565、ARGB1555、ARGB4444、L8 (8 ビット輝度または CLUT)、AL44 (4 ビットアルファ + 4 ビット輝度)、AL88 (8 ビット)アルファ+8

ビット輝度)

⚫ 各チャンネルの下位ビットは擬似ランダムジッター出力を使用します (赤、緑、青のジッター幅は 2 ビット)

⚫ アルファ値(ピクセルごとまたは定数ごと)を使用した 2 つのレイヤー間の柔軟なブレンド

⚫クロマキー(透明色)

⚫ プログラム可能なウィンドウの位置とサイズ

⚫ 薄膜トランジスタ (TFT) カラーディスプレイをサポート

⚫ AHB マスターインターフェイスは 16 ワードのバーストをサポートします

⚫ 最大 4 つのプログラム可能な割り込みイベント

例証します:

ARGB8888 (4B): RGB888 に基づいて 8 ビットの値 (アルファ) が追加されます。0x00 は完全に透明を意味し、0xFF は不透明を意味します。

ARGB1555 (2B): RGB565 に基づいて 1 ビットが切り取られ、A 値として使用されます。0 は完全に透明を意味し、1 は不透明を意味します。

STM32H750 の LTDC は背景層、第 1 層、第 2 層の合計 3 層あり、このうち背景層は単色 (つまりモノクロ) のみ、第 1 層と第 2 層は情報の表示に使用できます。2 つのレイヤーにはそれぞれ FIFO があり、第 1 レイヤーと第 2 レイヤーに表示されるコンテンツを保存するには 2 つのビデオ メモリ バッファを開く必要があります。LTDC はバッファ データを FIFO にフェッチし、混合ユニットは 3 つのレイヤーを混合して表示します。その関係は次のとおりです。

図からわかるように、2 番目のレイヤーが最上部にあり、背景レイヤーが最下位にあります。混合ユニットは、最初に 1 番目のレイヤーと背景レイヤーを混合し、次に 2 番目のレイヤーの混合結果を生成します。 1層目と2層目を再度混合し、混合完了後にLCDディスプレイに送信します。

STM32 LTDC には、外部 SDRAM をリンクしてビデオ メモリ データを迅速に読み取って保存するための AXI インターフェイスが備わっています。ビデオ メモリの計算: 4.3 インチ 800*480 LCD を使用する場合、RGB565 (16 ビット) を例に取ります。ピクセルは 16 ビット (2 バイト)、単層ビデオ メモリ バッファには 800*480*2 = 768000 バイト = 750 KB; RGB888 (24 ビット) を例にとると、ピクセルは 24 ビット (3 バイト) であり、マイクロコントローラーには 24 ビットの定義はなく、32 ビット (4 バイト) のみが使用でき、単層ビデオ メモリ バッファには 800*480 *4 = 1536000 バイト = 1500 KB

3. LTDC の主要なタイミング パラメータ

上記パラメータのうち、HSW は HPW、VSW は VPW とも呼ばれます 詳細は LCD に対応するマニュアルの説明を参照してください。

この記事では、punctual atom の 4.3 インチ RGB スクリーンを使用しており、その正しい LTDC 動作パラメータは次のとおりです。

上図からわかるように、画面クロックの最大動作周波数は50MHz、従来使用では30MHzとなっています。 LCDリフレッシュレート = LTDCクロック動作周波数 / ((HSW + HBP +HFP -1) * (VSW + VBP +VFP -1))、30Mhz は 60Hz のリフレッシュ レートに近いです。

HSW(HPW) = 48 ピクセル

HBP = 88 ピクセル

HFP = 40 ピクセル

VSW(VPW) = 3 ライン

VBP = 32 行

VFP = 13 ライン

アクティブな幅 = 800 ピクセル

アクティブな高さ = 480 行

4. コード例

1. ハードウェア環境: punctual atom Polaris STM32H750 開発ボード、punctual atom 4.3 インチ RGB LCD

2. ハードウェア接続図:

3. エンジニアリング構成

このプロジェクトでは、LTDC + SDRAM + DMA2D ペリフェラルを使用します。(SDRAM の使用については、SDRAM ドライバー コードを参照してください)

PB5 は LCD バックライト ピンです。コード内で設定してオンにする必要があります。そうしないと、LCD は常に黒になります。

LTDC のピンの反転速度を非常に高い値に変更することに注意してください。

LTDC の動作パラメータは上記に記載されているので、入力するだけです。同時に、ここで特定の背景色が必要な場合は、赤、緑、青のパラメータ (範囲 0 ~ 255) を変更する必要があります。たとえば、赤 = 255 に設定すると、その後画面が赤くなります。 LTDC の電源が入っており、正常に実行されています。

次にレイヤーを設定します。現在レイヤーは 1 つだけ設定されており、表示範囲は (0, 0) ~ (800, 480)、色は RGB565、最初のレイヤーと背景の混合透明度は 255 (不透明)、同時に固定された透明度は混合され、最初のレイヤーのデフォルト色の透明度は 0 (基本的に役に立たず、混合された透明度の影響を受けます)、最初のレイヤーの RGB デフォルト色は純粋な青、およびビデオ メモリは 0xC0000000 (ペリフェラル インターフェイス SDRAM 1 のマッピング アドレスは 0xC0000000 であるため)、ビデオ メモリ空間は 800 * 480 ピクセルです (ここでの単位はピクセルです。実際のサイズについては上記の計算方法を参照してください)。

LTDC 割り込みを開かないでください。

DMA2D では、レジスタを定時アトムとして使用することを推奨しています。LTDC には、Memory to Memory (メモリからメモリ) と Register to Memory (レジスタからメモリ) の 2 つの新しい形式が同時に存在するためです。したがって、DMA2D をオンにするだけです。

ここで DMA2D 割り込みを設定する必要があることに注意することが重要です。設定しないと、DMA2D を使用してデータを転送するときに転送が完了するまで待機することになります。

クロック構成を図に示します。

構成が完了したら、「生成」をクリックします。

4. コードの追加

SDRAM には初期化コードを追加する必要があります。(SDRAM の使用については、SDRAM ドライバー コードを参照してください)

main.c ファイルで、MX_LTDC_Init(); 関数の後に次のコードを追加します。

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5,GPIO_PIN_SET); //バックライトをオンにする

SDRAM ドライブが成功している限り、「ダウンロード」をクリックすると、LCD が青色に変わり、LTDC ドライブが成功したことを示します。(青は上の最初のレイヤーのデフォルトの色設定から取得されます。ここを変更することで別の表示色を取得できます)。

おすすめ

転載: blog.csdn.net/weixin_39457767/article/details/131898271