« 2010年6月13日 - 2010年6月19日 | トップページ | 2010年7月4日 - 2010年7月10日 »

2010年6月20日 - 2010年6月26日の1件の記事

2010年6月25日 (金)

XP2でアナログ液晶にカラーバーを出す

カラーバーらしいものは出たが(6/18/10)
 雑誌付録FPGA基板Lattice XP2でカラーバーを出すために、小さなブレッドボードに、モニターからの20ピンのソケットをさし、例の雑誌特集記事(トラ技2009年11月号「入門!画像表示回路の作り方」)を参考に配線を始めた。この7インチのTFT液晶(シャープLQ070A3AG01)は、水平、垂直の分離したTTLの同期信号入力だけでなく、アナログのコンポジット同期信号入力を持っている。

S_a6252999

 どちらにするか迷ったが、既にコンポジット同期はXilinxの頃のものが出来ているし、雑誌の記事もこちらから入力するようになっているので、これを同期入力とした。色信号線は、雑誌の記事をそっくり真似て、75オーム終端で1VP-Pに抵抗で分圧する。カラーバー(といっても規格モノではなく自作仕様)だけなので、出力は単に1か0だけである。

 配線は準備を周到にしたおかげであっさり終わった。XP2の方はすでに論理合成まで済んでおり、その後は特にトラブルもなく、ピンアサインや、JEDファイル作成まで正常に終った。コンフィギュレーションもFPGA基板上のLEDが点き無事書き込まれた。XP2はこれで動き始めているはずだ。最初は慎重に、モニターをつながず、出力をオシロに出す。

 恐れていた通りオシロには全く何の波形も出てこない。まあ、これはいつものことだ。同期出力に固定していたオシロをはずして、各部の電圧を調べていく。オシロはこういうときに実に便利だ。簡単に電圧が測れるし、テスターでは見えないパルス波形も見られる(前は調子に乗りすぎ、プローブをあちこちあてすぎてFPGAを壊した)。 その結果、クロックや電源などは想定どおり出ているが、出力だけが出ていないことが分かる。

 リセットをしてみる。デバッグのつもりで入れたLEDが点く。うむ、リセットは動いているようだ。ややや、リセットを押すとオシロに何か出た。何と、何と、またリセットの極性が逆だ。リセットを押すと同期信号が出る。やれやれ、回路図ではプルアップされていたのでてっきり負論理だと思っていたら、どこかで逆になっている。

 リセットを正論理にして、論理合成からやりなおし。通電した。よーし、オシロにおなじみのコンポジット同期信号が戻った。色信号の波形も出ている。定格の0.6V以内だ。いよいよ、モニターを接続する。電源を入れた。画面が出た。水平同期のとれていない、横流れの画像だが、とにかく画面にFPGAからの信号が表示された。

S_a6172990

 同期周波数が合っていないからだろう。Hブランクや、Vブランクのパルスの幅を調整して、カラーバーが出るように追い込んだ。しかし、安定しない。画面上部は昔のビデオデッキのようなスキュー歪みが出るし、垂直同期が安定していない。画像がフラフラする。こんな不安定な筈はない。

インターレースを忘れている?(6/19/10)
  調整しても、安定したカラーバーの画像にならない。どうもおかしい。オシロで波形を測定する。何い? 水平同期が17Khz以上だぞ。この同期信号入力はNTSC信号が来ることを想定して作ってある筈だ。それに17Khzも入れて安定するわけがない。S_a6182992

 気を落ち着かせて、もう一度、最初から調べ直す。するとアナログ液晶のハード接続のところでさぼっている設定が見つかった。この液晶は、NTSCだけでなくPAL信号なども出せるようになっており、これらの制御ピンはオープンではなく全部5Vでプルアップせよと雑誌記事(京谷氏)にあるが、それをやっていない。

 藁をつかむ気持ちで、これらの制御ピン(4~8)に12Vから分圧した5Vを与える。うむ、今度は画面の乱れはなくなったが、画面は暗いままである。かろうじてカラーバーであることがうっすら画面に出ているが、これではカラーバーが出ているとは言えない。前のカシオ液晶のときと全く同じ現象だ。

S_a6253009

 実は、今度の同期信号線はNTSCのインターレース(画面2枚分を同期をずらして送る)を考慮していない。画面が少しちらつくだけでノンインターレースの信号を入れても大丈夫なはずだが、画面が暗くなってしまうのは、もしかすると、これが原因なのかもしれない。同期がずれたところは、鮮やかな色が出ているところがある。そんなはずはないとは思うけれど、何となく不安だ。

 ちょうど良い機会なので、インターレース同期を勉強して、コンポジット同期に入れてみることにした。垂直同期の等価パルスや、切り込みパルスのところを、いちから作り直す。ちょっと意地になっている。しかけはそう難しくはない。奇数フレームと偶数フレームを識別して、垂直同期を1/2ライン(1/2H)ずらせば良いのだが、HDLで表現するとき気をつけないとノンブロッキング代入によって想定した変数が変わらないときがある。マイコンのように気楽なコーディングは出来ない。

インターレースになったが依然として色が出ず(6/22/10)
 なんとか、想定どおりのインターレースのコンポジット同期信号になった。念のため、ロジックアナライザーを持ち出して、確認する。よし、奇数フレームの垂直同期が1/2H遅れて出て、偶数フレームは元へもどる同期パルスになっている。意気揚々と画面のテストに入る。しかし、期待に反して、画面は前と全くかわらない。上部の細かな水平同期の歪みはなくなったが、依然として色が出ないことには変りはない。画面が暗くなるのは何故なのか。謎は深まるばかりだ。

 そのうち、色々いじっているうちにジャンパーの1本がはずれ、突然、鮮やかなカラーバーがでた。あ、あ、あ、これはどういうことだ。はずれたのはグランド線で、グランドを浮かすと、垂直が僅かづつずれていき、白であるべきところが黒になっているものの、鮮やかなカラーバーが出ている。

S_a6253002

 ちょうど、すんさんの掲示板で、みなさんがDE0(アルテラのFPGA評価ボード)の話題で盛り上がっていたところだったので、コメントのついでに状況を報告した。すると、すんさん自らが、「アナログ信号のグランドレベルがクランプされていない?」という情報を返してくれた。

 早速、「クランプ、NTSC」で検索すると、沢山ヒットした。そうなのだ。NTSCのベースバンドのビデオ信号は、同期信号はマイナス電位(-385mV)で、色信号が0Vから0.7Vである。現在のこのシャープ液晶に入れている同期信号のグランドレベルは0Vだ。

 どうも、これが原因のようである。しかし、これを正しくするのはどうするのだ。クランプ回路がいるのか。前のカシオ液晶についていたNTSCアダプターのコンポジット同期出力は、TTLレベルで、この液晶指定のアナログではなく、色信号は、1V以上でていたが、不思議なことに何の問題なく正常に画面を出していた。それならというので、XP2の75Ωと300Ωで分圧したところを直結して色信号(3V)を入れてみるが、かえって画面は白っぽくなるだけ殆ど変わらない。アナログの話なのでどうしたら良いか分からない。

 冷静になって考えてみたら、この液晶モニターは、TTLの水平、垂直同期信号を独立して入力する端子がでている。ここまで意地になってNTSCフォーマットでカラーバーを出そうとしていたが、本筋とは余り関係がない話だ。あきらめきれないが、NTSCを断念して、独立同期信号でやってみることにする。

分離同期で、少し色が出たのでカラーバーが出たことにする(6/25/10)
 液晶モニターの設定を換えて、コンポジット同期から、水平垂直独立同期信号入力にする。20ピンケーブルで、液晶端子をすべてブレッドボードに持ち込んであった(念のため12Vのピンははずしてある)ので、設定変更は簡単に済んだ。5Vにつないでいたジャンパーをグランドに移すだけである。XP2のVerilogHDLソースも、コンポジット同期に較べれば、むしろ大幅に簡単になる。

 厄介だったのは、Latticeの統合開発環境ispLEVERのプロジェクトの分離だった。使い方をまだ完全に理解していないので、前のプロジェクトをSAVEし、新規のプロジェクトを起こして作り直したはずだったのだが、ispVM(コンフィギュレーション)のところで前のJEDファイルをXP2に書いてしまい、設定したピンに波形が出てこなくておおはまりだった。

 この解決に数時間を無駄にした。AVR開発の初期のころも、同じようなことにはまったことがある。AVRStudioでひと世代前のバイナリをせっせとロードして動かないと騒いでいた。こういう開発環境は上手く動いている時は良いが、ちょっと指定外のことをやるとおかしくなる環境が多い。こういうときはプロジェクトを全部ご破算にして、ソースだけから出発するのが一番解決が早そうだ。環境によっては、All Clearなどの機能がついているのもある。

 やっと指定したピンに分離同期が出ているのをオシロで確認して、液晶モニターを動かす。今度は、同期信号のレベルは関係なく、色信号線の電位で色がでるはずだ。通電する。うーむ、前に較べれば少しは色がでているようだが、NTSCのときのグランドが浮いた時の鮮やかな色に較べればまだまだ暗い。

S_a6252996

 このあたりはもう完全なアナログの世界だ。モニターのデータシートの輝度調整(BRT 12ピン)に電圧をかけてみると、明るさは増えてもコントラストが変わらず、白っぽくなるだけである。コントラストを変えるのは、9ピンのVCDC(LCD直流バイアス調整端子)なのだろうが、いずれも出荷時調整済みとあり、いじりにくい。

 すっきりしない幕切れだが、FPGAフォトフレーム計画のカラーバーを出すステップはこのあたりでとりあえず終了し、次のステップに進もうと思う。負け惜しみになるが、同期信号をHDLで出すことはだいぶマスターしたし、FPGAを勉強するという主目的は十分果たされた。

 次の第4ステップはビデオDACの制作だったが、デジタル液晶が手に入ったので、これはあとに延ばし、次の第5ステップを先に始めることにする。第5ステップの目標は、SPIなどを使ったプロセッサーとFPGAのインターフェースを作ることである。

| | コメント (2) | トラックバック (0)

« 2010年6月13日 - 2010年6月19日 | トップページ | 2010年7月4日 - 2010年7月10日 »