HDMI-FMC子卡的使用(基于VC707)(上)

HDMI-FMC子卡的使用(基于VC707)(上)

模块介绍

在这里插入图片描述
在这里插入图片描述
这块子卡提供了一个HDMI输出接口和两个HDMI输入接口,通过FMC接口与母版连接。
HDMI输出:使用Sil9136-3芯片,支持最高4Kx2K@30Hz
HDMI输入:使用ADV7619芯片,支持最高4Kx2K@30Hz
原本想用zedboard上的FMC跟这块子板连接,但是由于这个模块使用的FMC接口是HPC(high pin connector),不能使用,因此最终使用了VC707.

配置

两个芯片都是通过IIC接口进行配置
在这里插入图片描述
初步阅读文档,发现两个芯片的功能强大,这里不再做详细介绍,只是大概了解模块的组成和使用思路即可。
接下来是如何配置和使用的问题,这个模块的配套资源里面有基于Quartus的几个demo,因此试试看能不能移植到vc707上。

DEMO的硬件配置

QSYS 例化代码

TR5_QSYS u0 (
    .clk_50                                         (OSC_50_B8D),           //                           clk_50_clk_in.clk
    .reset_n                                        (reset_n),              //                     clk_50_clk_in_reset.reset_n

    // HDMI TX
    .hdmi_tx_fmc_i2c_scl_external_connection_export (SII9136_CSCL_FMC),     // hdmi_tx_fmc_i2c_scl_external_connection.export
    .hdmi_tx_fmc_i2c_sda_external_connection_export (SII9136_CSDA_FMC),     // hdmi_tx_fmc_i2c_sda_external_connection.export
    .sii9136_int_external_connection_export         (SII9136_INT),          //         sii9136_int_external_connection.export
    .sii9136_rst_n_external_connection_export       (SII9136_RST_n),        //       sii9136_rst_n_external_connection.export
    // HDMI RX
    .i2c_scl_external_connection_export             (ADV7619_CSCL_FMC),     //             i2c_scl_external_connection.export
    .i2c_sda_external_connection_export             (ADV7619_CSDA_FMC),     //             i2c_sda_external_connection.export
    .sii9679_rst_external_connection_export         (),                     //         sii9679_rst_external_connection.export
    .adv7619_rst_external_connection_export         (ADV7619_RESET_n),      //         adv7619_rst_external_connection.export
    // RX EDID
    .rx0_edid_i2c_scl_external_connection_export    (RX0_DDC_SCL),          //    rx0_edid_i2c_scl_external_connection.export
    .rx0_edid_i2c_sda_external_connection_export    (RX0_DDC_SDA),          //    rx0_edid_i2c_sda_external_connection.export
    .rx1_edid_i2c_scl_external_connection_export    (RX1_DDC_SCL),          //    rx1_edid_i2c_scl_external_connection.export
    .rx1_edid_i2c_sda_external_connection_export    (RX1_DDC_SDA),          //    rx1_edid_i2c_sda_external_connection.export
    
    .adv7619_int_external_connection_export         (ADV7619_INT)           //         adv7619_int_external_connection.export
);

在这里插入图片描述
这个就是qsys的IP,总体功能比较简单,就是实现对HDMI-FMC模块的初始化,内部的实现方式是使用一个NIOS软核+若干个PIO,图片比较大就不贴上来了。

DEMO的软件配置

打开eclipse,看到工程结构如下,功能包括了:使用PIO控制语句实现基本的I2C时序逻辑、单字节的I2C读写功能、多字节的I2C读写功能、HDMIrx和tx芯片的初始化等
在这里插入图片描述
总体来说,程序的流程如下:

  1. 初始化Rx模块的EDID:包括验证EDID、写EDID等功能
  2. TX模块的初始化:包括TX模块复位、TX模块ID验证、TX模块初始化
  3. RX模块的初始化:包括RX模块复位、RX模块ID获取、RX模块初始化、中断设置
  4. 主循环:监测RX模块两个端口的连接情况(读寄存器),同一时刻只有一个端口有效,可通过修改寄存器控制需要选择的端口

VC707移植

未完待续

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值