手持ちのSPI接続のLCDが増えてきたので、接続方法と表示の比較をしてみました。テスト環境としてはTeensy 4.0ボード上でAdafruitのLCDライブラリに付属のgraphicstestプロジェクトを使用します。
比較するLCDのリスト
以下に今回比較するSPI接続LCDモジュールのリストを記載します。
A, B, C, EのモジュールはベースのPCBに実装された状態のもので、Dのモジュールに関してはPCB実装タイプが見つからなったのでフレキ配線そのままのモジュール単体の状態です。
液晶タイプは一般的にIPSタイプのほうがTNタイプに比べて視野角が広く、見る角度による色相の変化も少ないです。解像度はもちろんですが、Dot Sizeに示される画素のきめ細かさも見た感じを大きく左右する要素です。
LCD接続のためのSPI信号
SPIはシリアルクロック、チップセレクトに加えて、Input/Outputのデータ線2本を使用するので通常4線シリアルと呼ばれますが、LCD接続の場合データはデバイスからLCDモジュール側へのライトアクセスのみの一方向で使用するためデータ線は1本で運用されることが多いです。この3線(シリアルクロック、チップセレクト、データ)に加えて補助の制御線としてDC、リセット信号を使用します。整理すると以下のようになります。
基本的にはSPIに直接関連するCS, SCK, MOSI信号に関してはSPI専用のIO端子を割り当て、DC, RST信号に関してはGPIOによる制御を用います。
電源に関してはLCDモジュールによっては、LDOを搭載しており5V供給に対応しているものもあります。ただしその場合でもIOインタフェースに用いる電圧は3.3Vになります。この他、LCDのバックライトの制御端子を備えているLCDモジュールが多いです。
各LCDモジュールの比較
[A] ST7735 1.8" 128x160
まずはST7735ドライバ使用の128x160pixelのモジュールの紹介です。SPI接続のmicroSDカードスロットが搭載されたタイプが入手可能でした。
入手先: AliExpress, Amazon
ST7735 1.8" 128x160 |
他にもおそらく同じLCDモジュールを搭載したものと思われるフルサイズのSDカードスロットを搭載したタイプも見つかります。電源は5V供給にも対応しており、3.3Vにて使用する場合はPCB上のJ1をブリッジして使用します。バックライトLED制御のための信号線はありません。
Teensy 4.0との接続は以下の通りです。
TNタイプであるため視野角をチェックしてみると、縦長でフレキケーブルが下側になるように配置した場合に垂直(上下)方向は0度(正面)の状態で水平(左右)の視野角を振った場合にはあまり変化は見られず、45度程度でも充分に視認性があります。水平方向は0度の状態で垂直方向のみ角度を付けた場合ですが、まず6時方向から見た場合は、15度程度傾けただけで全体的に輝度が上がってくるのがわかります。同時にバックライトが浮いてくるのも確認できますが、全体のバランスは崩れることなく一番良好な画質に見えますのでこの方向が意図された適正角のようです。このまま45度程度まで傾けてもほぼ同様な感じです。一方で12時方向から見た場合15度程度傾けただけで低輝度部分が極端に見えにくくなります。一方でバックライトは浮いてくるのでコントラスト及びカラーバランスが大きく崩れた状態になり、輝度が高い部分以外は非常に見にくくなります。
ST7735 1.8" 128x160 表示例 |
[B] ST7735 0.96" 80x160
ST7735ドライバ使用の80x160pixelのモジュールです。フレキケーブル部分の形状は異なりますが、おそらくSipeed Longan Nanoボードに使用されているものと同じタイプと思われます。
入手先: AliExpress, Amazon
ST7735 0.96" 80x160 |
Teensy 4.0との接続は以下の通りです。
今回紹介するLCDモジュールの中では一番解像度は低いですが、Dot Sizeの細かさとIPSタイプならではの視野角の広さもあり非常にきれいな表示が得られます。バックライトの浮き上がりも抑えられているので黒が美しい印象です。
ST7735 0.96" 80x160 表示例 |
[C] ST7789 1.3" 240x240
ST7789ドライバ使用の240x240pixelのモジュールです。
入手先: AliExpress, Amazon
ST7789 1.3" 240x240 |
Teensy 4.0との接続は以下の通りです。このLCDモジュールにはSPIのCS端子がありませんので他のSPIスレーブと共用はできませんが、その分ピン割り当てを少なくすることができます。またCSがない影響で非アクセス時にSCKがHになるSPIのモードを2または3にして使用する必要がありました。SPIモードについての詳細はここに詳しく記載があります。
今回比較するLCDモジュールの中では最もDot Sizeが小さく非常に高精細な画質が得られます。色相、コントラストも申し分ありません。16ptの文字は小さすぎてしまうほどですので同程度の解像度のLCDから移植する際にはレイアウトやフォントに工夫が必要になるかもしれません。
ST7789 1.3" 240x240 表示例 |
[D] ST7789 2.0" 240x320
ST7789ドライバ使用の240x320pixelのモジュールです。PCBに実装されているタイプが見つからなかったため、0.8mmピッチのフレキ配線タイプを入手しました。
入手先: AliExpress
ST7789 2.0" 240x320 |
0.8mmピッチのフレキ配線の引き出し方ですが、今回は0.8mmピッチのQFPパッケージ変換基板を利用して2.54mmピッチに変換してみました。
QFP変換基板入手先: AliExpress
フレキ配線との接続 |
Teensy 4.0との接続は以下の通りです。
このLCDモジュールもIPSタイプならではの視野角の広い表示が得られます。[B] [C]のモジュールと甲乙つけがたいきれいな表示です。Dot Sizeも小さすぎず適度で使いやすそうです。
ST7789 2.0" 240x320 表示例 |
[E] ILI9341 2.2" 240x320
最後はILI9341ドライバ使用の240x320pixelのモジュールです。
入手先: AliExpress, Amazon
ILI9341 2.2" 240x320 |
Teensy 4.0との接続は以下の通りです。電源は5V供給にも対応しており、3.3Vにて使用する場合はPCB上のJ1をブリッジして使用します。またRESET端子については、正常動作させるには3.3Vに常時接続しておく必要がありました。
TNタイプであるため視野角をチェックしてみると、同じTNタイプの[A] ST7735 1.8" 128x160と比べてかなり変化が少ないように感じます。水平(左右)の視野角を振った場合にはあまり変化は見らません。垂直方向は6時方向に15度~20度程度傾けたところで最良のバランスが得られます。12時方向から見た場合はやはり15度~20度程度傾けるとコントラストおよび色相も劣化しますが大きく視認性を損なうほどではありませんのでTNタイプとしては健闘しているほうと言えると思います。
ILI9341 2.2" 240x320 表示例 |
graphicstest動画
動画でも撮影しておきました。露光の関係で輝度の高い部分での彩度が低くなっているように見えますが、実際はもう少しきれいな色合いが出ています。
graphicstestプロジェクト
テスト用にAdafruitのLCDライブラリに付属のgraphicstestプロジェクトをカスタマイズしたものを使用しています。Teensy4.0ボードに対してVisual Studio Code + PlatformIOエクステンション環境でビルドして使用しました。
[A] ~ [D]のドライバICとしてST7735, ST7789を使用しているモジュールのプロジェクトは以下を参照ください。
[E]のドライバICとしてILI9341を使用しているモジュールのプロジェクトは以下を参照ください。
0 件のコメント:
コメントを投稿