ESP-IDFを使ってみる

ILI9341 SPI TFT


こちらにesp- idf用のSPI TFTライブラリが公開されています。
作者の方は、OrangePi用の最初のOSを公開された方です。
サポートするドライバーはILI9341, ILI9488, ST7789V, ST7735となっているので、ILI9341を使っているM5Stackや、
ST7735Sを使っているM5StickCでも使えるかもしれません。

<追記>
M5StickCはGRAMの使い方が特殊なので動きませんでした。
</追記>

そこで、手元に有った2.8インチのILI9341 TFTで試してみました。




デモプログラムはSPIFFSを使います。
そこで、menuconfigでFlash Sizeを4Mに変更します。




次にTFTのタイプを指定します。




今回は無印のTFTを使ったのでNoneを選択しました。
ESP32とILI9341は以下のGPIOで接続しました。
ILI9341 ESP32
Vcc 3.3V
GND GND
CS GPIO5(※)
RESET GPIO2(※)
D/C GPIO26(※)
MOSI GPIO23
SCK GPIO18
LED 3.3V
MISO GPIO19

(※)任意のピンを使うことができます。
「ESP32_TFT_library/components/tft/tftspi.h」で使用するピンを変更可能です。


「ESP32_TFT_library/components/tft/tftspi.c」に1行追加しないと、コンパイルが通りません。
#include <string.h>
#include "tftspi.h"
#include "esp_system.h"
#include "freertos/task.h"
#include "esp_heap_caps.h"
#include "soc/spi_reg.h"
#include "driver/gpio.h" // 追加

一般的によく使われる16-bit/pixel(65K color)ではなく、18-bit/pixel(262K color)を使っているので、非常にきれいな表示です。

続く
....