はじめに
ESP32S3開発ボード向けの『170x320 1.9"TFTカラーLCD&SD-Card』ボードを設計したのでメモっておく。
SDカードソケットとプッシュスイッチも4つ搭載した。反面、TXD/RXDやUSB-/+を除き、ほぼすべてのGPIOを使用しているので、空きは、IO3, IO45, IO46, IO48だけとなっている。
特徴
- LCDは、8ビットパラレル接続とSPI接続をプログラムにより選択可能
- LCDのFFC(0.5mmピッチ30p)を直接ハンダ付できるパッドを有す(FFCコネクタも実装可)
- microSDカードソケットは、カード挿入検出可能
- スルーホールは約φ7.8mmと細くしているので、開発ボードのピンヘッダーに刺して抜けにくい
対象としている開発ボード
ESP32S3 |
左に示すピンアウトの並びであるESP32S3ボード (ボード幅は10ピンか11ピン幅) |
ボード幅 |
---|---|---|
Espressif Systems ESP32-S3-DevKitC-1 |
11ピン幅 | |
VCC-GND YD-ESP32-S3 |
11ピン幅 | |
Booth@74th ESP32-S3 USB-C 開発ボードキット |
10ピン幅 |
パーツ紹介
1) 170x320 1.9インチ TFTカラー液晶ディスプレイ
使用したLCDは〔AliExpress〕で購入
2) 0.5ミリピッチ30ピンFFCコネクタ
使用したFFCコネクタ〔マルツ〕で購入可能
30FLZ-SM2-TB-LF-SN |
---|
データシート |
3) マイクロSDカードソケット
使用したマイクロSDカードソケットは〔aitendo〕で購入
DM3AT-SF-PEJM5 |
---|
データシート |
4) プッシュスイッチ
使用したプッシュスイッチは〔AliExpress〕で購入
3x4mmプッシュボタン |
---|
PCB
このPCBは、開発ボードの裏側に取り付ける想定で、11ピン幅の開発ボードと同じサイズで設計した。また、10ピン幅の開発ボードにも使用できるように10ピン幅と11ピン幅のスルーホールを併設。
PCBイメージ図
おもて | うら |
---|---|
LCD, スイッチx4 | FFCコネクタ, SDカードソケット |
出来上がったPCB
おもて | うら |
---|---|
実装後
おもて | |
---|---|
うら |
ピンソケットをハンダ付けする前の撮影を忘れた。
ESP32S3開発ボードに装着した様子
背の低いピンソケットを使えば もっと格好よくなるはず(手持ちに無かった)。取り外しの必要がないなら、ピンヘッダに直接ハンダ付けしてもよい。
ピンアサイン
ピンアサインは以下のとおり。
1) TFT LCD
TFT LCDは8ビットパラレルおよびSPIの両方をサポート。
8ビットパラレルおよびSPI共通
TFT LCD | esp32s3 GPIO |
メモ |
---|---|---|
VDD | 15 | TFT-LCD電源:0(Lo)でOFF / 1(Hi)でON (常時ONとするなら、3V3へワイヤジャンパ要) |
IM1&IM2 | 16 | 8ビットパラレル接続 / SPI接続の選択 0(Lo)で8ビットパラレル接続 / 1(Hi)でSPI接続 / |
BL | 39 | TFTバックライト(PWM制御可) (常時点灯とするなら、3V3へワイヤジャンパ要) |
GND | GND |
8ビットパラレル接続
TFT LCD | esp32s3 GPIO |
仕様 |
---|---|---|
IM1&IM2 | 16 | 0(Lo)とする |
RES | 17 | |
CS | 18 | |
DC | 8 | |
WR | 9 | |
RD | 10 | |
SDA | 11 | 0(Lo)とする |
DB0 | 12 | |
DB1 | 13 | |
DB2 | 14 | |
DB3 | 21 | |
DB4 | 47 | |
DB5 | 35 | |
DB6 | 36 | |
DB7 | 37 | |
SDO | 38 |
SPI接続
TFT LCD | esp32s3 GPIO |
仕様 |
---|---|---|
IM1&IM2 | 16 | 1(Hi)とする |
CS | 18 | CS |
DC | 8 | SCL |
WR | 9 | DC |
SDA | 11 | SDA |
2) SDカードソケット
SPI接続のみ
SDカードソケット | esp32s3 GPIO |
仕様 |
---|---|---|
DAT3/CD | 40 | CS |
CMD | 41 | MOSI |
VSS | GND | |
VDD | 3V3 | |
CLK | 42 | SCK |
DAT0 | 2 | MISO |
DAT1 | - | オープン |
DAT2 | - | オープン |
DET_A | GND | |
DET_B | 1 | pull_up指定する Hi:SDカード未挿入 Lo:SDカード挿入済 |
3) プッシュスイッチ
プッシュスイッチ | esp32s3 GPIO |
仕様 |
---|---|---|
SW1 | 7 | pull_up指定する Lo:プッシュ状態 |
SW2 | 6 | 〃 |
SW3 | 5 | 〃 |
SW4 | 4 | 〃 |
ソフトウェア
環境 \ hardware |
ESP-IDF 環境 |
Arduino 環境 |
MicroPython | CircuitPython |
---|---|---|---|---|
TFT LCD $^{(8ビットパラレル接続)}$ |
○ | ◎ (TFT_eSPI / LovyanGFX) |
× | × |
TFT LCD $^{(SPI接続)}$ |
○ | ◎ (LovyanGFX) |
○ | ◎ (adafruit_st7789) |
SDカードアクセス | ○ | ◎ | ◎ | ○ |
プッシュスイッチ | ○ | ◎ | ◎ | ◎ |
<凡例> ◎:使用可(確認済み) ○:使用可(未確認) ×:使用不可
早く MicroPython / CircuitPython でパラレル接続をサポートしてもらいたい。
以上