AVRスプライトを何とかカラー化したいと思って色々調べたり、
ぼんやり考えたりしていました。
コンポーネント信号でとりあえずRGB各1ビットの8色だけ
実現するか、それともRGB各2ビットで64色対応とするか…
多色対応とすると、コンポーネント信号を実現するのに一番
確実なのはやはりオペアンプを使ってアナログ値で演算する
ことなんだけど、ワンチップマイコンより高価なビデオ信号用
オペアンプを使うのはナンセンスだし…
うーん、そもそも、Cr、Cb信号の電圧ってどの程度なんです?
って思って、30分くらい真剣に検索かけて調べてみたんですよ。
Y信号は白黒コンポジット信号と同じなので、-0.3Vから
+0.7Vまでの1Vppですが、じゃぁ、Cr、Cb信号の
電圧の範囲って、結局何Vなのか? なかなか判りません。
Y信号に重畳させる青や赤の割合はwikipediaとか見ればわかる
んだけど、一方、Cr、Cbの電圧の範囲が何ボルトなのかが
探しても探してもぜんぜん情報ありません…
アナログ信号なのだから、まさか緑信号に対して赤や青の
レンジが狭いということは無いだろうと思うので、
(信号線のダイナミックレンジを活かす為に)多分、伝送の際に
一旦レンジを広げておいて、受信側で元のレンジに戻すという
事をやっているんじゃないかなぁ…と予想。
なんて考えてたら、なんとchanさんのサイトよく読んだら
書いてありました。さすがchanさんのサイトですね!!!
http://elm-chan.org/works/yuv2rgb/report_j.html
このページの丁度真中あたりにかかれています。
CrやCbの電圧は、-0.35Vから+0.35Vまでの
0.7Vのレンジということのようです。助かりました!
これが知りたかったんですよ!
(ちなみにペデスタルレベル=0Vで、シンクロ信号は
-0.3Vです。)
これを使うと、RGB各1ビットの8色に限定してしまえば
赤や青がオンの時にそれぞれ0.35V、オフの時は
-0.35Vとすればいいはずなので、これなら5Vの
出力を抵抗で分圧して、オンなら0.35V、オフなら
-0.35ボルトにすればよいと。
まぁ、抵抗の分圧で-3.5Vは難しいから、シンクロと同じ
-0.3Vで代替してもいいのでは?(と思ってますが…
ホントにそれでいいのか???)
そうなると、問題はY信号の方。RGBのそれぞれが
オン/オフの8パターンについて、輝度レベルに相当する
然るべき電圧が出力されないとならないわけです。
まぁ、それもRGB全部がONの時に470Ωになるような
3つの抵抗の組合せを考えればいいのであろうと…
うーん、野望に向かって1歩前進といった感じ。( ̄ー ̄)
あとはプログラムだな…
|
マイコンでテレビ表示は、とても興味のあるテーマですね。マイコンでやる場合は、どこまで細かいタイミングを制御できるかにかかっているので、出力部分はどうしてもアセンブラになってしまいます。また高速化のためビデオメモリーを確保しないといけないので、マイコンの選択肢が狭まってきますね。ATMega128なんかは、そういう意味でやってみたいデバイスです。
テレビ信号の情報は以下のところにもありました。
なひたふさんの、電子回路の豆知識のコーナー
http://www.nahitech.com/nahitafu/
あと、私のサイトのリンクページにある小山先生のところにビデオ信号ジェネレーターのページがありますが、ATtiny45でカラーバーを出しているのには脱帽です。
最近のHOTな話題としてpicfunさんの
PIC24Fの製作例 ビデオ出力オシロ
がたいへん、興味あります。作ってみたいと思っています。
http://www.picfun.com/
だらだらと長くなりますが、これからも、マイコンでテレビ表示を普及させていきましょう。
情報ありがとうございました。なひたふさんやchanさんの信号規格の話とか、小山先生のカラーバーのC言語ソースとか、私もすごく参考にさせてもらってます。
後閑さんのオシロには私も興味をそそられていたのですが、PIC24って速いんですね!しかもC言語でドットグラフ表示とか脱帽です!! うーんあれはSPIを上手く使ってメモリ容量にモノを言わせているからなのかな??? SPIでドット出力ですか…目からウロコの作戦ですよね。考えもしなかった…。白黒に限定するなら、SPI使うのが一番賢いかも知れません。
当面は、カラー化を私の課題として取り上げていきたいなぁと思ってます。カラーはさすがにSPIで、ってわけには行かないだろうなぁ…難問が山積です…
MEGA128は使ってみたいですね。メモリもSRAMもデカイし! 表面実装は経験無いので、私には使えるかどうか…。