ボードマイコンを自作したとき、CRTモニタ(またはLCDモニタ)を使用して表示したいと思うことがあります。最近はジャンクで小型モニタが多く出回っていますので、それを使ってなにかやろうと思われる方も多いかと思います。そのような用途に使えそうなディスプレイコントローラです。
ということで基本仕様。まず、多くのボードマイコンに容易に接続できるよう、制御インターフェースはできるだけ単純にします。また、多くのジャンクモニタが CSYNC入力なので、出力もそれに合わせます。再現性も考慮して一般的で手に入りやすい部品のみを使用。とりあえず基礎実験(お遊び?)ということで、価格も抑えないといけませんね。
ビデオ出力 | RGB + CSYNC |
表示サイズ | フルグラフィック、水平:256、垂直:224、16色 |
表示タイミング | 水平同期:15.75kHz、垂直同期:60Hz |
I/F方式 | ビデオバッファ(32KB)へはメモリアクセス(WAIT制御あり) CRTCへは I/Oアクセス |
製作費用 | \5000以下 |
右のインラインイメージが組みあがった基板です。回路図を見ていただくと分かると思いますが、配線の本数がやや多いです。小さな基板に収めようとするなら、UEWで配線するとよいでしょう。ほとんどディジタル回路ですので、特に注意するところはありません。配線本数が多いので間違えないように気を付けるくらいでしょうか。
このボードの制御インターフェースは、拙作の KL5C8012ボードマイコンや V25ボードマイコンに直結して制御できるようなピン配置にしてあります。また、この回路では PLDを使用していますので、実際に製作する場合、PLDにプログラムできる環境であることが必要です。
回路図中に示すCRTCレジスタの設定値でCRTCを初期化すれば動作を開始します。CRTCの設定方法は、アドレスレジスタ(A0="L")にレジスタ番号を書き込み、続いてデータレジスタ(A0="H")に値を設定という方法で書き込んでゆきます。表示を開始したら、あとはビデオバッファを直接読み書きして描画します。ビデオバッファサイズは 32KBありますので、Z80系マイコンなら論理メモリ空間の半分を割り当てることになります。
ビデオバッファのデータ格納形式は、4bit/pixelで1byte当たり2Pixel(上位下位各 4bitづつ)のpacked pixelとなっています。Pixelの値と色の対応は回路図中の記述を参照してください。
テキスト表示はもちろん、フルグラフィック表示が可能。
RGB−NTSC変換基板で TVにも接続可能(CXA1145使用)
KL5C8012ボードで制御しているところ
回路図|PLDソースファイル|HD64180との接続例|KL5C8012との接続例|V25との接続例|ISAバスとの接続例