LCD には 4 本のデータラインがあります。ただし、LCD に表示されるデータは 7 ビットの ASCII 形式で与えられます。そんなことがあるものか?
2 に答える
少し前に別のユーザーからの質問に答えました (こちら)。次のドキュメントを参照していました: www.cloverlcd.com/pdf/S6A0069.pdf . そのリンクから、それがどのように機能するかについてのアイデアを得ることができます (少なくともその例では)。
これらの組み込みデバイスの多くは、通常、データをチップに配信するために 2 サイクルのアプローチを採用しています。同期するために 2 つの f ニブルを連続して出力し (ff は無効な 7 ビットであるため)、ニブルを出力するプロセスを開始する 1 つの例を見てきました。同期以外に 2 つの連続する f ニブルを生成する方法がない限り、それは簡単に実現できます。
通常、デバイスがデータの新しい書き込みを検出できるようにするバスからデバイスに接続されている他のラインもあります。これは、2 つの同一の書き込みを異なる値として検出することを意味します。つまり、他の信号を使用してデータの受信を制御します。より単純なデバイスのほとんどには、厳密なタイミング要件もあります (たとえば、書き込みごとに少なくとも N マイクロ秒遅らせる必要があります)。
さらに、送信する傾向があるのはコマンドであり、ASCII コードだけではありません。LCD のオフセット 3 で Hello を表示するニブル出力は、次のようになります。
f f ; sync
0 ; clear display (cmd = 0).
1 0 3 ; set cursor (cmd = 1) to offset 3.
2 H e l l o 0 ; output text (cmd = 2) teminated by NULL.
デバイスにはデータ ライン d3 ~ d0 のみが接続されているため、上位ニブルは関係ありません。
通常、デバイスは 8 ビット モードで起動しますが、デバイスを 4 ビット モードにするために必要なコマンドは 4 つの LSB を無視します。
4 ビット モードでは、1 文字につき 2 つの xfer が必要です。
この説明を見る