JR-100のビデオ出力をGV-USB2でキャプチャすべくPICマイコンで同期信号を整形します。回路は一応できたので、次はプログラムを作るために、そもそもJR-100がどんな映像信号を出力しているのかを整理してみます。
NTSC同期信号とJR-100の同期信号、MB14392のSYNCピンから出力される信号(これを同期信号整形回路の入力とします)、目標とする整形後の同期信号の関係はこのようになっています。
図では垂直同期付近を示しています。本来はフィールドの先頭は1.5μsあるフロントポーチの開始時点からですが、ここでは便宜上、水平同期信号の立ち下がりエッジをフィールドの先頭と考えます。垂直ブランキング期間(フィールド1~20)のうち、フィールド1~3を前置等化パルス、フィールド4~6を垂直同期パルス、フィールド7~9を後置等化パルスと呼びます。
通常のインターレース走査の場合は等化パルスや垂直同期パルス内に、0.5フィールド毎に通常の半分の長さの2.3μsの水平同期パルスが入りますが、インターレースの場合はそうする必要はないはずで、通常通り4.7μs秒のパルスがフィールド枚に1個ずつ入るものと考えます。
それに対してJR-100の同期信号は、まずフィールドの先頭で出力される水平同期パルスの長さが8.9μ秒と本来の約2倍となっています。便宜上3.579545MHzを基準にすると、8.9μsは32サイクル分です。また1フィールドの長さは62.6μsで、これは224サイクルです。垂直同期パルス期間では、一度8.9μsのHighレベルが出力されたのち、8H分(500.6μs=1792サイクル)の同期パルスが生成され、44.7μs(160サイクル)のHighレベルを経て再び8.9μsの水平同期パルスが1フィールド毎に出力されます。
この同期信号はMB14392のSYNCピンから出力されていますが、このピンの極性は反転していて、水平同期の開始は立ち下がりではなく立ち上がりエッジになっています。このSYNCピンの出力をPICマイコンのRA0に入力し、RC0からNTSC同期信号と同じ波形の信号を出力することが目標になります。
PICマイコンのプログラム上は、処理を簡単にするために垂直同期パルスの最初のフィールドを行番号0と考えます。つまり「行番号=フィールド番号-4」です。
さて、行番号0の位置はどうやって検出したらよいでしょうか。それには以下のようにすることにします。
- MB14392のSYNC(RA0)の立ち上がりエッジを検出する。
- 検出してから13μs後のRA0の状態を求める。
- RA0の値がHighレベルならそのエッジは垂直同期の開始時点とみなす。そうでなければそのエッジは無視する。
- 垂直同期の開始から248番目の立ち上がりエッジを検出する。
- このエッジを行番号0の開始時点とする。
行番号0が見つかったら、あとはNTSC同期信号と同じになるように一定時間毎に正しい同期信号をPIC内で生成して出力するだけです。ただし行番号9以降は、MB14392から水平同期信号の出力が再開するので、この水平同期信号の立ち上がりを検出したら4.7μsのパルス信号を生成するようにすればよいでしょう。
これで方針が決まりました。次はこれを実行するプログラムを書いてみます。
コメント
恐らくカラーバースト信号が無いせいだと思います。
アナログビデオデッキを通して出力したものをキャプチャすると良いかもしれません。
コメントありがとうございます。まさにカラーバーストが怪しいと思ってます。
アナログビデオデッキを通したらカラーNTSC化してくれるのであれば、確かにそれが原因なのかを確かめられそうです。
ただアナログビデオを調達するのが難しいかもしれません(^^;
代替案を考えてみます。