さて、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の仕様なんですね.
ハイエンドオーディオには不向きだなぁと、またしても愚痴を言いたくなってきました.
現状動作中の回路のタイミングチャートは以下になっています.というか、それが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 件のコメント:
コメントを投稿