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



makeマガジンのブログで取り上げられていた
http://jp.makezine.com/blog/2008/12/fritzingfritzing_open_source_pcb_design.html
http://jp.makezine.com/blog/2008/12/paas.html

こういったレイアウトツール。いいですねぇ。
まだダウンロードしてないので使用感は解りませんが、
ブレッドボードならまだ抜き差しが簡単に出来るに
しても、ユニバーサル基板は配線まで考えて事前に
練り上げておかないと、あとでビックリってことが
ときどきありますからね。(特に配線の方)

いつもはPCBEのような基板作成ソフトとかで
代用していました。専用のソフトがあるときっと
便利。試してみたい…。




コメント ( 0 )




武蔵野電波のブレッドボーダーズ。
http://pc.watch.impress.co.jp/docs/article/backno/musashino.htm
一旦終了になるそうです。お疲れ様でした。

ひとまずの最終回はPOVでした。
POVはいつか作ってみようと思っていたものの
一つなんですが、こういう風にarduinoで作ると
やっぱり容易に出来ちゃうってことなんだろうなぁ。

個人的には
 「ニャニャニャニャニャニャ…」
が凄く気に入っちゃったなぁ。

こんど作ってみよう。

また新装開店するのを楽しみにまちましょう。



コメント ( 0 )




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などは恐るるに足らずなので、
理解しておいたら後々十分に役立つでしょう。




コメント ( 0 )




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 )



« 前ページ 次ページ »