LoginSignup
0
1

More than 1 year has passed since last update.

Spresense SDK で LCD サンプルプログラムを動かしてみた その3(ほぼ完結編)

Last updated at Posted at 2022-10-01

Spresense SDK のNXサンプル(LCDボード表示)をよく理解しないまま、
Spresense SDK で LCD サンプルプログラムを動かしてみた その2(Configuration)
Spresense SDK で LCD サンプルプログラムを動かしてみた その1
の記事を書きましたが、ほんの少し理解が深まったので再度まとめます。

やりたいこと
Spresenseのメインボードで使えるLCD拡張ボードを作ったので、それをSpresense SDKから使いたい。
そもそもArduino IDEでは問題なく使えている
Sony Spresense(IDE) で TFT LCD を動かしてみた
Sony Spresense(IDE) で TFT LCD を動かしてみた 2
メインボードでLCD表示器を使うボードは
SONY Spresense用 TFT LCDドライバーボード
になります。

はまっていたこと
Nuttx のLCDとSPIに関するコンフィグレーションが良く分からない。
ほとんど情報無し(泣)

公式の
Spresense SDK チュートリアルの 10. Graphics チュートリアル
ではサンプルがそのまま動いているっぽい。
ただし、Nuttxでの LCDとSPIに関するコンフィグレーション に関しては言及無し。

このチュートリアルでは拡張ボードでLCDを動かすようになっていたので、
SPIのポートをMainボードのポートに変更して、LCDの制御線関係を合わせれば良いと勝手に解釈。

勘違い(?)
LCDコントローラーIC ILI9341CMD/DATAの制御が必要なので
Nuttxのコンフィグレーションで この設定 を有効したら
cxd56_spi3cmddata、cxd56_spi4cmddata、cxd56_spi5cmddata の関数が無いというエラーでコンパイルが通らない。
これに関しては
Spresense SDK で LCD サンプルプログラムを動かしてみた その1
で対策を取って、動くようにはなっていましたが、そもそもCMD/DATAの有効化は必要ないみたいです。

CMD/DATAに関しては、他のボード用のNuttxでも「関数が無いので作った」みたいな情報を見かけたので
そのソースを基に関数を作っていました。
これに関しては正しい情報が欲しいところです(笑)
Spresense用だけがカスタマイズされている?

結局これだけ設定すれば動く

  1. SPIのポートはMainボードのポート(SPI5)を使うように設定する。
    スクリーンショット 2022-10-01 15.18.50.png

  2. LCDのRSTピンとDCピンを設定する
    スクリーンショット 2022-10-01 13.56.13.png

  3. LCD Driver Support ページの設定はこれで大丈夫そう
    スクリーンショット 2022-10-01 14.42.30.png

そして宿題
とりあえず表示は出来たもののなんか変。
表裏逆?
公式のページに解説してある
10.1.4. Tips LCD画面のオリエンテーションの変更方法
これで直るのかな。
これは宿題に(笑)。
IMG-0728.jpg

補足
LCDのドライバーチップを ILI9341 に設定するとコンパイルでエラーとなる。
また、ILI9340 のチェックを外すと、LCD画面のオリエンテーションの変更が出来なくなる。
スクリーンショット 2022-10-01 18.05.00.png
スクリーンショット 2022-10-01 175722.png
ILI9340ILI9341の両方にチェックを入れるとコンパイルも通って動くけど
ILI9340だけをチェックした時との違いが分からない。

最後に
なんとかメインボードとLCDドライバーボードでLCDを制御できそうです。
カラーTFT LCDはずいぶん安くなっているので使わない手はないと思っています。
今まではOLEDを使っていましたがモノクロだったので、カラーになると表現力が格段に上がると思っています。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1