こんにちは、
私は現在、 MIMXRT1176-EVKBを使ったプロジェクトに取り組んでいます。このプロジェクトでは、 RVT70HSTNWC00-Bディスプレイにいくつかの画面を表示し、タッチ座標を登録できるようにしたいと考えています。
別のNXPフォーラムの投稿( https://community.nxp.com/t5/i-MX-Processors/Creating-a-driver-for-a-MIPI-LCD/mp/1772322 )のおかげで、既に動作するスクリーンを入手できました。
唯一の問題は、このディスプレイのタッチドライバー(ILI2132A)が他のドライバー(例:GT911)とは少し動作が異なるものの、プロトコルとしてはI²Cを使っており、SDKにはこのドライバーを使う例がないことです。
MIMXRT1170シリーズをベースにできる解決策をご存知の方はいらっしゃいますか?
あらゆるご支援と情報を歓迎いたします。
よろしくお願いいたします!
こんにちは、 @KobeV さん。
現在、このILI2132A用の正式なドライバーは提供していませんが、RT1170-EVKBはZephyrをサポートしており、Zephyrには「input_ili2132a.c」というタッチIC用のドライバーがあります(ドキュメント、GitHub参照)。
ILI2132A Touch ICの詳細はすでにそのドライバーに実装されているため、ベアメタルドライバーへの移行プロセスは十分に可能です。そのドライバで使われているすべてのGPIOやI2C機能は、すでにSDK上にベアメタル対応のものがあるはずなので、それをもとに移行するか、自分でドライバを作成することをお勧めします。
また、RT1170-EVKBはすでにZephyrでサポートされているので、Zephyrベースのプロジェクトでドライバーの機能を確認し、移行前にデバッグするテストシナリオを行うことも可能です。
BR、
エドウィン。
こんにちは、
かなりのテストとトラブルシューティングを行ったものの、ILI2132Aドライバを使ってRVT70HSTNWC00-Bディスプレイのタッチ機能が動作しません。
私の作業環境について少し説明すると、私はMCUXpressoプロジェクト内で作業しており、そのプロジェクトにはCrank Storyboardも組み込まれています。私の目標はタッチドライバをポーリングし、タッチ入力に基づいて適切なストーリーボードイベント情報(モーション、プレス、リリースなど)をトリガーすることです。
最近、ILI2132Aドライバーが実装されているGitHubリポジトリを見つけましたが、そこにはArduino(.ino)プロジェクトが使われています。追加のファイルを適応させ、Arduinoのコードを自分の環境に適したCファイルに変換しようと試みました。以下は、私が考案した実装です( sbengine_task_vglite.cを参照してください)。
これらの変更にもかかわらず、タッチディスプレイからは全く反応がありません。私のコードにバグがあるのか、あるいはプロジェクト内の他の外部設定や構成を調整する必要があるのか疑問に思っています。
参考までに、元のArduinoプロジェクトのGitHubページへのリンクは以下の通りです:https://github.com/riverdi/ctp-ilitek-arduino-demo/tree/master
何かアドバイスやご意見をいただけると大変ありがたいです。
こんにちは、
これは、このフォーラムにおける私自身の返信に対する返答です。数週間苦労した末、問題は無事解決した。https://github.com/riverdi/ctp-ilitek-arduino-demo のArduinoコード自分でC言語コードに変換すれば、完璧に動作します。
ドライバーと基板の問題は、MIPI LCDコネクタJ48に3.3V以上の電源が搭載されていないことです(電源はありますが外部ピンに接続されていません)。ディスプレイのバックライトには(私の意見では)約8V、タッチ操作には3.3Vの電圧が必要です。解決策として、実験用電源を用いてこれらの電圧を供給しました。バックライトは正常に動作したが、タッチ操作で奇妙な形状が表示された。信号は最大1.8Vに維持された。CLKピンにはきれいな方波が見えますが、3.3Vではなく1.8Vになっています。また、ドライバーチップに大量の電流が流れており、原因がまだわかりません。
別途3.3Vの電源を供給することで問題は解決した。これは別のGPIOピンから3.3Vを取ることで実現できます。異なる電源ユニットのすべてのGNDはNXPボードのGNDと同時に接続されている必要があります。そうしないと変な状況が起きます。
タッチ操作はまだ最適に機能していませんが、これはハードウェアの問題というよりはファームウェアの問題です。同じ問題を抱えている人にとっては、タイミングの関係で異なる解決策が必要になると思います。具体的には、私のプロジェクトではFreeRTOSを使用しているため、ファームウェアのタイミングが若干異なります。
この情報で他の人の役に立てれば幸いです。そうでない場合は、遠慮なく質問してください!