1,概述

有一个计划是打算做一个摄像头的驱动与显示。

但是实际上手上只有一个zcu102开发板,没有摄像头,也没有上位机,自己也不会写。所以就将方案阉割成将录制好的视频放在SD卡里面,然后从SD卡里面读出视频来代替采集的数据。然后通过HDMI接口显示,这样就不用摄像头,也不用上位机了。这大概就是理想与显示的区别吧。这两天在研究HDMI 接口,就把官网上的DEMO跑了一下,先做个笔记

值得注意的是,这个IP核是收费的,可以在xilinx 官网申请一个120天的试用的license。申请的license会与你的电脑IP绑定

2.新建VIVDDO工程

1。打开vivado 软件,新建一个工程,建好工程后,打开IP catalog,搜索HDMI,选择HDMI 1.4/2.0 Transmitter Subsystem.

2.双击IP核框图,将example design界面下面的design topology选择Tx Only.(为什么选择这个,不选择 pass through?因为我没有HDMI信号源,没办法产生数据啊,就只好选择这个,让他自己产生数据了。在它的example design里面,有个TPG module,可以自己产生彩色条纹数据)。其他选择默认就好,不用改。

3.右键点击block design 下面的design里面的IP核名称,选择open ip example design.打开的example 框图如下

4.点击generation bitstream.这个过程大概要半个小时左右。

5.bit流生成后,点击file -> export -> export hardware。勾选include bitstream

6.点击file -> launch sdk

7.SDK工具打开之后,选择,file -> new ->Board Support Package.然后什么都不用该,选择finnish, 然后选择OK.

8.在SDK工具的主界面上,system.mss tab将会被打开。在system.mss将会有一个名为Peripheral Drivers的部分。从Peripheral Drivers列表中,找到HDMI 1.4/2.0 Transmitter Subsystem driver (v_hdmi_tx_ss)并单击Import example。选择TxOnly_A53.(对应于刚刚新建IP核时选择的Tx Only 操作)

9.右键点击window -> show view -> other ->terminal -> terminal.打开。然后配置响应的串口

注意,由于申请的license是不支持HDCP功能的,所以在创建IP核的时候,HDCP选项是灰色的,不能选。所以后面的HDCP的配置也不用了。

3.在A53上驱动参考工程

      1.打开Start > All Programs > Xilinx Designols > Vivado 2018.2 > Vivado 2018.2 Tcl Shell.

2.按顺序输入如下命令:

1. 更改到示例设计项目目录

Vivado%  cd ./<IP instance name>_ex

2. 调用Xilinx系统调试器(xsdb)

Vivado%  xsdb

3. 建立与调试目标的连接

xsdb%  connect

4. 列出所有可用的JTAG目标

xsdb%  targets

5. 下载比特流到FPGA

      xsdb% targets -set 4 (PSU)
      xsdb% rst -system
      xsdb% after 3000
      xsdb% target -set 3 (PL)
      xsdb% fpga -file ./<IP instance name>_ex.runs/impl_1/exdes_wrapper.bit
   6.设置目标处理器。
      xsdb% target -set 8 (APU)
      xsdb% source ./<IP instance name>_ex.sdk/exdes_wrapper_hw_platform_0/psu_init.tcl

      xsdb% psu_init
      xsdb% after 1000
      xsdb% psu_ps_pl_isolation_removal
      xsdb% after 1000
      xsdb% psu_ps_pl_reset_config
      xsdb% catch {psu_protection}
      xsdb% target -set 9 (Cortex-A53 #0)
      xsdb% rst -processor
   7.下载software.elf到FPGA  
      xsdb% dow ./<IP instance name>_ex.sdk/<name of bsp>_xhdmi_example_zynq_us_1/Debug/<name of bsp>_xhdmi_example_zynq_us_1.elf
   8.运行软件
      xsdb% con。
    这时候,打开SDK软件,在下面的terminal 1窗口可以看到串口打印出来的信息
   
    这时候,看你的hdmi显示屏,会看到彩色条纹。并伴有嘀,嘀,嘀。。。的声音。这是因为它这个自带的design example同时产生了彩色条纹数据和音频数据,然后经过HDMI tx module整合成一个hdmi流显示出来。下一步的实验就是在这个example中,把音频数据去掉。只显示图像数据。
    9.退出XSDB命令提示符。
       xsdb% exit
 
    注意:在进行该实验的时候,要把zcu102开发板的模式调试QSPI模式。
    说明:以上步骤根据PG235 数据手册,结合自己的实际情况做出了一点修改得来的。
   

zcu102 hdmi example(一)的更多相关文章

  1. zcu102 hdmi example(二)

    1.概述 上篇说到,调用跑HDMI IP核自带的design example,跑出来的结果是显示屏显示彩条,并伴有嘀,嘀,嘀...的声音.因为在实际项目中,我们只需要图像,不需要声音的,所以我要把声音 ...

  2. 嵌入式开发之zynqMp ---Zynq UltraScale+ MPSoC 图像编码板zcu102

    1.1 xilinx zynqMp 架构 1.1.1 16nm 级别工艺 Zynq UltraScale+  MPSoC架构 Xilinx新一代Zynq针对控制.图像和网络应用推出了差异化的产品系,这 ...

  3. [已解决]Windows10 系统下HDMI 显示器 没有声音输出的奇怪问题

    今天想用一下显示器自带的喇叭,忽然发现声音输出选项里HDMI的声音设备没了.之前开始使用这台显示器的时是用过一段时间的. 百度了一番,没发现什么线索.后来去谷歌找到这么一段文字: I'm not su ...

  4. 外接Hdmi没有声音怎么设置

    参考 http://www.3lian.com/edu/2013/07-16/81152.html 在小喇叭图标上右键->播放设备->禁用HDMI

  5. HDMI之CEC DDC学习笔记(可能有误)

    1 HDMI的音视频通路,有待学习: 2 DDC通路,大致是个IIC接口,读取上游器件的EDID或者E-EDID数据: EDID的前128字节数据格式如下:(可能有不同版本,格式可能有区别)

  6. HDMI IP学习笔记

    在HDMI的IP核中点击,生成例子.找到./simulaion/mentor文件夹,把modelsim路径转到该路径下,即可仿真.

  7. HDMI学习

    市面上大多4K显示器都配备了HDMI 1.4接口,仅能实现30Hz的刷新率,不足以带来流畅的显示效果, 酱紫情况,就算是搭配了HDMI 2.0高清线也是无法发挥其作用.只有更先进的HDMI 2.0标准 ...

  8. Windows Server+AMD GPU+HDMI时_黑边_不铺满问题的解决办法

    HDMI接显示器或电视,有黑边或者被放大了是个很常见的问题,显卡设置界面里改下Scale或者Overscan/Underscan就行,可问题是WindowsServer版的CCC没有控制颜色对比度和缩 ...

  9. 树莓派B+上手小记--使用HDMI线连接显示器

    入手还算比较顺利,一开始使用网上下的别人精简的OS,发现ACT及PWR灯一直亮着,上网查说用HDMI连接显示器需要修改配置文件config.txt,但修改后情况依旧. 如果还是用官方的系统试试吧,上网 ...

随机推荐

  1. LDAP概念和原理介绍

    LDAP概念和原理介绍 相信对于许多的朋友来说,可能听说过LDAP,但是实际中对LDAP的了解和具体的原理可能还比较模糊,今天就从“什么是LDAP”.“LDAP的主要产品”.“LDAP的基本模型”.“ ...

  2. jquery.data()&jquery.extend()

    JQuery.data()方法 Jquery提供的在节点存取数据的方法. var $el = $('#app'); //使用键值对的方式存数据 $el.data('name', 'jinx'); $e ...

  3. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十三║Vue实战:Vuex 其实很简单

    前言 哈喽大家周五好,马上又是一个周末了,下周就是中秋了,下下周就是国庆啦,这里先祝福大家一个比一个假日嗨皮啦~~转眼我们的专题已经写了第 23 篇了,好几次都坚持不下去想要中断,不过每当看到群里的交 ...

  4. 使用 Moq 测试.NET Core 应用 -- Mock 行为

    第一篇文章, 关于Mock的概念介绍: https://www.cnblogs.com/cgzl/p/9294431.html 第二篇文章, 关于方法Mock的介绍: https://www.cnbl ...

  5. 使用remix发布部署 发币 智能合约

    Remix是一个基于浏览器的编译器和IDE,使用户能够使用Solidity语言构建以太坊合约并调试事务. 在上一篇文章已经成功的使用代码讲智能合约编译并且发布部署到了链上,可是在部署 发币的智能合约 ...

  6. Redhat 平台下 LVM 管理说明

    Redhat 平台下  LVM 管理说明 LVM 是 Logical Volume Manager(逻辑卷管理器)的简写,它为主机提供了更高层次的磁盘存储管理能力.LVM 可以帮助系统管理员为应用与用 ...

  7. 基于python脚本,实现Unity全平台的自动打包

    转载请标明出处:http://www.cnblogs.com/zblade/ 0. 概述 本文主要针对项目中自动打包过程进行调研,实现用python脚本来打出win/android/ios三个平台下的 ...

  8. 多线程协作wait、notify、notifyAll方法简介理解使用 多线程中篇(十四)

    在锁与监视器中有对wait和notify以及notifyAll进行了简单介绍 所有对象都有一个与之关联的锁与监视器 wait和notify以及notifyAll之所以是Object的方法就是因为任何一 ...

  9. k邻近算法(KNN)实例

    一 k近邻算法原理 k近邻算法是一种基本分类和回归方法. 原理:K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,就把该输入实 ...

  10. [Javascript] js的类和对象

    类 graph LR 类-->构造函数 类-->prototype对象 类-->instanceof运算符 类-->constructor属性 类-->isPrototy ...