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



AVRの時と同じオペアンプの回路を流用して、
PICでもカラーコンポジットでのビデオ表示が出来ました。

使ったマイコンが16F84Aに変わったこと以外は、
ほぼ同じ回路・抵抗値を流用しています。例によって
ブレットボードを使いました。↓こんな感じ。


左上が16F84A。右の上がY信号用のオペアンプ。
右下がCrとCb信号用のオペアンプ。ともに
NJM2114DDを使ってます。

あいかわらず抵抗と配線だらけです。
オペアンプの出力をRCA端子でコンポーネントビデオに
繋いでいます。

なお、左下は12F629で作る負電源回路です。-5Vを
作って、オペアンプに供給しています。

16F84A用のプログラムは、AVR用のものを移植
してみました。
ただ、AVRよりPICの方が処理速度が遅いので、
表示できるテクスチャの密度は当然粗くなってしまいます。

で、表示結果はこんな感じ…

(クリックするともう少し大きい画像が表示されます)

テクスチャの密度が単純に1/4倍になっています。
先日のAVRで表示したものと比べてみてください。
ちなみに、一番下のテクスチャは、横1ドットが3サイクル分。
(20MHzの12クロック分です)

とりあえず簡単に表示できるプログラムを目指したので、
処理タイミングが少々怪しいです。

なので、ご覧の通りテクスチャが変化する部分で横方向に
画像が歪んでいるのが判ります。
表示できるかを目的とした実験だし、めんどうなので
直さないことにします。

後で回路図とプログラムをドキュメントに纏めてサイトのほうに
アップしておきますので、ちょっとお待ちを。

それにしても、PICのWレジスタ…使いにくーーい!!!!
久々にPICのアセンブラを使いましたが、ずーーーーと
命令表とにらめっこ状態でした。

(代入が右から左に統一されていないのもわかりにくいし、
 条件分岐命令もイマイチだし、とにかく色々古い設計
 だなぁ…という感じ。私の少ない脳細胞では理解の
 範囲を超えてしまいます…)

AVRは、Wレジスタに相当するようなものが32個
ありますからね。ほんとラクチン。
そういう意味でもAVRのアセンブラはやっぱり組み
やすいなぁ…

そうそう。今回はRGBそれぞれ1ビット(0Vか5V)
の出力なので、8色表示ですが、5Vppで中間の電圧を
加えれば中間色の表示も可能です。

(R-2Rラダーで作るDA変換回路の場合は
 このオペアンプの回路とごちゃごちゃになって
 しまうので、一旦ボルテージフォロアで電圧を
 固定するなど対策しないといけません。念のため)

あと、今回もNJM2114DDを使いましたが、
SR=15V/usと、決して速いオペアンプでは
ないので、かなり波形は歪んでいるようです。
しかも電圧が±5Vと低いので…

二回路入りでもLM6172とか使えば、もっと
エッヂの立った綺麗な映像になるかと思います。

逆に、それほど細かい映像が必要で無いなら、
NJM2114DDでも充分用は足りるという
ことかもしれません。



コメント ( 2 )




マルツのセミナーで、後閑さんのPIC講座が
開かれるようですね。大御所登場といった
感じです。
http://marutsumake.blog74.fc2.com/blog-entry-318.html

PICの後閑さん、AVRの山根さんなどなど、
著名人を招いた講座を開催してくれていて、
いつも魅力を感じます。
山根さんのAVR講座はとても面白かった!

今回のPIC講座は初心者向けのようなので、
いまから参加というには…ですが、ある程度
テーマを絞って中級向けみたいな講座にしたら
面白いかもしれませんね。
(タイマーや割り込みまで触れるようなので、
 入門としては結構突っ込んだところまで
 やるような気がしますが)



コメント ( 0 )




白黒出力のプログラムをちょこっと手直しして、
カラーコンポーネントの映像を表示するプログラムに
してみました。

マイコンはTINY2313をチョイス。
オペアンプに組み合わせる抵抗値など回路は↓
http://picavr.uunyan.com/avr_m_color.html
ここの「まとめ資料、その2」(PDFファイル)に
載せてあるものをそのまま使っています。

これを、2回路入りのNJM2114を2個使って、
そのうち3回路でYCbCrのコンポーネントビデオ信号
に変換します。

ブレッドボードに組みました。こんな感じ。↓


もうグチャグチャです。しかも配線が足らなくなっちゃって、
仕方ないのでスズメッキ線をセロテープで絶縁したものを
作って代用。


ビデオ信号にあまり向かない(遅い)NJM2114を
使ったのは、ブレッドボードの面積が限られていたので
2回路入りを使いたかったのと、以前からこのオペアンプ
でコンポーネントビデオ出力がギリギリできそうだと
いう算段を立てていたので試してみたかったため。

で、表示してみた結果がこれ↓

クリックするともう少し大きい画が表示されます。

3つのRCA端子でコンポーネント出力とし、それを
千石で買ってきたコンポーネント-D端子変換ケーブル
でテレビに繋ぎ、デジカメで撮りました。
(ビデオキャプチャボードがコンポーネント入力に
 対応してないので…)

いきなりこの画面が出てきました。思いのほか大成功!

さすがにちょっとにじんだりしているところが
NJM2114ということなのでしょうが、
高速オペアンプに換えればその点は改善されるでしょう。
というか、にじみ具合がなんとなくノスタルジックな
雰囲気すら感じさせます (TーT)

とにかく、計算した抵抗値には間違えが無かったようで、
きちんとRGBの8色(黒も含めて)が出たので、
良しとします。

一応表示内容の説明を。
横方向には7色を並べました。
そして縦方向は4つに割って、解像度の異なる映像を
表示してみました。一番上がベタイメージ。下に
行くにつれ細かいピッチの映像になっています。

一番下側は、横1ドットが3クロック(@20MHz)です。
ドットクロックが0.15usです。この細かさになると、
オペアンプのオーバーシュートがそのまま映像に出てしまう
ようで、各色の左端のドットが潰れてしまっています。

何か応用アプリを作るとしたら、オペアンプはもう少し
速い物をチョイスしたほうが良さそうです。

プログラムなどは、資料を整理したらサイトにアップして
おきます。



コメント ( 0 )




コンポジットビデオ出力(D1端子出力)の対象マイコン
として、ひとまずミニマムパッケージにしようと思って
いるので、AVRはTINY2313、PICは
16F84Aと、どこのご家庭にも死蔵されているマイコン
を使おう思いました。
で、そういえばPICKIT2(もどき)で16F84A
に読み書きできるか確認しておくことにしました。

先日、Microchip社のPICKIT2ライターソフト
を使って12F629に書き込んだときには何の問題も
無く書き込めましたが、さて、MPLABからも書ける
のでしょうか?

実際にMPLABから書き込みメニューを開いてみると…

PICKIT2が有効になってません!
なんでだろう?

デバイス選択画面を開いてみました。デバイスには
16F84Aが選択されてます。
PICKIT2のところには赤い丸(選択不可)に
なっています。

試しにこれを他のデバイスにしてみるとPICKIT2が
選択できるように(緑の丸に)なります。

ネットで色々調べてみると、どうやら16F84Aは
MPLABからは書き込めず、PICKIT2ライター
を使わないといけないようです。

というわけで、PICKIT2ライターを起動して
書き込み、ベリファイ、初期化などやってみたところ
ちゃんと読み書きできました。
丁度手元に16F628もあったので試してみました。
こっちもOK。16F628ならMPLABからも
OKなようです。(ちゃんと緑の丸が出ました)

それにしても、なんでMPLABからは書き込みが
出来ないようになってるんだろう?

そうそう。PICKIT2にはconfigワード
の個別修正が出来ないので、昔からネットで公開
されているHEXファイル等は使えないことが
ありそうですね。
秋月ライターは当面手放せそうにありません。



コメント ( 0 )




ここのところ、ちょっと放置気味だったカラー化の野望
http://picavr.uunyan.com/avr_m_color.html
ですが、ココのところ色々と思案をめぐらせていた
甲斐有り、だいぶ前進しました。

さすがにコンポジットでカラー出力するにはもうちょっと
努力が必要なのですが、コンポーネント出力(もしくは
D端子出力)であれば、RGB各色を自由に、しかも
1ドット単位で色を付けることが可能なところまで
目処が立ちました。

時間が出来たら記事にして、ページを更新したいと思います。

まずは、AVRの白黒出力プログラム↓
http://picavr.uunyan.com/making_p_ntsc.html
でも修正して、簡単なカラー出力プログラムにでも
作り変えたいと思います。

なお、AVRだけでなく、PICでも簡単に応用が
出来るように考えておりますので、こうご期待!



コメント ( 2 )



« 前ページ 次ページ »