找回密码
 立即注册
查看: 1877|回复: 0

基于ADV7513的RGB888 HDMI开发调试记录

[复制链接]

10

主题

19

回帖

234

积分

中级会员

积分
234
发表于 2024-1-3 11:09:24 | 显示全部楼层 |阅读模式
本帖最后由 CrazyAdam 于 2024-1-5 11:11 编辑

设计框图:主要是要在HDMI 显示器上显示彩条,只需先设计一个彩条数据输出模块,然后设计一个配置ADV7513寄存器的模块即可,ADV7513芯片自动将并行的彩条数据转化为TMDS算法的、且是串行的、差分的数据传输到HDMI显示器端:

1、ADV7513芯片/子卡:
ADI公司的ADV7513是165MHz高性能HDMI发送器,数字视频接口包括一个HDMI v1.4 / DVI v1.0兼容的发送器,支持高达1080p和XGA的所有的HDTV格式,包括3D视频,还支持xvColor高比特率(HBR)音频以及音频AVI InfoFrame,工作电压1.8V-3.3V,主要用在游戏控制台,PC,DVD播放和记录,数字STB,A / V接收器
2、FPGA环境如下:包含Altera EP4CE15F FPGA入门图像算法处理开发板以及ADV7513 RGB/YUV子卡(与板上DC3-40P兼容)



3、ADV7513的初始化配置
基于系统时钟是50MHz,但是I2C 的时钟不能太高,从ADV7513手册上看, 最大不能超过400KHz:


所以代码里面设计了一个分频电路,设置I2C频率是20K:


ADV7513的I2C地址:
参考手册:ADV7513_Hardware_User's_Guide_R0.pdf



从电路图可以看到PD管脚被拉低,所以ADV7513的I2C地址是0x72,FPGA写这个IC 的时候用地址0x72, 读这个IC 的时候用地址0x73



ADV7513的寄存器配置
每一个16位值的前8bit是寄存器的地址,后面的8bit是要填入寄存器的值。
这里设定的只是我们用到的,其他的没有设定的直接用default值即可


比如我们要设置HDMI 的输出格式是444 8bit,那么就要设置寄存器0x16 的值是0x30(见上面代码第128行)


4、HDMI的驱动设置(1080P60)
PLL的设置


通过查表得知,1920*1080分辨率的像素时钟就是74.25M

引脚分配根据开发板以及ADV7513子卡的原理图相互匹配
开发板和ADV7513子卡的DC3-40P原理图

5、彩条测试


6、总结
要查找ADV7513相关的资料才能驱动它,由官方提供的手册(ADV7513_Hardware_User's_Guide_R0.pdf和ADV7513_Programming_Guide_R0.pdf),还有就是不小心把RGB输出引脚配错而导致色彩异常,有个调式小技巧就是R/G/B在输入信号分开输出,可以查看那部分异常进而定位错误的引脚分配。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|CrazyFPGA ( 粤ICP备2023025753号 )

GMT+8, 2024-5-5 06:49 , Processed in 0.045269 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表