同じボードでもコントローラが違うことがある理由
低価格のディスプレイボードは、オープンマーケットで調達したパネルで作られています。ロットの調達先が変わるとコントローラも変わることがあり、ボード名、基板、ピン配置は同じままです。ESP32-2432S028R(Cheap Yellow Display)と ESP32-2432S024 には、どちらも ILI9341 版と ST7789 版があります。
症状で見分ける
ILI9341 の設定で見える症状 | 考えられる原因 | 対処 |
|---|---|---|
白画面または何も表示されず、バックライトは点灯 | コントローラが ST7789 | ST7789 ドライバに切り替える |
画像は出るが色がネガのよう | ST7789 パネルは反転が必要 | 反転を切り替える( |
赤と青が入れ替わる | 色順 | 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 ドライバ | | |
LovyanGFX | | |
ESP-IDF | | |
反転 | 通常オフ | オンのことが多い |
両方のテンプレートは 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 がなければ症状で見分けてください。

