用Zedboard上的ADV7511输出灰度图-Debug

太长不看

之前寄存器配置的有问题,所以画面泛黄。用了这个博客里的寄存器配置就好了:

https://blog.csdn.net/u010942671/article/details/70383247?utm_source=app

不过需要注意自己工程中Y和CbCr引脚配置是不是和Style1一样。


前期准备

保证输入芯片的信号是正确的,这里就暂不复述了。可以参考CEA-861-D.pdf,我现在这个工程中用的1280x720p @59.94/60 Hz (Format 4),YCbCr 4:2:2。

下载ADV7511_Hardware_Users_Guide.pdf和ADV7511_Programming_Guide.pdf。


Zedboard上的ADV7511

Zedboard上的ADV7511能用的图像数据输入引脚就16个(D8~D23):

用Zedboard上的ADV7511输出灰度图-Debug_第1张图片

所以我们能够使用的数据输入格式如下表所示:

用Zedboard上的ADV7511输出灰度图-Debug_第2张图片

Style 1、2、3的16bit输入模式都可以用,不过需要与工程中Y和CbCr引脚接法保持一致,否则我们的灰度图会变成绿紫配色。由于输出的是灰度图,因此Y给图像的8位灰度值,CbCr给8位定值0x80(十进制128)。

YCbCr色彩空间如下,有兴趣的同学可以思考一下,为什么Y和CbCr接反后,黑色会变为绿色,白色会变为紫红色

用Zedboard上的ADV7511输出灰度图-Debug_第3张图片


寄存器梳理及之前出颜色BUG原因分析

ADV7511所有寄存器都可以在ADV7511_Programming_Guide.pdf中找到详细说明,这里只说配置时用到的。

  • 寄存器0x41,0x98,0x9A,0x9C,0x9D,0xA2,0xA3,0xE0,0xF9,按照手册中的推荐设置就可以。
  • 寄存器 0x15:依照数据输入格式表的要求将[3:0]设为0x01。其高4位和I2S采样频率有关,暂时不管。
  • 寄存器 0x16:依照数据输入格式表的要求将其设为0xBC(1011_1100)

用Zedboard上的ADV7511输出灰度图-Debug_第4张图片

  • 寄存器 0x55:配置为0x20,和输出数据格式有关。之前没有配置这个寄存器,是导致颜色出错的原因之一。

用Zedboard上的ADV7511输出灰度图-Debug_第5张图片

 

  • 寄存器 0x56:配置为0x28。(似乎不配置也不会出错)

用Zedboard上的ADV7511输出灰度图-Debug_第6张图片

  • 寄存器 0x48 :依照数据输入格式表的要求将[4:3]设为0b01。

用Zedboard上的ADV7511输出灰度图-Debug_第7张图片

  • 寄存器 0xAF:配置为0x06。默认工作在DVI MODE,配置时改变[1]位,使模式设为HDMI MODE。DVI不支持非RGB输入,如果设为DVI MODE则画面会变为红绿配色。导致颜色错误的原因之一。

用Zedboard上的ADV7511输出灰度图-Debug_第8张图片

  • 寄存器 0xD6:与热插拔信号有关,设为0xC0。

When 0xD6[7:6] is set to 0b11 the HPD signal will always be high, but the HPD interrupt will still respond to the HPD pin.

  • 之前还多配置了一个寄存器0x17 配置成了0x02。(似乎配不配置都不会出错)

你可能感兴趣的:(用Zedboard上的ADV7511输出灰度图-Debug)