国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于FPGA的I2C控制模塊設計

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

掃碼添加小助手

加入工程師交流群

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

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

1 I2C寫操作的Verilog實現

I2C_WRITE_WDATA.v是一個I2C寫數據模塊,用于通過I2C總線向從設備ADV7513寫入數據。

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

該模塊接口定義如下:

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

該模塊實現了一個狀態機,其功能是向從設備寫入多個字節數據。它按照I2C協議生成起始條件、發送從設備地址(包括讀/寫位)、發送數據字節以及產生停止條件。同時,它還會檢測從設備的應答信號,并在傳輸完成后給出結束信號。具體過程如下圖:

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

為了能更好的理解這個狀態機的控制邏輯,下面畫出I2C傳輸某個寄存器的過程波形如下:

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

2 I2C的三態門電路Verilog實現

I2C_Controller.v里面例化了一個I2C_WRITE_WDATA.v模塊:

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

該模塊將I2C_WRITE_WDATA.v模塊的SDAI 和SDAO 之間增加了一個三態門電路:

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

在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,所以設計代碼的時候需要分頻。

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

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

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

配置寄存器

寄存器配置的值通過查找表(LUT)來存儲, 代碼里面主要配置了31個寄存器,其他的沒有配置的就表示使用的是默認的配置,有關于ADV7513的寄存器查找請參考2 ADV7513寄存器配置章節。

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

寄存器數據的配置采用一個三狀態的狀態機去控制:

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

狀態機完整代碼如下:

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

這個狀態機確保了HDMI配置數據的可靠傳輸,具備完整的錯誤處理和重試機制,是HDMI初始化過程中的核心控制邏輯。

I2C設備地址

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信號

HDMI_TX_INT信號低電平有效,具體描述可以參考ADV7513_Hardware_User's_Guide_R0.pdf的第17頁:

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

在DE10-Nano的開發板電路中,

該引腳默認被拉高到3.3V,當觸發中斷事件發生時,由軟件控制該信號發生電平變化。

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

I2C_HDMI_Config.v文件里面設置若HDMI_TX_INT信號為低電平,則重新配置寄存器:

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1660

    文章

    22408

    瀏覽量

    636222
  • 寄存器
    +關注

    關注

    31

    文章

    5608

    瀏覽量

    129966
  • Verilog
    +關注

    關注

    30

    文章

    1374

    瀏覽量

    114520
  • I2C控制
    +關注

    關注

    0

    文章

    5

    瀏覽量

    1847

原文標題:5-DE10-Nano的HDMI方塊移動案例——基于FPGA的I2C控制模塊設計

文章出處:【微信號:友晶FPGA,微信公眾號:友晶FPGA】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于FPGAI2C SLAVE模式總線的設計方案

    本文以標準的I2C 總線協議為基礎,提出了一種基于FPGAI2C SLAVE 模式總線的設計方案。方案主要介紹了SLAVE 模式的特點。給出了設計的原理框圖和modelsim 下的行為仿真時序圖
    發表于 02-26 11:39 ?2.1w次閱讀

    SM-IIC/2051模塊用戶說明(I2C 數據控制模塊)

    SM-IIC/2051 模塊用戶說明簡介:SM-IIC/2051 是一個基于2051 單片機的I2C 總線控制模塊。上位機接口可直接與PC的RS232 連接,下位機可實現對應用電路中
    發表于 08-13 17:25 ?25次下載

    視頻解碼技術中I2C總線控制核的實現

    本文介紹了I2C總線的通訊特點,簡要說明了I2C總線的協議規范和特點,并針對Philip公司視頻解碼系列芯片SAA7111A/SAA7121,從模塊控制的角度說明了用
    發表于 05-27 11:55 ?17次下載

    I2C總線規范與I2C器件C51讀寫程序

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

    用Verilog HDL實現I2C總線功能

    簡述了I2C總線的特點;介紹了開發FPGAI2C總線模塊的設計思想;給出并解釋了用Verilog HDL實現部分I2C總線功能的程序,以及
    發表于 10-19 10:49 ?104次下載

    I2C總線接口模塊設計

    本實驗是基于EasyFPGA030的I2C總線接口模塊設計,用EasyFPGA030開發套件通過I2C協議實現對二線制
    發表于 11-02 17:01 ?41次下載

    基于EasyFPGA030的I2C總線接口模塊

    本實驗是基于EasyFPGA030的I2C總線接口模塊設計,用EasyFPGA030開發套件通過I2C協議實現對二線制
    發表于 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
    發表于 04-23 13:55 ?36次下載

    用Verilog HDL實現I2C總線功能

    摘要: 簡述了I2C總線的特點;介紹了開發FPGAI2C總線模塊的設計思想;給出并解釋了用Verilog HDL實現部分I2C總線功能的程
    發表于 06-20 13:17 ?7158次閱讀
    用Verilog HDL實現<b class='flag-5'>I2C</b>總線功能

    i2c

    單片機i2c總線操作;單片機i2c總線操作;單片機i2c總線操作;
    發表于 05-17 11:09 ?35次下載

    I2C模塊arduinoio Simulink軟件包

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

    Arduino教程之I2C模塊使用教程資料免費下載

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

    硬件I2C與模擬I2C

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

    DA9062 PMIC I2C控制參考電路

    基于DA9062設計I2C控制PMIC 用于FPGA ZYNQ電源管理設計電路免費下載。
    發表于 05-25 15:26 ?7次下載

    I2C控制器驅動介紹

    控制器驅動 I2C 總線驅動重點是 I2C 適配器驅動,這里要用到兩個重要的數據結構:i2c_adapter 和 i2c_algorithm
    的頭像 發表于 07-22 15:38 ?2919次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>控制</b>器驅動介紹