HDMI数据的接收发送实验(十)

一、 概述

本章节通过仿真来观察EDID的读取数据波形,可以观察主机与从机的交互流程。

二、仿真示例

仿真模块:给主机和从机产生50MHz时钟和复位。

`timescale 1ns / 1ps

module ddr_tb(

);

reg sclk;

reg reset_n;

wire hdmi_rx_hpd;

wire hdmi_rx_ten;

wire scl;

wire sda;

initial begin

sclk = 0;

reset_n = 0;

#1000;

sclk = 1;

reset_n = 1;

end

always # 10 sclk = ~sclk;

复制代码
ddc_ctrl inst_ddc_ctrl (
		.sclk        (sclk),
		.reset_n     (reset_n),
		.hdmi_rx_hpd (hdmi_rx_hpd),
		.hdmi_rx_ten (hdmi_rx_ten),
		.scl         (scl),
		.sda         (sda)
	);

ddc_master  inst_ddc_master (
		.sclk        (sclk),
		.reset_n     (reset_n),
		.hdmi_rx_hpd (hdmi_rx_hpd),
		.hdmi_rx_ten (hdmi_rx_ten),
		.scl         (scl),
		.sda         (sda)
	);

Endmodule

DDC主设备模块(主动读取EDID),ddc_master.v模块。

主机启动读指令波形:

上图为主机通过IIC协议启动读取的波形,先发出启动信号,再发起虚拟写入操作,写入器件地址0,'hA0为写指令,之后写入寄存器地址'h00。再开始读寄存器,'hA1为读指令。

1、主机读取数据波形:

主机输入读指令后,开始读取数据,根据sda的二进制数据,可以看出第一个字节为00,后边为6个ff,后边依次跟着edid的数据。

结束读数据波形:

当最后的EDID数据读出来后,发起不应答信号(将sda_out拉高),输出sda位1,表示非应答,之后再产生停止指令。定值指令是指在SCL为高时,出现SDA上升沿表示停止信号。

2、从机被读取数据波形:

Sda_oe为高时表示可以把sda_out作为sda发送,作为被读取的从机接口,需要做好从机应答过程。并输入被读取数据。输入的数据就是EDID数据。

在从机发送EDID数据的最后,接收到不应答标志,再接收到停止标志表示读取完成。

三、总结

本章节给出了IIC协议的主机和从机的读数据的仿真流程,ddc_ctrl:作为从设备,存储并提供EDID数据,ddc_master:作为主设备,主动读取显示设备的EDID。

本文章由威三学社出品

对课程感兴趣可以私信联系

相关推荐
珞光电子USRP SDR软件无线电平台19 小时前
国产嵌入式SDR平台LW-E320-G详解:射频、FPGA、ARM架构与应用选型
arm开发·fpga开发·架构
FPGA小迷弟20 小时前
【硬核通俗】FPGA实现SDR软件无线电完整技术解析(原理+架构+实战)
fpga开发·dsp开发·sdr·无线电
Eloudy2 天前
HSB FPGA 架构总体
fpga开发·架构
Terasic友晶科技2 天前
【教程】Agilex 5 SOC FPGA的HPS端如何响应FPGA端中断(三)——设备树Overlay
fpga开发·设备树·agilex 5·设备树overlay
ARM|X86+FPGA工业主板厂家2 天前
基于嵌入式 GPU 的智能服务机器人
linux·运维·arm开发·fpga开发·机器人
Freak嵌入式2 天前
Pico PIO 汇编语法深度详解:标识符、指令、伪指令全解析
汇编·stm32·单片机·嵌入式硬件·fpga开发·硬件架构
Riwuarua2 天前
从近似0基础开始FPGA开发 -- part.7 FPGA的网络通信设计
fpga开发
pingping_TEL2 天前
JESD204B_IP核使用教程
fpga开发
cmc10283 天前
292.三段式状态机第三段时序逻辑用state_c与_n的差异分析
fpga开发
智塑未来4 天前
FPGA开发板怎么选?先看资质、案例与研发底盘
fpga开发