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 数据手册,结合自己的实际情况做出了一点修改得来的。

1.改进概述

上篇说到,调用跑HDMI IP核自带的design example,跑出来的结果是显示屏显示彩条,并伴有嘀,嘀,嘀。。。的声音。因为在实际项目中,我们只需要图像,不需要声音的,所以我要把声音给去掉。现在就做个笔记记录一下。

2.vivado工程修改

1.将上篇文章里面的HDMI IP 核的design example 工程打开。点击 open block design,会显示出结构框图。在结构框图中会看到audio_ss_0这个结构如下

点击它左上角的“+”号,会展开它里面的组成部分,如下。这些就是产生那个嘀,嘀,嘀。。。声音的来源,我们要把这些删掉。

2.直接将audio_ss_0这个结构删掉,然后将v_hdmi_tx_ss模块的s_axis_audio_aclk连接到s_axi_cpu_aclk。

3.因为我们把audio_ss_0这个结构删掉了,所以我们要把他的两个约束文件修改一下,就是把删掉的管脚的约束屏蔽掉,不然会报严重的warning.其实步修改也没啥影响。

把上图中的AudioGen.xdc 和 hdmi_acr_ctrl.xdc里面的内容全部屏蔽掉就好了。

到这vivado工程就修改完了。

然后就是像上文一样,首先生成bitstream文件,然后file -> export -> export hardware,勾选include bitstream. 接着 file -> launch SDK.

3.SDK工程修改

       SDK工程打开之后,还是像上文一样

1.file -> new ->Board Support Package.然后什么都不用该,选择finnish, 然后选择OK.

2.在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.

3.这时候,在SDK工具主界面的左侧的Project explorer 下面的standalone_bsp_0_TxOnly_A53_1文件夹。在他下面有个src文件夹,并且是带有红色的“x”的。也就是说有错误。

4.打开那个提示错误的文件(xhdmi_memu.c),定位到提示错误的那一行,然后把提示错误的那几行全注释掉就好了,对,就是这么简单粗暴。

5.后面的就全跟上文一样,在A53上驱动参考程序,把哪些命令再敲一遍就好了。

下一步工作想试着把那个彩色条纹的数据改成我自己想要的数据,估计有点难度。

最后附上一个效果图:说明,下图中屏幕上的白色区域是反光造成的。

参考自xing见博客:https://www.cnblogs.com/xingjian92/p/9871445.html#commentform#undefined

在此表示由衷感谢!

FPGA:zcu102学习笔记(参考自xing见博客)相关推荐

  1. 阿龙的学习笔记---C++ 进阶知识(博客汇总)

    1. C++11 - 右值引用和Move语义 讲解了C++中的左值和右值,从C开始将起,主要是自定义类型的问题.https://www.cnblogs.com/catch/p/3500678.html ...

  2. FPGA系统性学习笔记连载_Day19【综合实验】之【数字钟】【Intel Cycle IV FPGA平台验证】

    FPGA系统性学习笔记连载_Day19[综合实验]之[数字钟][Intel Cycle IV FPGA平台验证] 本系列为FPGA系统性学习学员学习笔记整理分享,如有学习或者购买开发板意向,可加交流群 ...

  3. FPGA系统性学习笔记连载_Day1数字电路基础篇

    FPGA系统性学习笔记连载_Day1数字电路基础篇 连载<叁芯智能FPGA设计与研发就业班-第一天> <数字电路基础1> 原创作者:紫枫术河 转载请联系群主授权,否则追究责任 ...

  4. FPGA系统性学习笔记连载_Day8【4位乘法器、4位除法器设计】 【原理及verilog实现、仿真】篇

    FPGA系统性学习笔记连载_Day8[4位乘法器.4位除法器设计] [原理及verilog实现.仿真]篇 连载<叁芯智能fpga设计与研发-第8天> [4位乘法器.4位除法器设计] [原理 ...

  5. FPGA系统性学习笔记连载_Day7【16位比较器设计】 【原理及verilog实现、仿真】篇

    FPGA系统性学习笔记连载_Day7[16位比较器设计] [原理及verilog实现.仿真]篇 连载<叁芯智能fpga设计与研发-第7天>[16位比较器设计] [原理及verilog实现. ...

  6. 达芬奇PRO板的FPGA功能学习笔记(一)

    达芬奇PRO板的FPGA功能学习笔记(一) 从编译到实现需要五个步骤: 1.写代码(verilog语言) 2.综合分析 3.写约束文件 约束文件主要是定义接口,命令第一个关键字代表命令的名称,其后的每 ...

  7. FPGA系统性学习笔记连载_Day15【状态机、自动售货机】 【原理及verilog仿真】篇

    FPGA系统性学习笔记连载_Day15[状态机.自动售货机] [原理及verilog仿真]篇 本系列为FPGA系统性学习学员学习笔记整理分享,如有学习或者购买开发板意向,可加交流群联系群主. 连载&l ...

  8. 数字设计FPGA应用学习笔记

    转载https://blog.csdn.net/chinkwoyu/article/details/80259064 数字设计FPGA应用学习笔记 数字设计FPGA应用学习笔记 第一章 FPGA基础及 ...

  9. React 入门实例 参考阮一峰博客

    React 入门实例 参考阮一峰博客 http://www.ruanyifeng.com/blog/2015/03/react.html React 可以在浏览器运行,也可以在服务器运行.服务器的用法 ...

最新文章

  1. 弯道极限超车、击败人类顶级玩家,索尼AI赛车手登上Nature封面
  2. 【转】Linux上安装使用SSH(ubunturedhat)
  3. Python-Requests.post方法中,传参data与json的区别
  4. 初学duboo+zookeeper
  5. java异常处理方式推荐做法_谈谈Java异常处理这件事儿
  6. java box unboxing
  7. 2019年你准备学C/C++,这些硬知识你应该知道!
  8. 扩展JS格式化(Format)功能及评论树
  9. Selinux学习笔记----术语
  10. 新开局哦----!!!
  11. 最新综述!NLP中的Transformer预训练模型
  12. Ubutu 12.04LTS 安装搜狗拼音输入法+搜狗皮肤 步骤详解
  13. python文件加减法_python生成PDF文件20以内加减法,给上小学的宝宝
  14. 巴别鸟App产品体验报告
  15. Git提交合并提交及注释
  16. 详解 yolo配置文件各参数的含义
  17. 【网络经济与企业管理】选择题,错题
  18. halcon之NCC匹配
  19. 如何用计算机设计衣服,怎样才能成为出色的服装设计师_电脑服装设计图怎么画...
  20. MSET算法参差分析(二)

热门文章

  1. R语言心得笔记(实时更新)
  2. 续谈大数据之足球盘口赔率水位分析思路及其实现利器
  3. PCM音频数据音量大小调节
  4. 阿里妈妈广告进入联合早报网
  5. 谈谈当代大学生学习IT技术的必要性
  6. Java编程思想读书笔记(七)
  7. C 定义了 7 种变量类别 静态变量 实例变量 数组元素 值参数 引用参数 输出参数和局部变量
  8. 适合练习英语口语的脱口秀
  9. 单细胞转录组分析R包安装
  10. RabbitMQ 从入门到精通 消息应答 持久化 交换机 队列 发布确认 集群 等