91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于FPGA的I2C控制模塊設(shè)計(jì)

友晶FPGA ? 來(lái)源:友晶FPGA ? 2025-12-26 09:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

I2C_WRITE_WDATA.v模塊實(shí)現(xiàn)I2C寫時(shí)序,I2C_Controller (I2C控制器)例化了I2C_WRITE_WDATA.v模塊,同時(shí)增加了I2C數(shù)據(jù)線SDA的三態(tài)緩沖電路。I2C_HDMI_Config.v 是頂層模塊,該模塊例化了I2C_Controller模塊,對(duì)系統(tǒng)時(shí)鐘進(jìn)行了分頻,并控制寄存器的配置。

056ba96a-e06c-11f0-8c8f-92fbcf53809c.png

1 I2C寫操作的Verilog實(shí)現(xiàn)

I2C_WRITE_WDATA.v是一個(gè)I2C寫數(shù)據(jù)模塊,用于通過(guò)I2C總線向從設(shè)備ADV7513寫入數(shù)據(jù)。

05c58b1a-e06c-11f0-8c8f-92fbcf53809c.png

該模塊接口定義如下:

061e1a0a-e06c-11f0-8c8f-92fbcf53809c.png

該模塊實(shí)現(xiàn)了一個(gè)狀態(tài)機(jī),其功能是向從設(shè)備寫入多個(gè)字節(jié)數(shù)據(jù)。它按照I2C協(xié)議生成起始條件、發(fā)送從設(shè)備地址(包括讀/寫位)、發(fā)送數(shù)據(jù)字節(jié)以及產(chǎn)生停止條件。同時(shí),它還會(huì)檢測(cè)從設(shè)備的應(yīng)答信號(hào),并在傳輸完成后給出結(jié)束信號(hào)。具體過(guò)程如下圖:

06761aa2-e06c-11f0-8c8f-92fbcf53809c.png

為了能更好的理解這個(gè)狀態(tài)機(jī)的控制邏輯,下面畫出I2C傳輸某個(gè)寄存器的過(guò)程波形如下:

06d086f4-e06c-11f0-8c8f-92fbcf53809c.png

2 I2C的三態(tài)門電路Verilog實(shí)現(xiàn)

I2C_Controller.v里面例化了一個(gè)I2C_WRITE_WDATA.v模塊:

072573ee-e06c-11f0-8c8f-92fbcf53809c.png

該模塊將I2C_WRITE_WDATA.v模塊的SDAI 和SDAO 之間增加了一個(gè)三態(tài)門電路:

077e0f54-e06c-11f0-8c8f-92fbcf53809c.png

在I2C_WRITE_WDATA模塊中,SDAO是輸出信號(hào),用于控制數(shù)據(jù)線的輸出狀態(tài)。當(dāng)需要輸出高電平時(shí),SDAO設(shè)置為1,使得I2C_SDAT為高阻,由上拉電阻拉高;當(dāng)需要輸出低電平時(shí),SDAO設(shè)置為0,將I2C_SDAT拉低。同時(shí),I2C_WRITE_WDATA模塊還接收SDAI(即I2C_SDAT)作為輸入,用于讀取總線上的實(shí)際狀態(tài)(例如檢測(cè)ACK信號(hào))。

3 I2C配置寄存器的Verilog設(shè)計(jì)

這是一個(gè)HDMI的寄存器配置模塊,它使用了一個(gè)查找表(LUT)來(lái)存儲(chǔ)配置數(shù)據(jù),然后通過(guò)I2C控制器(實(shí)現(xiàn)了I2C協(xié)議)對(duì)HDMI transmitter的寄存器逐個(gè)進(jìn)行寫入配置。

時(shí)鐘分頻

一般FPGA開發(fā)板板載系統(tǒng)時(shí)鐘是50MHz, 但是I2C 的時(shí)鐘不能太高,從手冊(cè)上看, 最大不能超過(guò)400KHz,所以設(shè)計(jì)代碼的時(shí)候需要分頻。

07d42948-e06c-11f0-8c8f-92fbcf53809c.png

Verilog代碼里面將50MHz時(shí)鐘分頻為20KHz時(shí)鐘:

082efeb8-e06c-11f0-8c8f-92fbcf53809c.png

配置寄存器

寄存器配置的值通過(guò)查找表(LUT)來(lái)存儲(chǔ), 代碼里面主要配置了31個(gè)寄存器,其他的沒有配置的就表示使用的是默認(rèn)的配置,有關(guān)于ADV7513的寄存器查找請(qǐng)參考2 ADV7513寄存器配置章節(jié)。

0885e85e-e06c-11f0-8c8f-92fbcf53809c.png

寄存器數(shù)據(jù)的配置采用一個(gè)三狀態(tài)的狀態(tài)機(jī)去控制:

08e11fc6-e06c-11f0-8c8f-92fbcf53809c.png

狀態(tài)機(jī)完整代碼如下:

09382618-e06c-11f0-8c8f-92fbcf53809c.png

這個(gè)狀態(tài)機(jī)確保了HDMI配置數(shù)據(jù)的可靠傳輸,具備完整的錯(cuò)誤處理和重試機(jī)制,是HDMI初始化過(guò)程中的核心控制邏輯。

I2C設(shè)備地址

ADV7513的PD引腳接2K電阻到地:

0994b0e0-e06c-11f0-8c8f-92fbcf53809c.png

參考ADV7513_Hardware_User's_Guide_R0.pdf文檔可知其I2C讀、寫地址是0x72/0x73:

09e8ba6e-e06c-11f0-8c8f-92fbcf53809c.png

HDMI_TX_INT信號(hào)

HDMI_TX_INT信號(hào)低電平有效,具體描述可以參考ADV7513_Hardware_User's_Guide_R0.pdf的第17頁(yè):

0a436310-e06c-11f0-8c8f-92fbcf53809c.png

在DE10-Nano的開發(fā)板電路中,

該引腳默認(rèn)被拉高到3.3V,當(dāng)觸發(fā)中斷事件發(fā)生時(shí),由軟件控制該信號(hào)發(fā)生電平變化。

0a99cac0-e06c-11f0-8c8f-92fbcf53809c.png

I2C_HDMI_Config.v文件里面設(shè)置若HDMI_TX_INT信號(hào)為低電平,則重新配置寄存器:

0af91b2e-e06c-11f0-8c8f-92fbcf53809c.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1660

    文章

    22406

    瀏覽量

    636080
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5608

    瀏覽量

    129942
  • Verilog
    +關(guān)注

    關(guān)注

    30

    文章

    1373

    瀏覽量

    114515
  • I2C控制
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    1847

原文標(biāo)題:5-DE10-Nano的HDMI方塊移動(dòng)案例——基于FPGA的I2C控制模塊設(shè)計(jì)

文章出處:【微信號(hào):友晶FPGA,微信公眾號(hào):友晶FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于FPGAI2C SLAVE模式總線的設(shè)計(jì)方案

    本文以標(biāo)準(zhǔn)的I2C 總線協(xié)議為基礎(chǔ),提出了一種基于FPGAI2C SLAVE 模式總線的設(shè)計(jì)方案。方案主要介紹了SLAVE 模式的特點(diǎn)。給出了設(shè)計(jì)的原理框圖和modelsim 下的行為仿真時(shí)序圖
    發(fā)表于 02-26 11:39 ?2.1w次閱讀

    SM-IIC/2051模塊用戶說(shuō)明(I2C 數(shù)據(jù)控制模塊)

    SM-IIC/2051 模塊用戶說(shuō)明簡(jiǎn)介:SM-IIC/2051 是一個(gè)基于2051 單片機(jī)的I2C 總線控制模塊。上位機(jī)接口可直接與PC的RS232 連接,下位機(jī)可實(shí)現(xiàn)對(duì)應(yīng)用電路中
    發(fā)表于 08-13 17:25 ?25次下載

    視頻解碼技術(shù)中I2C總線控制核的實(shí)現(xiàn)

    本文介紹了I2C總線的通訊特點(diǎn),簡(jiǎn)要說(shuō)明了I2C總線的協(xié)議規(guī)范和特點(diǎn),并針對(duì)Philip公司視頻解碼系列芯片SAA7111A/SAA7121,從模塊控制的角度說(shuō)明了用
    發(fā)表于 05-27 11:55 ?17次下載

    I2C總線規(guī)范與I2C器件C51讀寫程序

    I2C總線規(guī)范與I2C器件C51讀寫程序:本文簡(jiǎn)要介紹了I2C總線,并給出了I2C器件的C51讀
    發(fā)表于 08-22 17:51 ?95次下載

    用Verilog HDL實(shí)現(xiàn)I2C總線功能

    簡(jiǎn)述了I2C總線的特點(diǎn);介紹了開發(fā)FPGA時(shí)I2C總線模塊的設(shè)計(jì)思想;給出并解釋了用Verilog HDL實(shí)現(xiàn)部分I2C總線功能的程序,以及
    發(fā)表于 10-19 10:49 ?104次下載

    I2C總線接口模塊設(shè)計(jì)

    本實(shí)驗(yàn)是基于EasyFPGA030的I2C總線接口模塊設(shè)計(jì),用EasyFPGA030開發(fā)套件通過(guò)I2C協(xié)議實(shí)現(xiàn)對(duì)二線制
    發(fā)表于 11-02 17:01 ?41次下載

    基于EasyFPGA030的I2C總線接口模塊

    本實(shí)驗(yàn)是基于EasyFPGA030的I2C總線接口模塊設(shè)計(jì),用EasyFPGA030開發(fā)套件通過(guò)I2C協(xié)議實(shí)現(xiàn)對(duì)二線制
    發(fā)表于 03-11 15:37 ?29次下載

    I2C Guid I2C指南

    I2C Guid  I2C指南 The I2C bus is used in a wide rangeof applications because it is simpleand
    發(fā)表于 04-23 13:55 ?36次下載

    用Verilog HDL實(shí)現(xiàn)I2C總線功能

    摘要: 簡(jiǎn)述了I2C總線的特點(diǎn);介紹了開發(fā)FPGA時(shí)I2C總線模塊的設(shè)計(jì)思想;給出并解釋了用Verilog HDL實(shí)現(xiàn)部分I2C總線功能的程
    發(fā)表于 06-20 13:17 ?7158次閱讀
    用Verilog HDL實(shí)現(xiàn)<b class='flag-5'>I2C</b>總線功能

    i2c

    單片機(jī)i2c總線操作;單片機(jī)i2c總線操作;單片機(jī)i2c總線操作;
    發(fā)表于 05-17 11:09 ?35次下載

    I2C模塊arduinoio Simulink軟件包

    I2C模塊arduinoio Simulink軟件包
    發(fā)表于 01-22 14:06 ?0次下載

    Arduino教程之I2C模塊使用教程資料免費(fèi)下載

    為什么叫I2C模塊?和一元硬幣差不多大小的一塊PCB上放了三個(gè)芯片,分管三個(gè)功能:時(shí)間計(jì)算、溫度偵測(cè)、數(shù)據(jù)存儲(chǔ)。這三個(gè)芯片都是通過(guò)I2C總線通信的。 我們知道,I2C理論上可以級(jí)聯(lián)
    發(fā)表于 01-22 16:59 ?9次下載
    Arduino教程之<b class='flag-5'>I2C</b><b class='flag-5'>模塊</b>使用教程資料免費(fèi)下載

    硬件I2C與模擬I2C

    配置;而軟件I2C是沒有寄存器這個(gè)概念的。 軟件I2C一般是使用GPIO管腳,用軟件控制SCL,SDA線輸出高低電平,模擬i2c協(xié)議的時(shí)序。例如下面這段
    發(fā)表于 12-28 19:14 ?82次下載
    硬件<b class='flag-5'>I2C</b>與模擬<b class='flag-5'>I2C</b>

    DA9062 PMIC I2C控制參考電路

    基于DA9062設(shè)計(jì)I2C控制PMIC 用于FPGA ZYNQ電源管理設(shè)計(jì)電路免費(fèi)下載。
    發(fā)表于 05-25 15:26 ?7次下載

    I2C控制器驅(qū)動(dòng)介紹

    控制器驅(qū)動(dòng) I2C 總線驅(qū)動(dòng)重點(diǎn)是 I2C 適配器驅(qū)動(dòng),這里要用到兩個(gè)重要的數(shù)據(jù)結(jié)構(gòu):i2c_adapter 和 i2c_algorithm
    的頭像 發(fā)表于 07-22 15:38 ?2900次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>控制</b>器驅(qū)動(dòng)介紹