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を作ろうと考えていたのだが、なかなかうまくいかないなあ。