JR-100のビデオ出力のカラーNTSC化(2) LM1881Nの挙動

コンパレータで映像信号を取り出すところはうまくいきました。次に同期信号を分離する回路を検討します。JR-100の同期信号はかなり特殊なので、専用ICでどこまでうまく取り出せるものなのかが注目ポイントです。 LM1881Nによる同期信号分離 同期分離にはスタンダードなLM1881Nを使います。回路はデータシートに載っているリファレンス回路そのままです。早速ここにJR-100の映像信号を入力してみます。 CSYNC出力 青い線が入力、赤い線がLM1881NのCSYNC出力(1番ピン)です。きれいに同期パルス部分が取り出されています。内部では単にコンパレータで一定基準以下の電圧を取り出しているだけで … “JR-100のビデオ出力のカラーNTSC化(2) LM1881Nの挙動” の続きを読む

JR-100のビデオ出力のカラーNTSC化(1) 設計方針とコンパレータ比較

JR-100が出力するビデオ出力は同期信号の波形や信号レベルがNTSC規格から大きく外れており、ビデオキャプチャ装置での取り込みができませんでした。前回は水平・垂直同信号を規格になるべく合うように変換・生成するように対策し、結果としてモノクロNTSC規格にほぼ準拠するレベルになりました。しかしそれでも取り込みできず。そこで今回は、取り込みできない原因がカラーバースト信号が入っていないことであるという予想のもと、対応を検討していきたいと思います。 さて今回もPICマイコンを使って対応しようと思います。ただし3.579545MHzのカラーバースト信号を生成するためには、せめて1波長で3サンプルは出 … “JR-100のビデオ出力のカラーNTSC化(1) 設計方針とコンパレータ比較” の続きを読む

JR-100のNTSC信号を標準化(7)

NTSC変換回路の最後の仕上げ。ユニバーサル基板上で組み上げ、完成品として形にします。すでに今回の回路には画面がブレるという課題も見つかっているのですが、自分の経験値を高める意味で最後まで取り組みたいと思います。 基板に組み立てる前に、ブレッドボード上でのビデオ出力信号をオシロスコープで観測してみます。 映像信号部分を抜き出しています。黒レベルと白レベルの間の電圧は約0.7Vなので想定通りの出力値ですが、ノイズがひどいです。オシロの周波数計測機能を使うと、このノイズの周波数は約16MHzでした。クロック周波数の2倍ですが、どう関係するのかは私の知識ではまだ分かりません。が、とにかくこのノイズが … “JR-100のNTSC信号を標準化(7)” の続きを読む

JR-100のNTSC信号を標準化(6)

組み立て直後の最初の電源投入時は同期が全然合わず画面が表示されなかったり上下左右に流れてしまったりと途方に暮れる状況でした。実機デバッグでは入力信号をコントロールできないため、いろいろな場所にオシロスコープのプローブを当てて、信号の波形やタイミングが正しいかを地道にチェックするのが、ハードウェアのデバッグなんだと感じました。 さて、デバッグ終了時点での時点での実行結果を見てみます。なお今回の回路から液晶ディスプレイへの接続には、I/OデータのVABOX2を使ってます。これを通すとちゃんと映るんですが……(動画は液晶ディスプレイをiPhoneで撮影)。なおこの段階ではPICに入力する水晶発振子の … “JR-100のNTSC信号を標準化(6)” の続きを読む

JR-100のNTSC信号を標準化(5)

前回までで、SCL(Stimulus Control Language)によるJR-100の模擬出力データ生成プログラムと、実際にPICに組み込むプログラムができました。今回はこのプログラムをデバッグします。まず机上で、次に実機で挑戦です。 今回のプログラムの特徴は、外から入ってくる信号に応じて正確な時間で信号を生成する必要があることです。デバッガで機械語の1命令ずつステップ実行すればロジックの正しさは確かめられますが、時間の観点でも意図したように動いているのかは分かりません。 しかしこういうことのためにMPLAB X IDEはちゃんとStopwatchという機能を用意しています。この機能は、 … “JR-100のNTSC信号を標準化(5)” の続きを読む

JR-100のNTSC信号を標準化(4)

JR-100のビデオ出力信号をNTSC規格になるべく従うよう整形すべく、PICマイコンを使って何とかしようという企画の4回目。前回までで開発環境とデバッグ用のプログラムを作るところまではできました。今回はいよいよPICのプログラムを作っていきます。かなり正確な時間のパルス幅を作る必要があるのと、PICのMIPS値が最大でも8MIPSと余裕がなさそうなことから、アセンブラで記述しています。 まずプログラムに行く前に回路図を少し修正します。 修正のポイントは、PICのインサーキットデバッグをするために、同期信号の入力ピンをRA0からRA2に変更したことと、PICkit3の接続用のポートを設けたとこ … “JR-100のNTSC信号を標準化(4)” の続きを読む

JR-100のNTSC信号を標準化(3)

JR-100の同期信号が整理できたところで、PICのプログラミングに入ります。と、その前にプログラムテスト用の信号をSCLで作っておきます。プログラムとしては単純で、適当な間隔でRA0ピンの状態を0(Low)と1(High)で切り替えるだけです。垂直同期信号を検出する前の処理も確認するために、最初の垂直同期信号を出す前に水平同期信号を1回分出しておくことにします。またプログラム開始直後は100サイクル分の待ち時間を入れておくことにします。 できたプログラムはこれです。

wait for文の引数に変数を指定しても変数値がちゃんと参 … “JR-100のNTSC信号を標準化(3)” の続きを読む

JR-100のNTSC信号を標準化(2)

JR-100のビデオ出力をGV-USB2でキャプチャすべくPICマイコンで同期信号を整形します。回路は一応できたので、次はプログラムを作るために、そもそもJR-100がどんな映像信号を出力しているのかを整理してみます。 NTSC同期信号とJR-100の同期信号、MB14392のSYNCピンから出力される信号(これを同期信号整形回路の入力とします)、目標とする整形後の同期信号の関係はこのようになっています。 図では垂直同期付近を示しています。本来はフィールドの先頭は1.5μsあるフロントポーチの開始時点からですが、ここでは便宜上、水平同期信号の立ち下がりエッジをフィールドの先頭と考えます。垂直ブ … “JR-100のNTSC信号を標準化(2)” の続きを読む

JR-100のNTSC信号を標準化(1)

MPLAB X IDEのデバッグ方法が分かったところで、JR-100のコンポジットビデオ信号をPICで(ほぼ)正しいNTSC信号に変換する回路を検討していこうと思います。目的はJR-100のビデオ出力信号をビデオキャプチャアダプタGV-USB2でキャプチャすることです(参考記事:JR-100+GV-USB2)。エンジニアなら、動かなければ自分で作る、というのが基本ですよね!? まず映像関係のパラメータをまとめてみます。MB14392内の処理が不明のため、以前の計測結果から推定してます。JR-100に搭載されている水晶発振子の周波数(14.31818MHz)に対して、どれもほぼ整数倍になっている … “JR-100のNTSC信号を標準化(1)” の続きを読む

JR-100拡張バス用カードエッジコネクタ入手

JR-100の拡張バスに取り付けられるカードエッジコネクタを入手しました。2.54mmピッチの50ピンですが、このタイプのものはなかなか売ってないですね~。ヒロセ電機のCR22A-50D-2.54DS(70)というモデルがマルツオンラインで売っていたので早速購入。税抜き853円でした。 後ろは2.54mmピッチの足が出ているのでユニバーサル基板に取り付け可能です。ただし足が細くて、ブレッドボード用によく使うジャンパーコードは差し込んでもゆるくてすぐ抜けてしまいました。一度基板に半田付けして、そこからピンヘッダに変換してあげないとだめそうです。50本も結線するのはなかなかつらいですが……。