chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

基于FPGA的I2C控制模塊設計

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

該模塊接口定義如下:

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

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

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

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

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

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

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

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

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

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

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

3 I2C配置寄存器的Verilog設計

這是一個HDMI的寄存器配置模塊,它使用了一個查找表(LUT)來存儲配置數據,然后通過I2C控制器(實現(xiàn)了I2C協(xié)議)對HDMI transmitter的寄存器逐個進行寫入配置。

時鐘分頻

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

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

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

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

配置寄存器

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

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

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

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

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

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

這個狀態(tài)機確保了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的開發(fā)板電路中,

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

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

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

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

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

    關注

    1663

    文章

    22491

    瀏覽量

    638837
  • 寄存器
    +關注

    關注

    31

    文章

    5617

    瀏覽量

    130373
  • Verilog
    +關注

    關注

    30

    文章

    1374

    瀏覽量

    114700
  • I2C控制
    +關注

    關注

    0

    文章

    6

    瀏覽量

    1856

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

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

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

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

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

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

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

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

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

    I2C總線接口模塊設計

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

    基于EasyFPGA030的I2C總線接口模塊

    本實驗是基于EasyFPGA030的I2C總線接口模塊設計,用EasyFPGA030開發(fā)套件通過I2C協(xié)議實現(xiàn)對二線制
    發(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實現(xiàn)I2C總線功能

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

    I2C模塊arduinoio Simulink軟件包

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

    零基礎學FPGA(十)初入江湖之i2c通信

    關鍵詞:FPGA , i2c , verilog 相信學過單片機的同學對I2C總線都不陌生吧,今天我們來學習怎么用verilog語言來實現(xiàn)它,并在FPGA學習版上顯示。
    發(fā)表于 09-14 09:46 ?1050次閱讀

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

    為什么叫I2C模塊?和一元硬幣差不多大小的一塊PCB上放了三個芯片,分管三個功能:時間計算、溫度偵測、數據存儲。這三個芯片都是通過I2C總線通信的。 我們知道,I2C理論上可以級聯(lián)
    發(fā)表于 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協(xié)議的時序。例如下面這段
    發(fā)表于 12-28 19:14 ?83次下載
    硬件<b class='flag-5'>I2C</b>與模擬<b class='flag-5'>I2C</b>

    DA9062 PMIC I2C控制參考電路

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

    I2C控制器驅動介紹

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