本文へスキップ
Display Engineer
トラブルシューティング

ILI9341 と ST7789:ディスプレイのコントローラを見分ける方法

同じ名前で販売されているボードでも、ILI9341 と ST7789 のどちらのコントローラが載っているかは異なります。症状や ID レジスタの読み出しで見分ける方法と、白画面や色のおかしさを直す設定を解説します。

DEDisplay Engineer Applications Team · ディスプレイ アプリケーションエンジニアエンジニア確認済み(2026年10月11日)

同じボードでもコントローラが違うことがある理由

低価格のディスプレイボードは、オープンマーケットで調達したパネルで作られています。ロットの調達先が変わるとコントローラも変わることがあり、ボード名、基板、ピン配置は同じままです。ESP32-2432S028R(Cheap Yellow Display)と ESP32-2432S024 には、どちらも ILI9341 版と ST7789 版があります。

症状で見分ける

ILI9341 の設定で見える症状

考えられる原因

対処

白画面または何も表示されず、バックライトは点灯

コントローラが ST7789

ST7789 ドライバに切り替える

画像は出るが色がネガのよう

ST7789 パネルは反転が必要

反転を切り替える(TFT_INVERSION_ON)

赤と青が入れ替わる

色順

BGR 順に設定する(TFT_RGB_ORDER TFT_BGR)

画像が反転またはずれる

回転 / メモリアクセスの設定

回転を変更する(MADCTL)

すべて真っ暗

バックライトピンの誤りまたは別用途での使用

バックライトの GPIO を確認する

設定は1 つずつ変更し、比較用に動作実績のある例を手元に残しておいてください。

ID を読み出して見分ける

ボードがパネルの MISO 線を接続していれば、推測ではなくコントローラ ID を読み出せます。ILI9341 は Read ID4 コマンド(0xD3)に 0x9341 を返します。TFT_eSPI では tft.readcommand8(0xD3, n) でレジスタの n バイト目を読み出せます。0x93 と 0x41 が得られなければ、ST7789 ドライバを試してください。MISO のないボードは読み出せないため、症状の表を使ってください。

異なる設定

項目

ILI9341

ST7789

TFT_eSPI ドライバ

ILI9341_DRIVER / ILI9341_2_DRIVER

ST7789_DRIVER

LovyanGFX

Panel_ILI9341

Panel_ST7789

ESP-IDF

espressif/esp_lcd_ili9341

esp_lcd_new_panel_st7789()(組み込み)

反転

通常オフ

オンのことが多い

両方のテンプレートは ILI9341 と ST7789V のページにあります。

製品でこれを避けるには

製品には、データシートにコントローラが明記され、サプライヤーが生産ロットごとにそれを固定しているモジュールを指定し、ロット間でファームウェアが動かなくなるのを防いでください。当社の 2.8 インチ 240×320 SPI モジュールは ST7789V に固定されています。サンプルは 1 個から。

よくある質問

ILI9341 のコードは ST7789 で動きますか?

確実には動きません。どちらも 240×320 のコントローラですが初期化シーケンスが異なるため、ILI9341 のコードに手を加えるのではなくドライバを切り替えてください。

ST7789 ディスプレイの色が反転するのはなぜですか?

多くの ST7789 パネルはディスプレイ反転(INVON)が必要です。TFT_INVERSION_ON を有効にするか、tft.invertDisplay(true) を呼び出してください。

コントローラ ID はどうやって読み出しますか?

MISO を接続した状態でレジスタ 0xD3(Read ID4)を読み出します。ILI9341 なら 0x93 0x41 を返します。MISO がなければ症状で見分けてください。

このガイドで紹介したモジュール

どのディスプレイが設計に合うか迷っていませんか?

サイズ、インターフェース、ホストプロセッサをお知らせください。ディスプレイエンジニアが 12 時間以内に、データシートと初期化コード付きで 2〜3 件の候補をお返しします。サンプルは 1 個から。