1.3インチIPS液晶(240×240,ST7789,SPI)をArduinoに繋いで動かしてみようとしたが、失敗した

1.3インチIPS液晶(240×240,ST7789,SPI)をArduinoに繋いで動かしてみようとしたが、失敗した。

TOOGOO 1.3インチIps Hd Tft St7789ドライブIc 240 x 240 Spi通信3.3 V電圧SpiインターフェースフルカラーTft Lcdディスプレイ (Amazon)

基板の見た目は、ST7735の0.96インチ液晶基板モジュールと似ている。多分、同じシリーズ商品なのだと思われる。

ピンアサインもほぼ一緒だ。

なので、前に作ったArduino Shieldのユニバーサル基板をそのまま使うことができる。
ただし、ピン数が1つ少なくて、CS信号ピンが出ていない。
CSピンの位置がBLKピンなので、この部分だけ配線を弄った。
(ちなみに、BLKピンは バックライトをトランジスタかFETでOn/Offするための制御信号のピンで、そのための回路が液晶モジュール基板上に実装されている。)

Arduino Uno互換機で3.3V動作するものを使用した。

ソフトについては、前のST7735の液晶パネルと同様にAdafruitのST77xx用ライブラリを用いた。

しかし、描画がされなかった。(BLKピンが未接続だが、このピンは液晶モジュール基板上でプルアップされているので、未接続でもバックライトがちゃんと点灯している。)

モジュールからCS信号ピンが出ていないので、液晶モジュール基板でST7789のCSがGNDに繋がっていて常時Lowレベルとなっている。SPIのSS(Slave Select)によるデバイスの有効/無効の切り替えができないので、SPIのバスには他のデバイスを繋いで動かすことができず、液晶だけを繋いでいる。

液晶パネルのフレキ部分のピンアサインは
1 – GND
2 – V_LED(バックライトの電源)
3 – VCC(3.3V)
4 – NC
5 – GND
6 – GND
7 – D/C
8 – CS … 液晶パネルを搭載している基板上でGNDと導通している
9 – SCL(SPI SCK)
10 – SDA(SPI MISO)
11 – RES(RESET)
12 – GND
となっている。

CS信号を取り出せるかと思ったが、フレキ部分が半田付けされて隠されてしまっている部分で基板パターンがGNDに繋がっているらしいので、一度液晶パネルを取り外さないとCS信号を取り出す改造ができない。
(追記、液晶のフレキ部分を半田を外してみた。隠れていた8番の端子のフレキで隠れていた側がGNDと繋がっていて、そこをカッターナイフでパターンカットしたら、GNDとの導通なしにできた。あとはまた液晶のフレキ部分を半田付けしなおして、8番の端子に細い電線を半田付けすればCS信号を取り出すことがたぶん可能だ。)

CS信号が未接続ではあるが、配線は合っているはずだ。しかし、動作しないのが原因不明だ。

0.96インチ液晶モジュール基板を動かすのと同時に作業していたので、ArduinoのShieldユニバーサル基板を作っている途中に配線を弄りながら間違った配線をして通電したかもしれない。そして、その時にST7789が死んでしまったという可能性があるのではないかと考えている。
あと、Arduino Uno互換機の電源を3.3Vと5Vとの切り替えスイッチを間違えて5VにしてSPI信号レベルが5Vで繋いでしまったというのもやってしまった記憶がある。こちらが特に原因としては怪しい。

修理用に液晶パネルのみをAliexpressで安く買えないか探してみる。しかし、見つからなかった。
普通に基板モジュールのほうが安くAliexpressで売っているので、そちらを注文した。
しかし中国からの配送は現在のところ大規模な遅延が起きているらしく当分は届きそうにない。


普通に動作していたら、Raspberry Pi Zero用の小型の表示器として使おうと考えていた。

前に試したRaspberry Pi Zero用の小型携帯ゲーム機風HAT基板キットみたいなものを自作しようと考えていた。

続く

1.3インチIPS液晶(240×240,ST7789,SPI)をArduinoに繋いで動かしてみようとしたが、失敗した” に1件のフィードバックがあります

  1. うねうね

    同じ症状に悩まされましたが、初期化の際に spi_mode2 で初期化したら動きました。
    ただ、原因は追ってませんので理由は判ってないです。

    返信

コメントを残す

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

Time limit is exhausted. Please reload CAPTCHA.

6 × 1 =