Sazanami Online

PICでビデオ出力 その2 『新チップ導入、SZ-G16648』

[その1] [その2] [その3] Index に戻る
最新のPIC16F648Aを買ってきました
昨年2003末に発売されたばかりの最新PIC導入です。
PIC16F84Aとピン上位互換でメモリリソースが大幅増加。
ROM:1k→4k、RAM:68バイト→256バイト、EEPROM:64バイト→256バイト
その上タイマーが3chになり、コンパレータやUSARTまで追加されています。
最新のチップが焼けるようにPICライターも更新しました。


意外に難航..
内容はほぼ一緒でRAMの変更だけかと思っていたら、出力が10mAから3mAに低下してて、従来の回路では暴走してしまっていました。所々動作するのでSFRの設定を何か忘れてるのではないかと悩みました。
RAMが20hから開始される、70-7fhはバンク共通、EEPROMのレジスタがすべてPage1に移動してるとか、デフォルトでRAがコンパレータに設定されているなど、それなりに変更点がありました。


完成かな?
搭載ROMが増えたので5x7フォントに変更しました。英小文字も追加!
RAMも増えたので10桁×8行になりました。
表示処理系を変更したので文字と文字の間が空いています。

やっと普通っぽくなりました。並べてみるとよくわかりますね♪


バンク切り替え無しで簡単にアクセスできる範囲しか使っていないので、もう少しいじってみたいような気も。。


バージョンアップ!!
16桁×10行を実現しました。写真ではわかり難いですが、1走査線間引いて表示ています。
この表示をサボっている間にVRAMの文字コードをフォントに変換してラスタバッファに転送し、文字間があまり空かないようにしました。

G1684から格段に表示能力が向上しました。これならライバルの液晶HD44780に勝てそう?(笑)



家庭用TVでは、にじんでいい感じです。5.5インチワイド液晶(パチンコ液晶)では走査線の空白はつぶれてしまって、文字が少し暗くなる感じでした。

VRAMに160バイトを割り当てていますが、無駄なバッファの使い方をしているので、もういっぱいいっぱいです。もう1行追加して16桁×11行にしたいところですが、PIC16F648のRAMは80バイト毎にアドレスが離れているのでこちらも厳しそう。
PICってちょこっと何かやるにはいいけど、少し複雑な事をやらせようとするとページやバンク切り替えの問題も発生するし、苦労しますね。


インターレス表示にしてみましたが
1走査線おきの表示が気になったので、偶数フレームで1走査線ずらして表示させてみました。

左が通常表示、右が偶数フレームで1ラインずらして表示したもの


1/30フレームレイトではチラチラして、近くて見ていると気分が悪くなりました。長残光のモニタや切れの悪い液晶ならいいのかも知れませんが、そんなもの無いです。せっかく作ったのでこの動作はオプションにしましょう(汗
パチンコ液晶の直接駆動で役に立つかも知れないし〜

今のところ制御コマンドは全画面クリアしかないので、改行コードや画面スクロール、表示ロケーションの指定など実装が課題です。ESCシーケンスに準拠したほうがいいのか思案中、LCDと置き換えで使用する事を考えるとHD44780コンパチ路線にしたほうがよさそうですが..

 次へ → 
↑PageTop

E-mail : saza00@mail.goo.ne.jp [その1] [その2] [その3] Index に戻る