2016年10月25日火曜日

FPGAでHDMIの液晶モニタに画を映す (5) とりあえず映った

今日は寒いですね.我が家では早くも一部の部屋で暖房をオンにしました.

さて、FPGAでHDMI信号を発生させ、液晶モニタに画像を映すトライはとりあえず成功しました.640x480で表示させています.verilog sourceはネットのサイトからの引用です.今日は説明を割愛します.アスペクト比が4:3にならずに16:9になっちゃってるなぁ.

プリント基板の状況はこんなです.HDMIケーブルの、RGB+CLK+GNDの合計12本だけ配線しました.それ以外の制御線や5Vは配線しなくてもOKです.

HDMI規格書を読んでの巨大な誤解がありました.
誤: 640x480  pixel周波数25.2MHz   HDMIクロック周波数252MHz
正: 640x480  pixel周波数25.2MHz   HDMIクロック周波数25.2MHz

わたしは、252MHzがHDMIケーブルを流れるのだと誤解していたのです.
すなわち、HDMIケーブルを流れるクロックはチャネルクロック=252MHzではなく、キャラクタクロック=ピクセルクロック=25.2MHzなのでした.

ゆえに液晶モニタでは25MHz→250MHzの周波数変換をしていることがわかりました.
というか、それがHDMIの仕様なんですね.
ハイエンドオーディオには不向きだなぁと、またしても愚痴を言いたくなってきました.

現状動作中の回路のタイミングチャートは以下になっています.
  clkp/clkm   HDMIクロック    =25MHz
  rp/rm        ビデオRED       =250Mbps
  gp/gm       ビデオGREEN   =250Mbps
  bp/bm       ビデオBLUE     =250Mbps
以上の信号はHDMIケーブルを流れる差動信号です.

下段のchclkはFPGA内部信号です.=250MHz

手描きの←→は、1キャラクタ=1ピクセル=25MHzの期間を表わしています.

ちなみに、正式には25.2MHzであるべきところですが、25.0MHzでも動きました.
FPGAのPLLが、50MHz(XTAL)→252MHz(PLL) への変換に非対応だったためです.

その4へ    その6へ

かしこ


人気ブログランキングへ

0 件のコメント:

コメントを投稿