posted by rerofumi
2007/4/14 土曜日 22:43:35
Interface の V850 付録基板で何か始めてみようかと考えを巡らせていた。
取り敢えずは実験用の母艦と LCDモジュールでしょ。
動作の様子を確認する手段として、LCDモジュールに数値やメッセージを表示するというのはマイコンにおける基本事項みたいなものではないかと。まあ、シリアルコンソールに出力するほうが容易ではあるけれども、LCDの方が一瞥で確認できるのでうれしいのですよ。
LCDモジュールの扱いは簡単だけれども、スクラッチで表示プログラムを作成しようとすると意外と手間だったり。イニシャライズとBusyチェックに手数がかかるんだよね。
なので、最初にLCDコントロールを作ってしまって後々(みんなで)使い回して行こうという感じになるかと。
ソースコード。毎度の事ながら利用はフリーで。
v850_lcd_module_070418b.zip
アーカイブ内の lcd_module.c/.h が LCDモジュールライブラリ。
このソースや手元の実験基板での結線は、
(LCD) -> (V850) – (付録基板のコネクタ)
DB4 -> AN8 – 2-9
DB5 -> AN9 – 2-33
DB6 -> AN10 – 2-34
DB7 -> AN11 – 2-35
RS -> P03 – 2-29
R/W -> P04 – 2-30
E -> P06 – 2-32
できるだけ機能として使わなそうなピンを選択はしているつもり。
それ以外の結線で使う場合は lcd_module.h 内のピン定義を変更することで変えられる様にはしているけれども、実際は諸々の設定の関係でコード内に手を入れることになるかも。
なお、ソースコード自体サンプルプロジェクトであるけれども、ブートシーケンスである bootup.s (crtE.s) とディレクティブ指定の lcd_module.dir に手を加えて MINICUBE2 でデバッグできるよう必要なリソース設定を行っている。
それ故、いくらかリソースを無駄に確保しているけれども、通常問題はないかと。
Interface付録基板上のUSBシリアル経由でダウンロードできることはいちおう確認しています。
ちなみに、実験基板では 5V を電源としてCPU基板とLCDモジュールに与えている。
CPUからの信号線は CMOS 3.3V でLCDモジュールは 5V なのでなんも考えないで直結というのは良くないのだけれども、まあこれでも動くということで。
P7 は 5V トレラントでないから避けるべきだったか。
書き忘れ。
LCDモジュール初期化の際に数ms のウェイトが必要なので、そのためにインターバルタイマーの TM0 を使っています。
また、MINICUBE2 でデバッグスタブが使うので INTCB3R の割り込みベクタを確保しています。
使っているシステムリソースは以上。
[追記]
タイミング的に問題が見つかったのでソースコードをアップデートして差し替え。
具体的には BusyWait 時の念のためタイムアップが ClearScreen の処理完了時間より短かったので、ClearScreen の直後に何か送信するとドロップする事があった。
—–
8月 12th, 2007 at 16:41:26
初めまして、baulabと申します。
rerofumiさんのLCDモジュールライブラリを利用・改良させていただき、玄箱用のMatrix Orbital互換ディスプレイを作成してみました。
トラ技10月号に掲載が予定されております。
ソースコードの提供、ありがとうございました。
8月 13th, 2007 at 7:04:04
連絡ありがとうございます。
そして掲載おめでとうございます :-) (これはまだちょっと早いか)
http://www.limo.fumi2kick.com/fbbs/lmwiki.rhtml?topic=LinkStation
玄箱が発売されるきっかけとなった LinkStation のハックを行ったのも私だったりするのですが、LCDのソースと組み合わさるだなんて素敵な偶然かもしれませぬ。いや、これは純粋に baulab さんの手柄か。
LinkStation をハックしていた時は、私個人にとって組み込み機器向けのクロス開発手習いみたいな感じだったのですが、最近は玄箱を使った組み込み開発入門の記事が多くあり、目を細める次第です。