FC2カウンター FPGAの部屋 ZedBoardでHDMI出力13(HDMIに出力できた)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

ZedBoardでHDMI出力13(HDMIに出力できた)

前回、キャラクタは表示できても色がおかしかった。その状況から、RGB - YCbCr変換がおかしいのか?と疑ったが、変換はおかしくないようだった。
その次に、YUV変換なのかな?と思っていたが、ツイッターでY, Cb,Crの値を教えていただいたので、現在のRGB - YCbCr変換はおかしくないようだということがわかった。
次にADV7511 Programming Guid Rev G のTable 18 YCbCr 4:2:2 Formats (24, 20, or 16 bits) Input Data Mapping: を見ると、現在はStyle 2, 16bit(赤の四角で囲った部分) で使用しているが、24bit, 20bit はCb, Crの方が先でYが後なのに、16bitだけYが先になっている。どうも怪しい。この図で行くと16bit の部分もCb, CrとYというフォーマットじゃないだろうか?と思った。つまり、Style 3(ピンクで囲った部分)にする必要があるのでは?と思った。下にTable 18を引用させていただく。
ZedBoard_HDMI_37_121127.png

(こちらの回路では、YとCb, Crを連結してhdmi_data[15:0] に出力している)

そこで、Style 3に設定した。具体的にはADV7511のレジスタ設定の0x16番地を0xb5 から0xbd に変更した。”ZedBoardでHDMI出力7(ADV7511のレジスタ設定1)”を参照。

iic_write(0x39, 0x16, 0xbd); // [3:2] -> Input Style => 11 = style 3


その他の設定はリファレンス・デザインの通りにした。そうすると、ちゃんとした色で出力できた。マニュアルが間違っていたようだ。
ZedBoard_HDMI_38_121127.jpg

良かった。嬉しいです。
リファレンス・デザインはどうやって出力しているか見るために、Verilog HDLコードを見てみたが、やはり、Cb, Crが上位ビットでYが下位ビットだった。本当に人騒がせなマニュアルだ。(怒怒怒)
リファレンス・デザインでは、cf_ss_444to422.v の123行目~134行目に、YCbCr422の出力部分がある。

次にDVIでも出力できるのか?を探るために、HDMIからDVIにモードを変更してみた。

iic_write(0x39, 0xaf, 0x04); // [1] -> HDMI/DVI Mode Select => 0 = DVI Mode
// iic_write(0x39, 0xaf, 0x06); // [1] -> HDMI/DVI Mode Select => 1 = HDMI Mode


そうすると、また違ったように色がおかしくなってしまった。
ZedBoard_HDMI_39_121127.jpg

ADV7511 Programming Guid Rev G の19ページ、4.2.2 HDMI DVI Selection を見ると、” DVI only supports the RGB color space”だそうだ。YCbCrはサポート無しとのことだった。もう一度、HDMIモードに変更した。

ZedBoardでVGAサイズの画像をHDMI出力することが出来た。
  1. 2012年11月27日 04:22 |
  2. ZedBoard
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/2317-459c9603
この記事にトラックバックする(FC2ブログユーザー)