首页 > 解决方案 > 如何从 adv7513 i2c 获得响应

问题描述

我想将 hdmi 显示器与 cyclone V GX 板一起使用,但我没有从i2c 总线上的adv7513得到确认。

我认为我在 i2c 交易开始时发送的地址有问题(我没有收到地址确认)我找不到有关 PD/AD 是低还是高的信​​息。另外我不确定我应该使用 7 位还是 8 位地址,所以我想解释一下。

我使用了我在网上找到的 i2c 控制器: https ://www.digikey.com/eewiki/pages/viewpage.action?pageId=10125324

信号抽头结果

标签: vhdlfpgai2chdmi

解决方案


我假设您还没有阅读ADV7513 编程指南

ADV7513 使用四个 I2C 寄存器映射。主寄存器映射的 SDA/SCL 编程地址为 0x72 或 0x7A,这取决于电源接通时 PD/AD 是拉高(10KΩ 电阻到电源 = 0x7A)还是拉低(10KΩ 电阻到 GND = 0x72)用品。在电源为高电平后,用户应等待 200 毫秒以确定地址,然后再尝试使用 I2C 与 ADV7513 通信

I2C 地址是 7 位或 10 位而不是 8 位。在这种情况下,它是 7 位的。请参阅I2C 规范。因此,如果 PD/AD 为高电平,则 7 位地址为 0x7A。在二进制中,您的 7 位将是:1111010. R/W 位是第一个 I2C“地址”字节的最后一位,但您发布的 vhd 代码不需要将其作为地址的一部分,这是单独完成的。

addr      : IN     STD_LOGIC_VECTOR(6 DOWNTO 0); --address of target slave
rw        : IN     STD_LOGIC;                    --'0' is write, '1' is read

如果您仍然有问题,请检查您的上拉电阻、I2C SCL 时钟速率,确保主机允许时钟延长。您发布的 VHDL 代码包含大量有关如何使用的信息,因此请重新阅读。

或者向电气工程堆栈交换提出问题并获取 SDA/SCL 的一些示波器读数。


推荐阅读