散々迷って、結局省電力とコンパクトな点が決めてとなりOLEDディスプレイを使ってみる事にしました。
RS-ONLINEで発注しましたが、英国取り寄せとなり納品まで2週間ほどかかるようです。
OLEDディスプレイということでPCとの表示データの転送速度が懸念となりますが、RS-232Cでどこまでできるのか試してみる事にしました。
ブレッドボードにPIC16F468AとRS-232CドライバIC「ADM3202AN」を接続してPCと通信してみます。
ADM3202ANの仕様書によると、最高460kbpsの通信速度を持つらしいです。それでもUSBに比べるとかなり遅いですが用が足りれば問題ありません。
OLEDディスプレイの解像度は256x64ドット、16段階のグレースケールなので、画面全体のデータサイズは8192バイトです。(以前4階調と書きましたが4ビットの誤りでした)
データ量と通信速度で転送時間がどうなるかまとめてみるとこうなります。
9600bps | 19200bps | 38400bps | 57600bps | 115200bps | |
8192byte | 8.53 | 4.27 | 2.13 | 1.42 | 0.71 |
4096byte | 4.27 | 2.13 | 1.07 | 0.71 | 0.36 |
2048byte | 2.13 | 1.07 | 0.53 | 0.36 | 0.18 |
単位は秒です。
これは純粋な転送時間だけなので、PCが送信データを用意する時間、PICが受け取ったデータをOLEDディスプレイに送る時間も加算されます。なんとか使えそうなのはピンク色の部分でしょうか。最低57600bpsが必要です。
ALIXボードのRS-232Cがどの程度の速度が出るのか不明ですが、トランシーバICは十分対応できます。
対するPICは、PIC16F873Aの仕様書を見ると57600bpsまでしか出ていませんが、SPBRGに10をセットすれば115200bpsで通信できそうです。試しにPIC16F468AでSPBRGに10をセットしてWindowsPCと通信したところ、115200bpsで通信可能でした。
いずれにしても、8192バイトのディスプレイデータは重過ぎるので、データサイズを圧縮しないと実用的ではありません。
いちばん簡単そうなのは、諧調表示を止めて1ピクセル=1ビットでデータ転送し、PIC側で1ビットを4ビットに展開してOLEDディスプレイに転送する事です。この方法では、全画面のデータが2048バイトになり転送時間は0.18秒になります。
コメントする