PIC AVR 工作室->TopPage->PICの工作->ComponentVideo
PICでComponentVideoにカラー表示
仕上がりイメージ
AVRで作ったコンポーネントビデオ表示のプログラムをPIC16F84Aに移植してみました。
先に出来上がりを挙げておきます。こんな感じ↓
TINY2313と同様に、オペアンプを使ってカラーコンポーネント信号(もしくはD端子)にカラービデオの表示を してみました。「カラー化の野望」の成果物その1です。
一見すると単なるカラーバーの様ですが、よーく見てみてください。ちゃんと1ドット単位に着色しています! (少し画像が歪んでいる理由は後ほど解説)
オペアンプと組み合わせることで、マイコン側の処理は白黒表示に近いレベルでプログラムが組めるのがミソ。 なので、非力なPIC16F84Aでも1ドット単位でカラー表示が出来てしまうんです。
まぁ、先達のマイコン単体(と数本の抵抗)で出力するビデオ信号と比べれば、オペアンプを使ったビデオ信号は 外付け部品がべらぼうに多いじゃないか!と言われればその通り。きゃー石投げないでー。
コンポーネント表示のための背景
コンポーネント信号をはじめビデオ信号周りの背景に触れています。
各ビデオ信号の相関について
RGB、コンポーネント、Sビデオ、コンポジットの比較図があります。
コンポーネント信号の概要
コンポーネント信号及びD信号の概要説明です。
RGB→YCbCr信号の変換式
RGB信号からコンポーネント信号への変換方法について説明しています。
変換式を実現する回路図
以下に回路図を示します。(縮小表示しています。別窓で開くなどして等倍でご覧ください)
上記の計算式を実現する、オペアンプ周りの抵抗値計算についてはカラー化の野望 で解説しているのでそちらをご覧ください。
簡単な説明
簡単に解説します。PIC16F84Aを20MHzで稼動してます。RGBとSYNCの各信号を各1ビットの5Vppで 出力しています。それを3つのオペアンプを使ってY、Cb、Crの信号に変換しています。基本はAVRのものと同じですね。
3つのオペアンプはAVR同様にNJM2114DDを使いました。出来ればもっと速いオペアンプを使ってください。 オペアンプ周りの回路と抵抗値の計算はAVRのモノと一緒です。
電源回路について
反転増幅、非反転増幅の組み合わせなので、オペアンプには負電源が必要です。プラス側の電源はマイコンと同じ5Vで良いですが、 今回マイナス側の電源には8ピンPICとOS-CONで作る負電源を 使用しました。負電圧生成ICのLTC1144やその他何でも構わないと思いますが、大体-5V程度出力できる電源を ご用意ください。
プログラム(PIC 16F84A用)
プログラムを以下に示します。クリックしてダウンロードしてご使用ください。
とりあえず動いて画が出ることを最優先にしたので、処理タイミングが少々怪しいです。出力した画も 少し横に像が乱れているところがあります。が、面倒なので直しません。ご了承ください。
プログラムの処理説明
プログラムの処理内容について簡単に解説いたします。
AVRのものと処理内容はだいたい一緒ですが、MIPS値がAVRの4分の1しかないので、 横方向の解像度は4分の1しか実現できません。線の幅がAVRよりも太くなっているのはそのせいです。
それ以外はAVRのプログラムとだいたい一緒です。っていうか、単にAVR用のプログラムを移植 しただけです。
それにしても、この世代のPICってアセンブラで組みにくーーーーーーい!!!!!!!
今後の拡張性
マイコンからはRGB信号を出力していて、それをオペアンプでコンポーネント信号に変換して いるだけなので、この程度の解像度でよければどんなモノでも8色カラーで表示することは簡単にできます。
さらに、オペアンプ周りの回路は入力がアナログRGBでも対応可能なので、AVR同様総天然色が可能です。
でも、このクラスのマイコンを使うなら、MIPS値の大きいAVRを使ったほうが細かいドットが表示できるので、 AVRをお勧めしたいと思います。
でもまぁ、PICでもちゃんとカラービデオ表示が出来るんですよ、ということが判っていただけたのでは ないでしょうか?
その他、AVRの方の説明をご参照ください。
以上でこの工作を締めくくりたいと思います。