CPLDとTINY2313をブレッドボードでビデオ出力
したときの写真です。
まずSビデオ出力の方。
真中に鎮座ましますのは一番安いCPLD、
XC9536XLです。この間作っておいたPLCC→
ブレッドボードの変換用ボードを使ってます。
その左下はTINY2313で、RGB信号とシンクロ信号
を出力するだけの単機能プログラムが入ってます。
左上は5V14.31818Mhzのオシレータと5V→3.3V
レギュレータ。5V電源を供給してオシレータを駆動
し、3.3VをTINY2313とXC9536XLに供給しています。
CPLDの上と右に配線がゴチャゴチャしていますが、
ここに5個ずつ計10個の抵抗が置いてあります。DAC用
抵抗の要素です。そこから右上の銀色(S端子)を
通してSビデオ信号を出力しています。
Y信号とC信号がそれぞれ5ビットDACなので、
配線はゴチャゴチャしてますが回路自体は結構
シンプル。
もうひとつ。
こっちはコンポジット出力用の回路。
Y・C混合なので、DAC用の抵抗が1組(5本)
しかなく、もっとシンプル。
ただ、こちらはY・C混合のために合成回路が大きく
なっちゃっているので、XC9572XLあたりじゃないと
入りきりませんでした。
内部で5ビットのフルアダーを組んでいるので…
どちらにしても、テレビ内部の75Ω抵抗を含めて
DAC回路を構成しちゃっているので、CPLD
から抵抗だけを通じて直接テレビに繋げてしまって
いるのがいい感じだなぁと自画自賛。
ちなみにCPLDの中身ですが、Sビデオの方は
product termsは約80%消費。コンポジットの方は
約60%消費しています。
両者とも、RGB各1ビットの8色をコンポジットに
変換するだけでもこれだけの容量を食ってしまうと
なると、RGB各2ビットの64色コンポジット表示
を詰め込むんでも、回路規模的に厳しそうだなぁ。
レジスタのビット数などは余裕がたくさんある
んですけどねぇ…。
そうそう。色々デバイスをとっかえひっかえ
コンパイル&FITをやっていて思ったのですが、
この古いタイプのXC95シリーズよりもXCR30xx
(XPLA3)のようなCoolRunnerの方が、同じ
VHDLでも消費するリソースは小さくて済む
ようです。
なので多ビットRGBにしても規模的にはXCR3064で
収まりそうな気がする…。
しかもCoolRunner2と違ってI/Oが5Vトレラント
なので便利だしなぁ…。
入るかなぁ…。
本当は、デジタル数ビットずつのRGB入力
ではなく、アナログRGB入力タイプも作って
見たいんですが、CPLDにはダイレクトに
アナログ入力をするデバイスってないですよ
ねぇ。オペアンプとアナログスイッチを
内部で好きなように配線できたりとか。
マイコンだと、PsoCならオペアンプ内蔵のとか
有ったと思うんですが、CPLDの場合はやっぱり
外部回路にせざるを得ないんだろうな…
(まぁ、PsoC内蔵のオペアンプは動作が
遅くてビデオには使えないんですけどね)
それにしても、カラー化の野望。ほぼゴールが
見えてきたな。
今回のRGB→コンポジット変換からの教訓は、
マイコン側のクロックとCPLD側のクロックが
シンクロしていないと、特にCPLD側の14.31818Mhz
を1ライン910クロックで動かさないと、C信号の
エッヂが上手く安定せずにゆらゆらした映像が
出ちゃうってことでしょうか。こういうことは
やっぱ何か作って弄ってみないと判らないもんな…
全部をCPLD内やFPGA内で済ますことが
出来れば、クロックのズレも無い筈なので、
もっと綺麗な映像が出せるだろうということも
なんとなく判りました。
コンポジットビデオ信号といえば、地デジの
スタートで規格自体が無くなりそうな勢いですが、
現実にはRCA端子1本で繋げる容易さで多分
長い間生き残ることになるんじゃないかと
思ってます。
最近のデジカメの「ビデオ出力端子」も
コンポジット出力ですしねぇ。
なので、コンポジット信号を極めておくことは
それほどムダにはならないような気がします。
それに、コンポジットまで理解できていれば
YCbCrやYPbPrなどは恐るるに足らずなので、
理解しておいたら後々十分に役立つでしょう。
|