WP7605でディスプレイとキーボードを動かしてみた

未分類

前回はHTTPサーバを動かしてみましたが
今回はディスプレイとキーボードを追加して手元で操作できるようにしてみます.

ディスプレイを認識させるためにYoctoを用いカーネルをビルドし
ドライバを組み込むことで実現します.
ディスプレイはSPI接続可能なILI9341ドライバを搭載したTFT-LCD ILI9341搭載2.8インチSPI制御タッチパネル付TFT液晶MSP2807 を使用します.
Yoctoをベースに開発を行うので本来であればレシピを追加してちゃんと構築すべきところでは
あるのですが今回はとりあえず動作することを目指したため行っていません.

最初にYoctoの環境構築を行い,ILI9341のドライバとUSB関連の設定を追加する方法について
解説します.

Yoctoの環境構築

環境構築するに当たりmangOH Waveshare E-Ink Linux Framebuffer driverを参考にしました.
ホームディレクトリ以下に以前作成したworkspaceに追加していきます.

まずはYoctoのプロジェクトをダウンロードします.
LegatoのリリースバージョンがR13.3なのでそれに合うLinux Distro Sourceを選びます.
https://source.sierrawireless.com/resources/airprime/software/wp76xx/wp76xx-firmware-release-13,-d-,1-components/
その後解凍し準備を行います.

これでYoctoの環境構築は完了です.

以降端末を起動するたびにYoctoを使用する前に以下のコマンドを実行します.

ディスプレイドライバの追加

そのままではSPI接続でディスプレイを表示するドライバは含まれていません.
Linux用のSPI接続によるディスプレイドライバがfbtftとしてあるので組み込みます.
今回使用しているLinuxのバージョンではバックライトを制御するオプションを有効にしていると
うまく動作しないため fbtft/Kconfig の該当する部分をコメントアウトして導入します.

ディスプレイドライバ向けの設定を行う

カーネルの準備ができたのでビルドします.
まずは追加したディスプレイドライバに関するカーネルオプションを設定します.
ディスプレイドライバの他に表示するためのフォントも入れます.
ブート時のコマンドは改良前に動いていたカーネルコマンドを元に
必要な設定を追加したものを上書きすることで設定しました.

ビルドします

ビルドが終わったら実機で動かします

実際に動かす

CN3の40ピンヘッダーに配線します.
電源はLCD用の3.3VとUSBキーボード用の5Vの2系統が必要です.
LCDは6本結線します.

ビルドしたカーネルを転送します.

この状態でカーネルログやログイン画面がLCDに表示されます.
ただしキーボードを繋いでもWP7605内部の設定が有効になっていないと
使えないのでその設定を行います.

キーボードを動かすには

(今回の基板はUSB周りでエラッタがあるので多少の修正を加えました.)

WP7605でUSBデバイスを扱うためには内部の設定を書き換える必要があります.
WP7605へssh接続した後ATコマンドを入力することで変更します.

Does the WP7605 support HSIC interface?
Does the WP7605 support HSIC interface? Because we have connected a USB hub (USB4640) to the HSIC bus of WP7605 But with the lsusb command to view what the de...

再起動後にモジュール上のHUB3(USB microB)コネクタにOTBケーブル経由で接続すれば
LCDに表示されるログイン画面からログインしてシェルを叩けるようになります.

まとめ

Yoctoの環境構築を行うことでカーネルのビルドができるようになりました.
また,Yoctoに対して直接的な改良ではあるもののLCDを接続して
キーボードも使えるようになったので単体でシェルを叩けるようになりました.
こんな小さいモジュールでもLinuxが動きシェルを叩けるのでよくできているなと感じました.

コメント

タイトルとURLをコピーしました