「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



VHDLでSビデオ出力のスクリプトを書いて、
マイコンからのRGB信号をSビデオに変換する
ところまで出来たので、残るはY信号、C信号を
CPLD内部で合成してコンポジット出力を
行ってしまおうということにします。

そもそもスクリプト自体は書き終わっているので、
あとはチップに書き込んでブレッドボードで
組み上げるだけ。

というわけでやってみます。

ネックだったのはXC9536XLでは規模が小さすぎる
のでY・C混合の処理が取り込めないということ
でしたが、結局先日XC9572XLも買ってきてしまい
ました。これを使います。

早速表示。どうだ!?



出た!
出た!?

惜しい… 右側が微妙に変。輝度だけ出ていて
色信号が出てないみたい。

あれだな。VHDLの修正漏れだな。この間の
singedとunsignedの件だな。類似個所の洗い出し
を手を抜いたってヤツです。Yだけ直して
Cは忘れてた…と。

修正漏れは恥ずかしい以外の何物でもないですが、
まぁDIYだから良いことにします。

というわけで、気を取り直して、じゃーん。


出た出た。しかも、やっぱりチラチラノイズは
出ませんね。綺麗に安定して表示されてます。

あれはやっぱり端子か配線で出ているノイズ
だったんだろうなぁ…。S端子のソケットの抵抗
を試しにテスターで計ったら、なんか微妙な
不安定さを示したので…。

ちなみに、水色が微妙に緑に片寄っているのは
やはりビデオキャプチャーの影響ですね。
テレビ画面で水色のところを写しながらキャプチャー
画面を見比べてみたら、やっぱり少し緑がかって
みえます。

デジカメでも撮って見ましたが、↓

やっぱりちゃんと水色。OK、OK。

もう一つの問題は、エッヂがフニャフニャしている
点ですが、これはサブキャリアの3.58MhzとTINY2313が
出力している信号1ライン分(64.3us…ちょっとズレて
ますね)が丁度ウネリを生じているようです。
今回作ったVHDLのように、マイコンなどからの
不正確なタイミングの信号を受け取って表示する場合は
どうしてもウネリが生じてしまうはずなので、ある程度
仕方ないでしょう。

純粋に、14.31818Mhzにシンクロさせて1ライン910クロック
とし、4フィールドシーケンスなどできちんとカラーの位相
も考慮して表示させたら、ちゃんとエッヂの立った映像
が出せるはずです。


面白いのは、白と黄色、水色と緑、マゼンダと赤は
それぞれ色の隙間がないのに対し、黄色と水色、
緑とマゼンダ、赤と青の間には微妙な隙間が出来て
いること。
C信号の波形が切り替わるところで色が上手く
認識できないところが有るってことだろうな。

各色のベクターと見比べたら、なんかしらの傾向が
見えてくるかも。

とりあえず、コンポジット信号の表示まで上手く
できたので、この実験はこれで満足。

あとでサイト上に解説つけてまとめていきたいと
思います。
…VHDLのコーナーを増やそうかな。




コメント ( 0 )




VHDLでカラーコンポジットのビデオ信号を
作っちゃおうという話の続き。

RGB信号を生成するTINY2313とそれをコンポジット
(というかSビデオ信号)に変換するXC9536XLは
3.3V駆動に、14.31818Mhzのオシレータは5V駆動に
してみました。

で、こんな感じ。


ひとまずここまでは行きました。

なぜかキャプチャー画面では発色が変だったり、
色と色の間に縞々が挟まってしまうのですが、
テレビ画面ではそんなことはなく、綺麗に表示
されているんですけど…なんだろう?

発色がテレビ画面とちょっとズレてしまって
ます。黄色はもっと明るく、水色はもっと水色で、
表示されてるのに…
キャプチャーの特性なのかな?
テレビはSビデオ信号で、ビデオキャプチャーは
コンポジット信号だからかなぁ?


5Vにしたのでオシレータの発振はちゃんと安定
したみたいなんだけど(90度位相の色ずれが発生
しなくなりました)、時々ちらりちらりとノイズ
が入るんですよね…

このノイズの原因はイマイチ判らないんですが、
多分VHDLのバグとかTINY2313のバグとか
じゃなくて、電気的な安定性とか、ブレッド
ボードの影響とか、使っている端子やコネクタ
の品質とか、そこらへんな気がします。
いかんともし難い…
(C信号の線を抜くと、綺麗な白黒映像が出る
 ので、多分C信号周りなんだよなぁ…)

ちなみに、一番下の細い線の横1ドットは、
10MhzのTINY2313で6クロック分です。
20Mhzで6クロックでは色はちゃんと載るのかな?



とりあえずこのまま放置して、CPLD内で
Y信号C信号混合したコンポジット出力に
注力しようと思います。
(まぁ、そっちのVHDLももう出来てるん
 ですけどね)



コメント ( 0 )