Hatena::Groupecrafts

Chuckの電子工作

趣味の電子工作を中心に書いています。音関係工作はg:emusic:id:Chuckどうぞ。


検索エンジンより飛んでこられたかたで、お探しのキーワードが見つからないかたは、↑の検索をご利用ください。

2009-03-06

I2C-LCDスレーブ通信仕様練り中

I2Cスレーブが動いてLCD表示ドライバが動いたので合体した物を作っています。

LCDへの文字の表示、座標の指定、クリア、カスタムキャラクタ対応、バー表示機能 などの機能をどのようにI2C越しに指定するか、その通信仕様を考えているところです。

第1案ではコマンドを打って機能を確定させてから諸パラメータを送るものでした。コマンドを打って文字表示、コマンドとパラメータを打って座標指定、などなど。

しかしこれではいちいち文字を打つのにコマンドを打たなくてはいけない。文字の表示は軽く素通しにしておきたいところです。

LCDのキャラクタ表を見ると一部にスキマがあります*1ので、スキマキャラクタの特定文字がきたらコマンドシーケンスに移行するようにしたらいいかな、と今思いつきました。通常シーケンスでは来たデータをそのままlcdDataWriteしてしまおうかと。

ということで第1案のコードを捨てて第2案を練り始めました。

特定文字でシーケンス移行することを忘れて、0x00~0xFFインクリメントでテストデータ書きをしちゃうと困ったことになりますね。下端0x00と上端0xFFはキャラクタが割り当てられているので途中の文字でなんかするしかありません。0x1B でいいかなぁ。

*1:JISX0211でいうところのC0集合の半分とC1集合のコードの領域

morecatmorecat2009/03/07 15:08ここはひとつ、昔のVT-100のシーケンスに合わせてほしいです。

ChuckChuck2009/03/07 17:08ふふふ、そのような案が来るのは想定の範囲内です。
しかしもうコード領域がありません。ATtiny2313なのでI2CスレーブとLCDのドライバでかなりカツカツ。ESC [ Pl ; Pc H だけしか入りそうにありません。

morecatmorecat2009/03/07 23:03なんと想定内とは。ほりえもんですか?
でも、2Kでは無理そうですね。失礼しました。

ChuckChuck2009/03/08 06:17自分でも最初に思いついたのがVT-100だったのです。エクマ048を読んでしまいました。略号が多くてめげました。
ATtiny2313は手ごろなターゲットデバイスだと思います。諦めて仕様・機能を絞り込む訓練もできます。

morecatmorecat2009/03/08 09:22画面クリア、バックスペースとカーソルの移動だけあれば十分な気がします。画面反転(文字反転)もあるとファンシーな画面が作れそうですが、液晶では難しいかも。
# UNIXだと/etc/termcapに端末仕様の一覧がありませんか?
## VT-100は仮想端末の仕様と思っている人が最近多くて、本物を使っていた人としてはショックを受けました。

ChuckChuck2009/03/09 08:00さすがにVT-100の実機を使ってはいない私です。
それぐらいに絞れば入りそうですね。ただそれ以外のコマンドもあって整合が取れないので現状オリジナルにしてしまってあります。
文字の反転はキャラクタLCDの機能として無いのです。ぜひ欲しいところです。

トラックバック - http://ecrafts.g.hatena.ne.jp/Chuck/20090306