HDMIc测试

在linux环境下进行HDMI显示时,需要我们在之前已经创建好的vivado文件上进行修改。

修改vivado工程

将两个IIC都打开并配置成EMIO模式:

image-20250819134551930

配置中断,使能IRQ_F2P,接收PL端的中断

image-20250819134626598

添加动态时钟控制器,此模块主要功能是根据不同的分辨率配置出不同的时钟输出,此模块时钟必须配置成100MHz。

添加自己的IP核:

此处我们需要添加两个自定义IP核:

image-20250819140545351

参考裸机上的HDMI test内容,将clk_wiz核换成dynclk核,右击Block Design点击“+”搜索:

image-20250819134214770

相关配置保持默认即可:

image-20250819134345789

添加HDMI编码器,用于将RGB数据转换为TMDS信号。

搜索添加我们自定义的rgb并将TMDS Make External引出

image-20250819135944239

添加一个vector反相器:

image-20250819141009775

连接中断信号,需要先添加一个Concat IP,用于中断信号连接

image-20250819141131047

image-20250819141238487

 

连接Vivado可能无法自动连接的时钟信号

image-20250819140928133

image-20250819141310762

使用Vivado自动连接功能,完成剩下的线连接,选择所有模块自动连接。

image-20250819140928133

保存设计后检查设计,添加HDMI输出的xdc文件,约束管脚

编译生成bit文件,之后导出.xsa文件。

导入硬件配置

将上述步骤所得到的硬件导入petalinux工程目录下

image-20250819142130632

在此目录下打开终端并进入petalinux环境

为Digilent DynClk和Digilent HDMI创建模块:clk-dglnt-dynclkdigilent-hdmi

在项目文件夹中,复制 digilent_hdmi.c clk-dglnt-dynclk.c,并替换自动生成的模块 .c 文件的内容。

 

导入硬件

修改内核

 

修改设备树

打开petalinux工程文件中的名为system-user.dtsi的文件

修改设备树内容如下

修改 uboot

编译打包