zoukankan      html  css  js  c++  java
  • zcu102 hdmi example(一)

    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 数据手册,结合自己的实际情况做出了一点修改得来的。
       
  • 相关阅读:
    nuget
    C#枚举中使用Flags特性
    情感分析
    docker
    core部署
    脱壳系列_2_IAT加密壳_详细分析(含脚本)
    安全公司-* * * *-面试题:_ 安卓逆向分析分享
    18_ShadowWalker
    17_页面异常接管
    16_TLB与流水线
  • 原文地址:https://www.cnblogs.com/xingjian92/p/9871445.html
Copyright © 2011-2022 走看看