安価なUno R3用のタッチスクリーンは、Arduinoではつかえるのは当然ですが、Nuttx + NucleoではUno R3向けのLCDとピンを共用しているタッチスクリーンドライバがみあたらなかったので、他のタッチスクリーンドライバなどを参考にしながら、ADCTS(adc touch screen) なるdriverをプログラムしてみました。 画像は、Nucleo-F446RE + Nuttx(nxwm) + ili9486 3.5inchのものですが、主にロジックレベルコンバータ搭載の3.3v駆動対応のものをテストしています。
LCDドライバもなかったので、ほかのLCDドライバやarduinoのソースを参考にLCDドライバも、プログラムしています。動いてはいますが、珍しいドライバの上、プログラムも非常にダーティー&アグリーですし、あまりテストしていませんので、とりあえず動いたよ程度の報告がてら、本稿をUPしてみました。
今のところ以下のディスプレイで動作"とりあえず動いたよ"確認しています。
st7793 3.75 inch 240x400-- mcufriend (discon. )
ili9326 2.4 inch 240x400 -- mcufriend (discon. )
r61581 3.5 inch 320x480 -- mcufriend (discon. )
ili9486 3.5 inch 320x480 -- lcdwiki (Available at amazon.co.jp as of 2020/11/15)
参考までに、mcufriendのタッチパネル用ピンアウトと lcdwiki のピンアウトが異なるため、ドライバのビルドオプションで選択できるようにしています。なお、Nucleo-F411REでも一部動作確認"とりあえず動いたよ"確認しているので、ADC1をDMAで2chを駆動でき、Nuttxが走るリソースが十分にあれば、他のNucleo-64/144でも動作できる"とりあえず動いたよ"確認できると思いますかもしれません。(追記2020/12/04:NuttX on Nucleo-L476RGではタッチパネル動作確認できませんでした。追記2020/12/10:Nucleo-H743ZI2で2.8" ili9326の一部動作(書き込み)を確認しましたが、他のLCDでは確認できていません。)
なお、上述に加えて、st7796sの3.95inch lcdとosoyooのili9486 3.5inchを発注済・到着まちで、届き次第、"とりあえず動いたよ"ドライバを追加したいと思っています。
それでは、また。
追記1:2020/11/07
nucleo-g474にて"とりあえず動いたよ"確認しました。ただし、g47XXXはADC1単独ではタッチパネルを駆動できないためADC1とADC2を使いましたが、DMAは使えていません。
追記2:2020/11/07
osoyoo ili9486 3.5inch lcdの"とりあえず動いたよ"確認できました。
追記3-1: 2020/11/13
lcdwiki st7796s 3.95inch lcd の"とりあえず動いたよ"確認できました。
追記3-2: 2020/11/13
lcdwiki ili9486 3.5inch lcd(TSピンアウト違い) の"とりあえず動いたよ"確認できました。
追記4:2020/11/13
Nucleo-F411REにて"とりあえず動いたよ"確認できました。
コメント
コメントを投稿