news 2026/9/3 1:52:10

5-DE10-Nano的HDMI方块移动案例——基于FPGA的I2C控制模块设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
5-DE10-Nano的HDMI方块移动案例——基于FPGA的I2C控制模块设计

I2C_WRITE_WDATA.v模块实现I2C写时序,I2C_Controller (I2C控制器)例化了I2C_WRITE_WDATA.v模块,同时增加了I2C数据线SDA的三态缓冲电路。I2C_HDMI_Config.v 是顶层模块,该模块例化了I2C_Controller模块,对系统时钟进行了分频,并控制寄存器的配置。


1 I2C写操作的Verilog实现


I2C_WRITE_WDATA.v是一个I2C写数据模块,用于通过I2C总线向从设备ADV7513写入数据。


该模块接口定义如下:


该模块实现了一个状态机,其功能是向从设备写入多个字节数据。它按照I2C协议生成起始条件、发送从设备地址(包括读/写位)、发送数据字节以及产生停止条件。同时,它还会检测从设备的应答信号,并在传输完成后给出结束信号。具体过程如下图:

为了能更好的理解这个状态机的控制逻辑,下面画出I2C传输某个寄存器的过程波形如下:


2 I2C的三态门电路Verilog实现


I2C_Controller.v里面例化了一个I2C_WRITE_WDATA.v模块:


该模块将I2C_WRITE_WDATA.v模块的SDAI 和SDAO 之间增加了一个三态门电路:


在I2C_WRITE_WDATA模块中,SDAO是输出信号,用于控制数据线的输出状态。当需要输出高电平时,SDAO设置为1,使得I2C_SDAT为高阻,由上拉电阻拉高;当需要输出低电平时,SDAO设置为0,将I2C_SDAT拉低。同时,I2C_WRITE_WDATA模块还接收SDAI(即I2C_SDAT)作为输入,用于读取总线上的实际状态(例如检测ACK信号)。


3 I2C配置寄存器的Verilog设计


这是一个HDMI的寄存器配置模块,它使用了一个查找表(LUT)来存储配置数据,然后通过I2C控制器(实现了I2C协议)对HDMI transmitter的寄存器逐个进行写入配置。


时钟分频


一般FPGA开发板板载系统时钟是50MHz, 但是I2C 的时钟不能太高,从手册上看, 最大不能超过400KHz,所以设计代码的时候需要分频。


Verilog代码里面将50MHz时钟分频为20KHz时钟:


配置寄存器


寄存器配置的值通过查找表(LUT)来存储, 代码里面主要配置了31个寄存器,其他的没有配置的就表示使用的是默认的配置,有关于ADV7513的寄存器查找请参考2 ADV7513寄存器配置章节。


寄存器数据的配置采用一个三状态的状态机去控制:

状态机完整代码如下:

这个状态机确保了HDMI配置数据的可靠传输,具备完整的错误处理和重试机制,是HDMI初始化过程中的核心控制逻辑。


I2C设备地址


ADV7513的PD引脚接2K电阻到地:

参考ADV7513_Hardware_User's_Guide_R0.pdf文档可知其I2C读、写地址是0x72/0x73:


HDMI_TX_INT信号


HDMI_TX_INT信号低电平有效,具体描述可以参考ADV7513_Hardware_User's_Guide_R0.pdf的第17页:


在DE10-Nano的开发板电路中,

该引脚默认被拉高到3.3V,当触发中断事件发生时,由软件控制该信号发生电平变化。


I2C_HDMI_Config.v文件里面设置若HDMI_TX_INT信号为低电平,则重新配置寄存器:

往期阅读

1-DE10-Nano的HDMI方块移动案例——显示器时序(DMT)标准介绍

2-DE10-Nano的HDMI方块移动案例——HDMI接口介绍(含TMDS)

3-DE10-Nano的HDMI方块移动案例——ADV7513芯片解读

4-DE10-Nano的HDMI方块移动案例——I2C通信协议

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/30 0:47:02

GPT-SoVITS能否处理带有背景音乐的输入音频?

GPT-SoVITS 能否处理带背景音乐的音频?一个工程视角的深度剖析 在语音合成技术飞速发展的今天,个性化音色克隆已不再是实验室里的稀有实验,而是逐渐走入普通开发者和内容创作者手中的实用工具。GPT-SoVITS 作为当前开源社区中最受关注的少样…

作者头像 李华
网站建设 2026/8/30 8:17:11

语音合成鲁棒性测试:GPT-SoVITS抗干扰能力评估

语音合成鲁棒性测试:GPT-SoVITS抗干扰能力评估 在虚拟主播24小时不间断直播、视障用户通过AI“亲人之声”朗读家书的今天,个性化语音合成已不再是实验室里的炫技工具。真正决定这类技术能否走进千家万户的,往往不是峰值MOS评分,而…

作者头像 李华
网站建设 2026/9/2 23:35:41

轻松将 PDF 变成 Word:Python 的完美解决方案

在数字化时代,PDF(便携式文档格式)因其跨平台共享和阅读的便利性而广泛使用。然而,在需要对文档进行编辑或修改时,将 PDF 转换为 Word 变得尤为重要。本文将介绍如何使用 Python 和 Spire.PDF for Python 库将 PDF 文件…

作者头像 李华
网站建设 2026/9/3 0:56:14

为什么99%的人首次部署Open-AutoGLM都失败?揭秘手机端安装核心坑点

第一章:为什么99%的人首次部署Open-AutoGLM都失败?部署 Open-AutoGLM 时,大多数用户在初始阶段即遭遇失败,根本原因并非技术复杂度本身,而是对环境依赖与配置逻辑的误判。最常见的问题集中在模型依赖版本冲突、GPU 驱动…

作者头像 李华
网站建设 2026/9/2 7:14:50

Open-AutoGLM安卓部署实测记录,从环境配置到成功运行全流程解析

第一章:Open-AutoGLM 手机部署安装在移动设备上部署 Open-AutoGLM 模型,能够实现本地化、低延迟的自然语言处理能力。本章介绍如何在安卓手机上完成模型的安装与基础运行环境配置。准备工作 一台搭载 Android 10 或更高版本的智能手机开启“开发者选项”…

作者头像 李华
网站建设 2026/8/26 23:13:54

如何通过Open-AutoGLM内测审核?资深专家亲授3大关键技巧

第一章:Open-AutoGLM内测申请Open-AutoGLM 是由智谱AI推出的一款面向自动化任务的开源大模型,旨在通过自然语言理解与代码生成能力,实现低门槛的智能体构建。目前该模型正处于内测阶段,开发者可通过官方渠道提交申请以获取早期访问…

作者头像 李华