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



相変わらずビデオ信号をマイコンで作ってしまおう
という妄想に囚われています。

結構一筋縄でいかないのは、バースト信号の電圧を
どうやって作るかという点。

バースト信号といえばC信号上に載っているので、
それを上手く逆手にとって、ちょっとくらいいい加減な
処理でバースト信号と思わせちゃうことができないかな?
と。

っていうのは、普通のマトリックス計算用の回路を
そのまま流用してバースト信号も出せないかな?と
企んでいるからです。

色相的には、バースト信号は黄色に近い位相なので、
仮に黄色系の色を出力させることでバースト信号の
位相と認識させられないか…という実験をしてみました。

黄色とバースト信号を見比べると、位相的には5~10°
くらいのズレがあるんですが、発色が少し狂う程度なら
我慢してしまえばOKでしょう。

問題はY信号側の方。水平同期信号の後ろに輝度が
載ることになるわけです。その載り方を表計算ソフト
でシミュレーションしてみました。




緑の線がY信号、橙色がC信号だと思ってください。

バースト信号のタイミングで、黄色の輝度を半分
にした信号を出力してみた感じです。
図中の赤い丸のところがY信号に載るであろう
エラーデータです。

さすがにC信号は少しだけ位相がずれるのですが、
これは致命傷にはならないでしょう。
もっと大きな問題はバースト信号の上に載った輝度信号。

これさえ悪さしなければバースト信号の代わりに使える
はずなんだけど…

といわけで実験。この間書いたVHDLを流用して、
バースト信号を黄色の半分輝度の信号に変えて実行
してみました。


…うーん、色は大体近い感じで表示されるんだけど、
なんだかシンクロがちゃんと取れない…

水平同期/垂直同期に悪影響を及ぼしているみたいだなぁ。


CPLDを使わず汎用ICで、しかも出来るだけ少ない
部品で作り出そうと画策すると、マトリックス処理を
行う回路を流用してバースト信号も出したくなっちゃう
ココロなんですが…うーん、玉砕。

この期間だけY信号を遮断すればひとまず出るはず
なんだけど、そのためには外付けICが増えちゃう…


ちなみに目下、2種類の方式について実現性を探っていて、
そのうちの一つがマトリックス処理をオペアンプで
やっちゃおうという作戦。(なので、上記のように
マトリックス回路でバースト信号も作り出したいわけです)

もう一つはもっとウルトラCな方法。こっちはこっち
でいろいろ難しい…

いずれにしても、少ない部品数、しかも汎用部品だけで
こんなことするっていうとやっぱり色々難しいな。
部品の数の縛りを掛けなければもっと簡単なんだ
ろうけど…。



コメント ( 0 )




A.C.さんにクロック同期設計を教えていただいて、
髭を剃りました。



綺麗、綺麗!

最終出力部分をこんな風に一旦FFに入れておいて、
クロック毎のエッヂで出力するかんじです。

-- calculate V-out
process (C_signal,Y_signal)
begin

Vout_tmp <= Y_signal + C_signal;

end process;


-- synchronizer
process (clock_in)
begin

if (clock_in'event and clock_in = '1') then

V_out <= Vout_tmp;

end if;

end process;


(不等号は全角に換えてあります)
で、それを使ってこの間のビデオ出力のVHDLを
もう一回うごかしてみたんですが、なんとなく
チラチラと信号が安定しないのが気になってました。

TINY2313のクロック源がブレッドボードで安定してない
ことが原因かなぁと思っていたんですが、どうやら
そうではなさそうな気が…

修正後のVHDLを動かしてみたあと、A.C.さんが
「3ビットDAC」のお話をされていたのを受けて、
出力する抵抗の下位から1個、2個と取り外していって
3ビットDACまで減らしてみたんですが、そしたら
なんとなく映像がクリアになったんですよね。

ということは、原因はCPLD側にある様な気が…

VHDLの内容は後でもうちょっとブラッシュアップ
する必要がある気がするな…

ちなみに3ビットDACにしてみた時の映像です。



例によって水色が緑っぽく見えますが、これは
ビデオキャプチャーのせいです。テレビには水色で
表示されます。5ビットDACとは若干発色が
ことなりますが、8色表示として変ではありません。

うーん、3ビットでも結構いけてるジャン!
4ビットについては5ビットとの違いが殆どわかり
ませんでした。もともと5ビットなんでいらなかった
ってことかな?

4ビットにするなら、フルアダーの回路規模ももう少し
小さく出来るだろうし、抵抗もカーボン皮膜で
充分じゃないかなぁ?




コメント ( 0 )




VHDLをシミュレーションすると、髭がいっぱい
生えちゃうんですよね。



この図はちょっと極端な例かもしれませんが、
グレーコードとか意識して出力できるような
信号じゃないので、どうしてもクロックとクロック
の間で髭が生えてしまう…

このての話はどう捉えて、どう対処していけば
いいのやら…

CPLDは比較的遅延が少ないからアレなんだけど、
FPGAは遅延がマチマチだろうから、そういう
場合にどう捉えればいいんでしょうねぇ?

特に、合成を行うたびに遅延の現れ方も変わってくる
だろうし…



コメント ( 5 )