7790|2

9

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

威视锐ZYNQ开发板-ZingSK高清视频接口实例--HDMI [复制链接]

1. 概述
ZingSK开发套件采用核心板加底板的方式,方便用户使用自定义的低成本的底板. ZingSK配套的底板也拥有丰富的接口, ZingSK外观如图1.
图1
本实例主要介绍底板上高清多媒体接口HDMI的使用,并通过软硬件协同设计的方法来实现彩条输出.
通过ZYNQ内部的Cortex处理器(PS部分)配置HDMI芯片SiI934,再通过
ZYNQ内部的PL部分去产生彩条显示到HDMI显示器上.框图如图3所示.
图2
实例程序主要由三部分组成,嵌入式平台的搭建,硬件语言部分与软件C程序部分.
嵌入式平台的搭建,主要是配置ZYNQ,如DDR3的配置,程序固化方式(SD卡, NAND Flash, SPI Flash),调试接口串口的配置以及IIC控制器的配置;硬件语言部分主要是完成HDMI的时序,并给出彩条的数据;软件C程序主要完成IIC控制器的初始化,以及发送HDMI芯片的配置数据,使SiI9134正常工作;
2. 快速启动
HDMI显示可通过以下几步来完成测试.
1.准备工作,
a. 带HDMI接口的显示器一台;
b. 6V-2A电源;
c. ZingSK开发套件;
2.将提供的附件,启动文件boot.bin复制到TF中;
3.将ZingSK的启动模式调成TF卡模式,如下图;
图3
4. 插上电源,通过HDMI线连接板卡与显示器,并上电;
5. 显示器可观察到彩条,如图5;
图4
3. 嵌入式平台搭建
本实例主要是演示软硬件协同设计的流程,所以将工程分为三部分去
实现,嵌入式平台的搭建,硬件设计与软件设计;
使用XPS,配置ZYNQ的处理器PS部分,外设中选择下图.
图5
选择UART0为了输出调试信息,选择IIC0是使用该控制器来配置HDMI输出芯片SiI9134;
其它都为默认配置,根据板卡实际的DDR3芯片,配置DDR3控制器,作为程序的内存空间;如图7
图6
4. 硬件设计
硬件设计主要是指使用HDL语言进行的FPGA逻辑资源(PL部分)的设计.
主要为将PS的模块加入,再加入一个hdmi_color_bar的模块,顶层文件内容下:
//////////////////////////////////////////////////////////////////////////////////
module hdmi_top(
        LED_4bits_GPIO_IO_O_pin,
        // hdmi interface
        mclk,
        pdata,
        pclk,
        hdmi_iic_sda,
        hdmi_iic_clk
    );
    input mclk;
    output [15:0] pdata;
    output pclk;
    output [3:0] LED_4bits_GPIO_IO_O_pin;
    inout hdmi_iic_sda;
    inout hdmi_iic_clk;
   
      
        IIC_HDMI_stub u1
      (
        .processing_system7_0_MIO(),
        .processing_system7_0_PS_SRSTB_pin(),
        .processing_system7_0_PS_CLK_pin(),
        .processing_system7_0_PS_PORB_pin(),
        .processing_system7_0_DDR_Clk(),
        .processing_system7_0_DDR_Clk_n(),
        .processing_system7_0_DDR_CKE(),
        .processing_system7_0_DDR_CS_n(),
        .processing_system7_0_DDR_RAS_n(),
        .processing_system7_0_DDR_CAS_n(),
        .processing_system7_0_DDR_WEB_pin(),
        .processing_system7_0_DDR_BankAddr(),
        .processing_system7_0_DDR_Addr(),
        .processing_system7_0_DDR_ODT(),
        .processing_system7_0_DDR_DRSTB(),
        .processing_system7_0_DDR_DQ(),
        .processing_system7_0_DDR_DM(),
        .processing_system7_0_DDR_DQS(),
        .processing_system7_0_DDR_DQS_n(),
        .processing_system7_0_DDR_VRN(),
        .processing_system7_0_DDR_VRP(),
        .LED_4bits_GPIO_IO_O_pin(LED_4bits_GPIO_IO_O_pin),
        .ps7_I2C0_SDA ( hdmi_iic_sda ),
        .ps7_I2C0_SCL ( hdmi_iic_clk )
      );
        
        hdmi_color_bar u2(
      .mclk(mclk),
      .pdata(pdata),
         .pclk(pclk)
     
     );
        
Endmodule
//////////////////////////////////////////////////////////////////////////////////
子模块hdmi_color_bar的编写,主要根据HDMI的时序来描述,视频数据给不同的常量,即显示彩条;图8 为HDMI的时序;
图7
5. 软件设计
主要是通过C程序来控制IIC控制器,发送HDMI芯片的配置数据,调试时
还可以读回芯片的数据,检查芯片是否正常工作;
软件中主要的C程序如下,具体函数请参阅官方手册;
//初始化IIC控制器
XIicPs_LookupConfig(…);
       XIicPs_CfgInitialize(…);
   //设置IIC时钟频率
XIicPs_SetSClk(…);
//发送数据
iic_writex(… );
IIC要发送的数据,需要查阅SiI9134的手册,需要将用到的寄存器全部配置,整理的配置数据如下;
SiI9134有两个寄存器,需要分别配置;
对于0x72为基址的寄存器,数据如下,前8位为寄存器地址,后16位为配置数据;
{0x05, 0x00, 0x01},  //soft reset
{0x05, 0x00, 0x00},  //
{0x08, 0x00, 0xfd},  //enable hs/vs
{0x40, 0x00, 0x58},  //create HS pulses
{0x44, 0x00, 0x2c},  //width of the HS
{0x46, 0x00, 0x02}, //create VS pulses
{0x47, 0x00, 0x05}, //width of the VS
{0x48, 0x00, 0x00}, //8bit mode,BT.601
{0x4a, 0x00, 0x01} //enable embedded sync
对于0x7a为基址的寄存器数据下,
{0x2f, 0x00, 0x21}, //HDMI mode
{0x3e, 0x00, 0x03},  //CEA-861D InfoFrame
{0x40, 0x00, 0x82},  
{0x41, 0x00, 0x02},
{0x42, 0x00, 0x0d},
{0x43, 0x00, 0xe7}, //checksum
{0x44, 0x00, 0x20},
{0x45, 0x00, 0x68},
{0x46, 0x00, 0x00},
{0x47, 0x00, 0x00},
{0x3d, 0x00, 0x07} //nomal mode
6. 实例小结
本实例通过软硬件协同设计的方法,控制ZingSK的HDMI输出,主要利用
PS的IIC控制器,通过C语言来配置HDMI芯片,并通过硬件描述语言实现HDMI时序,将两者结合,最终将彩条输出到HDMI显示器上.
此帖出自FPGA/CPLD论坛

最新回复

附件呢?请问一下在哪里可以下载程序,谢谢  详情 回复 发表于 2015-8-18 10:23
点赞 关注
 

回复
举报

10

帖子

1

TA的资源

一粒金砂(初级)

沙发
 
不错的资料
此帖出自FPGA/CPLD论坛
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
附件呢?请问一下在哪里可以下载程序,谢谢
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表