Raspberry Pi Zeroを小型ゲーム機化するキットのHAT基板の1.54インチTFT液晶(240×240,SPI,ST7789)を調べてみた

Raspberry Pi Zeroを小型ゲーム機化するキットのHAT基板の1.54インチTFT液晶(240×240,SPI,ST7789)を調べてみた。

HATを直接接続せずに、ジャンパーワイヤーを使って電源とSPIのバスと最小限のGPIOの接続をして動かすことで、液晶に使っているRaspberry PiのGPIOのピンを調べるという方法だ。

電源の3.3VとGNDのピンと、SPIのMISO,MOSI,SCLKのピンはRasberry Piのハードウェア的にもう決まっているのでそのピンを接続した。
CS信号を接続するSPIのSS(Slave Select)については、Raspberry PiのCE0かCE1かのどちらかのピンのはずなので両方接続した。
あとから気が付いたのだが、タッチパネル制御IC HR2046がHAT基板に載っていて、これもSPIでつながっている。SPIのSSとしてCE1が接続されていた。
液晶のSPIのSSはCE0となっているようだ。

残っている液晶のRESET信号とD/C信号の2つが、どのGPIOピンに繋がっているのかを順に繋いで調べてみることにした。

予想では、SPIのピンの近傍のGPIOピンに割り当てられているのではないかと思った。

しかし、近傍のピンを繋いだだけではHAT基板の液晶は動作しなかった。


他のピンを総当たりで調べるのは大変なので、ゲームパッド用のボタンに割り当てられているGPIOピンを除外するために、ボタンと対応するピンをテスターで調べてみた。

ボタンのピンアサインは、
GPIO2 – Stick center push button
GPIO14 – Right shoulder button
GPIO15 – X button
GPIO23 – Left shoulder button
GPIO21 – A button
GPIO20 – B button
GPIO16 – Stick down
GPIO12 – Y button
GPIO5 – Stick up
GPIO6 – Stick right
GPIO13 – Stick left
GPIO19 – Start button
GPIO26 – Select button
となっていた。

消去法で考えると、残っているGPIOのピンのうち2つが液晶用だ。

GPIOの2,4,27,22,17,18,24,25のうちの2本を特定したい

とりあえず2つのGPIOピンが離れていないペアを順番に試してみた。
GPIO17,22,27,17のあたりらしいというところまで絞り込んだのだが、作業中になぜか液晶が表示されなくなってしまった。

ジャンパー配線を使わずに、直接Raspberry Pi ZeroにHATを繋いでも表示されない。

どうやら液晶パネルが死んでしまったようだ。


液晶パネルをHAT基板に貼りつけている両面テープを剥がしてみた。

液晶パネルのフレキ部分は20ピンで、ピンアサインは次のようになっていた。

1 – GND
2 – 3.3V
3 – n.c.
4 – MOSI (Raspberry Pi GPIO10)
5 – SCK (Raspberry Pi GPIO11)
6 – D/C? (Raspbery Pi GPIO22)
7 – CS (Raspberry Pi CE0)
8 – 3.3V
9 – n.c.
10 – RESET? (Raspberry Pi GPIO27)
11 – n.c.
12 – n.c.
13 – n.c.
14 – n.c.
15 – n.c.
16 – n.c.
17 – n.c.
18 – n.c.
19 – GND
20 – 3.3V

3.3Vのピンのうちの1つはバックライト用の電源だろう。



液晶パネルを交換修理したいのだが、パネル単品として売っているものがAmazonやAliexpressで探しても見つからない。

液晶モジュール基板のものはAliexpressで見つかった。注文したのだが、届くのは非常に時間が掛かりそうだ。

代わりに1.3インチの240×240の液晶を使うことができるのはないかと思ったのだが、そちらも作業中に死んでしまっている。

ST7789という液晶ドライバのものを立て続けに2つも死なせてしまった。このドライバICは死にやすい?のではないだろうか。


Raspberry Pi Zero用の純正ケースの裏側に取り付ける液晶HATを作ろうと考えていたのだが、なかなかうまくいかないなあ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.

2 + 2 =