zynq 7000 的HDMI 显示实验 您所在的位置:网站首页 zynq7000开发实例代码 zynq 7000 的HDMI 显示实验

zynq 7000 的HDMI 显示实验

2023-08-16 21:54| 来源: 网络整理| 查看: 265

用了很多年的zynq 7000,一直就没做hdmi 显示实验。前几天终于做了这个实验,也就做一个总结。

我的实验是在微相的z7-lite下根据他们的教程完成的。平台是windows 10 , Vivado 2018.3。如果硬件设计不一样,主要是替换rgb2dvi 模块和gpio 中断部分。

工程资料下载,

链接:https://pan.baidu.com/s/11-RLOYtl1AyxcQ_XGbw2YQ  提取码:zvnc 

这个下载里里三个文件,一个hdmi_out 全工程67M,下了这个就包含其他2个了,如果只是ip ,可以下hmdiip(375k),如果只是源代码 hdmisrc( 15M),主要是图形数据占空间。 如果你有微相的资料,那就是 z7_Lite\03_SDK_Demo\17_hdmi_out

IP准备

这个实验用了2个IP,可以从 https://github.com/Digilent/vivado-library 下载。但我实验中用的是微相提供的是rgb2dvi_v1_2,这个ip 在工程的ip_repo目录里。

该链接内有 Digilent 提供的很多个自定义 IP,但这个实验只用2个。其中 axi_dynclk  是时钟发生模块,会根据不同的屏幕分辨率,自动生成相应的像素时钟和串行时钟,而rgb2dvi  模块会将图像的红绿蓝信号转换成MDS 信号, 送往 HDMI 端口发出。网上版本比较新,我本想用新版本做测试的,结果sdk的时候报错,只好用微相提供的版本。IP文件目录如下图所示:

在这里特别注意: if 文件目录也要复制,就是if 目录,其中包含了tmds 目录。ip目录下的 axi_dynclk, rgb2dvi 。图中内容复制到你的你的ip_repo,就是集中放IP的目录,我这目录下就放了其他IP。

开始的时候,我习惯只把ip 下的目录复制过来,结果通过不了。

硬件设计

在 Vivado 下新建一个工程,名字为 hdmi_out。整个硬件设计是比较复杂的,我把它分为几个部分:

添加ip目录,添加并配置zynq,添加 VDMA IP,AXI-Stream Subset Converter 模块,AXI4-Stream to Video Out 模块,Video Timing Controller 模块,rgb2dvi 模块,中断合并。

图像数据的流向是:zynq的DDR中, VDMA 读取,AXI-Stream Subset Converter转换,AXI4-Stream to Video Out 模块,rgb2dvi 模块输出。

Run Automation Connect的时候,一般只勾选当时介绍的IP, 如果多勾了,与后面指定操作冲突时,可以选择脚,右键,Disconnect Pin,使它脱离连接。

添加ip 目录 

在主窗口左侧边栏 Project Manager 下点击 Project Settings 选项, 向工程中添加这两个自定义 IP,其实是把 IP 存放目录加上去如下图所示:

可以Project Manager -> IP Catalog 看到我们添加的IP。 

原理图添加并配置zynq

新建一个原理图, 加入zynq ,原理图是这样的:

 双击zynq进行设置:

点击 PS-PL Configuration 选项, 在 HP Slave AXI interface 下勾选 S AXI HP0  interface, 本节实验要用这个端口获取 DDR 中存储的图像数据。

使能 UART0,这与开发板有关,z7_lite对应的是14,15。

点击 Clock Configuration 选项,在 PL Fabric Clocks 窗口,勾选 FCLK_CLK0和 FCLK_CLK1,并将其分别设为 100, 140MHz。 其中 FCLK_CLK0 将作为 Zynq配置各个模块的时钟, 而 FCLK_CLK1 将作为图像数据流的时钟,

再点击 DDR Configuration, 选择跟开发板一致的 DDR 型号.z7_lite 是 MT41K256M16 RE-125,16 Bit

再点击 Interrupt 选项,激活 IRQ_F2P[15:0]选项,点击 OK,配置完成。

手动连接 FCLK_CLK0 到 MAXI_GPO_ACLK, 连接 FCLK_CLK1 到 S_AXI_HP0_ACLK,

检查并对比,原理图是否一致。

添加 VDMA IP 

如下图所示:

VDMA 添加完成如下图所示:  

 

双击上图 axi_vdma_0, 进行参数配置。 首先 Basic 选项, Address Width设为 32 bits, 寻址空间可以达到 4GB。 Frame Buffers 设为 1,取消 Enable WriteChannel 选项,因为本实验 VDMA 只从 DDR 中读取图像数据。 在 Enable Read Channel 下, 将 Line Buffer Depth 改为 4096, 其它默认, 如下图所示:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有