2017.2.11
前へ
次へ
ホームページトップへ戻る

マイコン独立大作戦
CRT/VGAIF+KEYIF+SDCARDIFボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
昔はそれが普通のことだったのですが、安価なCRTディスプレイが生産中止となって久しい今日ではそれ
は叶わぬことと諦めていたのですが…。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[総合第5回]


●文字表示におかしなところがある?

今回は前回の続きを書くつもりだったのですが、予定変更です。
実は先日からVGA表示画面のちょっとした異常に気が付いて、その原因の解明と対処方法についてあれこれ試行錯誤をしていたのですが、本日になってやっと一応の解決に至りましたので、そのことについて書くことにいたします。

「マイコン独立大作戦」のハードウェア、ソフトウェアも大まかなところは出来上がってきましたので、ぼちぼちまとめの作業に入ろうと思って、とりあえず下の画像のように画面に全キャラクタを表示させて、落ちがないかどうか確認していましたところ、おかしなことに気が付いてしまいました。

一見するとどこもおかしくはないように思えますが。

もう少し接近してよく眺めてみますと、文字表示におかしなところがあることに気が付きます。
どこがおかしいか、わかりますでしょうか?

文字によって、縦線の太さが異なっています。
たとえばアルファベットのABCDEFGHJKLMNOPQRSUVWXの縦線は細いのにI、T、Yの縦線は太く見えます。
Mの真ん中の線は2ドット幅ですから太いのが正常ですがI、T、Yの縦線は1ドット幅なので、細くなくてはいけないのです。
数字の1や!、↑↓の縦線も太く見えます。
文字表示のもとになるキャラクタジェネレータのパターンは「CRTインターフェースボードの製作」[第5回]でお見せしました。
下に再掲します。

このキャラクタパターン図で確認してみますと、縦線が太いところは全て5ビット目であることがわかります。
なんじゃこりゃあ?

最初はひょっとして回路のミスで5ビット目だけ2ビット幅で表示されているのか、と疑いました。
しかしそうだとすると横幅が既定よりも長くなりますから、80文字の全てが表示されなくなり、表示文字数が減ってしまうはずです。
念のために数えてみますとちゃんと80字表示されています。
今回の最初の画像で数えてみてください。
ちゃんと80字あります。

何が何だかさっぱり見当もつきません。

でも腕を組んで眺めているばかりでは少しも進みませんから、とにかくまずはVGAインタフェース回路のキャラクタ信号を確認してみました。
信号を確認するといっても、これがなかなかに大変でした。
何しろドット表示周波数が25MHzと高速で、さらに1つの文字を表示するにも8ラインあって、1本のラインにも表示期間とブランキング期間があります。
なるべくオシロで信号を捉えやすいように、縦方向がほぼ同じパターンの1文字だけを画面全体に表示させて、その信号をキャッチすることを試みました。

下は画面全体に小文字の’m’を表示させて、回路から出力された映像表示信号を捉えたものです。

文字信号回路はキャラクタジェネレータから出力された8ビットの信号を74HC166でラッチしてシリアル変換して出力します。
上側(CH1)はHC166からシリアル出力された文字信号で下側(CH2)はHC166のラッチパルスです。
CH1の信号はHC166からいくつかのゲート回路を通ったあとの信号なのでラッチパルスから少し遅れています。
信号はHLが反転していてドットが表示される側がLで表示されない側がHになっています。
写真だとわかりにくいので、下に図で示します。



先ほどの写真で見ると小文字の’m’も真ん中の縦線が太いのですが、オシロで観測した信号では特に異常はありません。
図のビット4が真ん中の縦線です。

時間がなくなってしまいましたのでこの続きは次回にいたします。

CRT/VGAIF+KEYIF+SDCARDIFボードの製作[総合第5回]
2017.2.11upload

前へ
次へ
ホームページトップへ戻る