ハードシーケンサ開発(その6:ディスプレイ表示の動作確認2)
概要
現在作成中のRaspberryPiPicoを利用した多機能MIDIキーボードに対し、他のモニタを取り扱いたい。
今用意されてるもの以外でもあればありがたいという位置づけ。
試行
Paradiseの何でも工作室 ラズパイPicoに2.4インチTFTモニターを繋ぐ (fc2.com)
ここを参考に手持ちのILI9341モニタを繋いでみた。
(なんで手持ちがあるかって以前買ったからだよ)
概ね問題ない。
使い方(上記ページ参考)
- Adafruit_ILI9341のライブラリをインストール
- RaspiPicoのArduinoライブラリをインストール(以前からやってある)
- サンプルコード「Adafruit_ILI9341→graphictest」をロード
- サンプルコード上とピンの機能を合わせるためコードの内容を変更
- コンパイル・スケッチをボードに反映
ILI9341モニタの構成
自分の理解を深める目的で、使うピンの機能だけ書いておきます。
- VCC
電源。3.3Vのものを利用するのでいいらしい。RaspberryPiPicoはちょうど3.3Vの出力ピンがある - GND
グランド。 - CS
チップ・セレクト(CS)
分岐やリレーする場合Highにするみたいだけど、それ以外だとLowでいいみたい。
1対1(表示先みたいな)であればLowで考えてもいいのかな。 - RESET
液晶をリセットするピン - DC/RS
DC (Data/Command) あるいは RS (Register Select)とのこと。
LOW のときに SPI 伝送されたデータは《コマンド》,HIGH のときは《データ》として取り込まれるみたい。
下でいうところのSDI/SDOの伝送が絡んでくると考える。 - SDI(MOSI) SPIMasterOutSlaveIn
データの受信を行うピン - SCK SPIクロック
I2Cより高いクロック周波数に対応してるみたい。 - LED バックライト
バックライト使うときはHIGH、使わないときLOW
ただ使わないと画面が見えない。(サスペンドみたいな機能使うときにLOWにするくらいか) - SDO(MISO)SPI MasterInSlaveOut
データの送信を行うピン
利用ピンの優先順位づけ
データシート見ると、RaspberryPiPicoは、SPI機能が使えるピンは1~25とのこと。
Raspberry Pi PICO, Pinout, Specification and Features – Electrorules
(あと公式とかでもいいと思うけどさ)
また、ADC周りのピンは31-35で固定。
すなわち、上記範囲とかぶらないピンを優先して操作系に使うという形がよさそう。
拡張を考慮すると以下の優先順位になる。
- 29-30(ピンに機能なし)
- 26-27(I2C機能のみ存在)
- 31-35(ADC機能が存在)
- 1-25(SPIおよびI2C機能が存在)
参考
タッチパネル付TFT液晶モジュールを使ってみる | 東京お気楽カメラ (okiraku-camera.tokyo)
SPI通信インターフェースの基本を学ぶ(入門編) – 通信回路、プロトコルなど | アナログ・デバイセズ (analog.com)
こじ研(ESP ディスプレイ編) (tohoku.ac.jp)