99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

《基于FPGA的IIC設(shè)計(jì)》

電子工程師 ? 來(lái)源:FPGA設(shè)計(jì)論壇 ? 作者:FPGA設(shè)計(jì)論壇 ? 2020-11-20 16:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

《基于FPGA 的 IIC設(shè)計(jì)

設(shè)計(jì)背景:

IIC 簡(jiǎn)單來(lái)說(shuō),就是一種串行通信協(xié)議,IIC 的通信協(xié)議和通信接口在很多工程中有廣泛的應(yīng)用,如數(shù)據(jù)采集領(lǐng)域的串行 AD,圖像處理領(lǐng)域的攝像頭配置,工業(yè)控制領(lǐng)域的 X 射線管配置等等。除此之外,由于 IIC 協(xié)議占用的 IO 資源特別少,連接方便,所以工程中也常選用 IIC 接口做為不同芯片間的通信協(xié)議。

設(shè)計(jì)原理:

IIC 電路原理圖如下:

24LC64 各引腳定義:

1、A0,A1,A2 為 24LC64 的片選信號(hào),由于 IIC 總線可以掛載多個(gè) IIC 接口器件,所以每個(gè)器件都應(yīng)該有自己的“身份標(biāo)識(shí)”,通過(guò)對(duì) A0,A1,A2 輸入不同的高低電平,就可以設(shè)置該 EEPROM 的片選信號(hào)。

2、WP 為讀寫(xiě)使能信號(hào),當(dāng) WP 懸空或者接地,EEPROM 可讀可寫(xiě),當(dāng) WP 接電源,EEPROM 只能讀不能寫(xiě)。

3、SCL 為 IIC 接口的時(shí)鐘線。

4、SDA 為 IIC 接口的數(shù)據(jù)線。

IIC 接口的讀寫(xiě)時(shí)序:

IIC 接口讀寫(xiě)時(shí)序分為隨機(jī)讀寫(xiě)(單字節(jié)讀寫(xiě))和頁(yè)面讀寫(xiě)(多字節(jié)讀寫(xiě)),先分析隨機(jī)讀寫(xiě)(Byte Write/Read)時(shí)序。Byte Write 時(shí)序如下:

時(shí)序解讀:如果我們要向 EEPROM 寫(xiě)入一個(gè)字節(jié),那么必須經(jīng)過(guò)以下步驟:

1. 發(fā)送啟動(dòng)信號(hào)

2. 發(fā)送控制字

3. 接收并檢測(cè) EEPROM 發(fā)來(lái)的應(yīng)答信號(hào) ACK

4. 發(fā)送高字節(jié)地址位

5. 接收并檢測(cè) EEPROM 發(fā)來(lái)的應(yīng)答信號(hào) ACK

6. 發(fā)送低字節(jié)地址位

7. 接收并檢測(cè) EEPROM 發(fā)來(lái)的應(yīng)答信號(hào) ACK

8. 發(fā)送 8bit 有效數(shù)據(jù)

9. 接收并檢測(cè) EEPROM 發(fā)來(lái)的應(yīng)答信號(hào) ACK

10.發(fā)送停止信號(hào)

Byte Read 時(shí)序如下:

時(shí)序解讀:如果我們要從 EEPROM 讀出一個(gè)字節(jié),那么必須經(jīng)過(guò)以下步驟:

1. 發(fā)送啟動(dòng)信號(hào)

2. 發(fā)送控制字 1010_A2A1A0_0

3. 接收并檢測(cè) EEPROM 發(fā)來(lái)的應(yīng)答信號(hào) ACK

4. 發(fā)送高字節(jié)地址位

5. 接收并檢測(cè) EEPROM 發(fā)來(lái)的應(yīng)答信號(hào) ACK

6. 發(fā)送低字節(jié)地址位

7. 接收并檢測(cè) EEPROM 發(fā)來(lái)的應(yīng)答信號(hào) ACK

8. 發(fā)送啟動(dòng)信號(hào)

9. 發(fā)送控制字 1010_A2A1A0_1

10. 接收并檢測(cè) EEPROM 發(fā)來(lái)的應(yīng)答信號(hào) ACK

11. 讀取一個(gè)字節(jié)數(shù)據(jù)

12. 發(fā)送 NO ACK 信號(hào)

13. 發(fā)送停止信號(hào)

接下來(lái)則需要分析各步驟具體意義:

1.啟動(dòng)信號(hào)

在 SCL 保持高電平期間,如果 SDA 出現(xiàn)由高到低的跳變沿,代表啟動(dòng)信號(hào)

2. 控制字

我們的控制字為 1010_0000,其中 1010 為 EEPROM 的型號(hào)標(biāo)識(shí),為一組固定的序列,緊接著 A2,A1,A0 就是我們的片選信號(hào),最后一位為讀寫(xiě)控制位,低電平代表寫(xiě),高電平代表讀,我們這里首先需要對(duì) EEPROM 寫(xiě)入地址位,所以我們最后一位為 0。

3. 高/低位地址

由于 24LC64 有 64Kbit 的存儲(chǔ)空間,所以我們需要 13 位的地址位寬才能尋址所有的存儲(chǔ)空間,由于 IIC 協(xié)議規(guī)定只能以字節(jié)形式寫(xiě)入,所以必須將 13 位的地址擴(kuò)展為 16 位的地址,分為高八位和低八位,多出來(lái)的前三位填充任意數(shù)據(jù)即可,對(duì)我們的尋址地址沒(méi)有影響。

3. 停止信號(hào)

4. 應(yīng)答信號(hào) ACK

應(yīng)答信號(hào)是由數(shù)據(jù)接收方發(fā)出的,當(dāng) SCL 為高電平期間,如果監(jiān)測(cè)到 SDA 為低電平,說(shuō)明有應(yīng)答信號(hào)。

5. 非應(yīng)答信號(hào) NO ACK

非應(yīng)答信號(hào)也是由數(shù)據(jù)接收方發(fā)出的,當(dāng) SCL 為高電平期間,如果 SDA 為高電平,說(shuō)明有非應(yīng)答信號(hào)。

說(shuō)明:由于 IIC 總線協(xié)議啟動(dòng)和停止信號(hào)都是在 SCL 高電平期間發(fā)生跳變,這就決定了我們其他數(shù)據(jù)的改變只能發(fā)生在 SCL 低電平期間,在 SCL 為高電平期間,數(shù)據(jù)必須保持穩(wěn)定。即在 SCL 低電平改變數(shù)據(jù),在 SCL 高電平采集數(shù)據(jù)。相比于單字節(jié)讀寫(xiě),頁(yè)面讀寫(xiě)只是增加了幾個(gè)狀態(tài),具體時(shí)序如下,這里和后面的設(shè)計(jì)代碼不做詳細(xì)論述。

Page Write 時(shí)序如下:

Page Read 時(shí)序如下:

設(shè)計(jì)架構(gòu)圖:

本設(shè)計(jì)用兩個(gè)按鍵控制 EEPROM 讀寫(xiě),當(dāng)寫(xiě)按鍵按下時(shí),向EEPROM 某一固定地址寫(xiě)入一個(gè)字節(jié)數(shù)據(jù),當(dāng)讀按鍵按下時(shí),將該地址數(shù)據(jù)讀出,并顯示到數(shù)碼管,LED 燈是一個(gè)標(biāo)志信號(hào),LED 亮說(shuō)明數(shù)據(jù)寫(xiě)入完畢。設(shè)計(jì)架構(gòu)如下:

設(shè)計(jì)代碼:

iic_wr 模塊代碼:負(fù)責(zé)進(jìn)行 IIC 數(shù)據(jù)的讀寫(xiě)

seg7_lut 模塊代碼,負(fù)責(zé)數(shù)碼管顯示

IIC 頂層模塊代碼:

tb 頂層測(cè)試模塊代碼:

仿真圖:

隨機(jī)讀寫(xiě),仿真寫(xiě)時(shí)序:

隨機(jī)讀寫(xiě),仿真讀時(shí)序:

在仿真時(shí),需要將檢測(cè)應(yīng)答的狀態(tài)跳過(guò),直接向下一狀態(tài)跳轉(zhuǎn),觀察讀寫(xiě)時(shí)序,當(dāng)讀寫(xiě)按鍵按下時(shí),都會(huì)產(chǎn)生對(duì)應(yīng)的動(dòng)作。

責(zé)任編輯:lq

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

    關(guān)注

    1645

    文章

    22050

    瀏覽量

    618647
  • IIC
    IIC
    +關(guān)注

    關(guān)注

    11

    文章

    306

    瀏覽量

    39516
  • 工業(yè)控制
    +關(guān)注

    關(guān)注

    38

    文章

    1546

    瀏覽量

    87056

原文標(biāo)題:FPGA入門(mén)課程《基于 FPGA 的 IIC設(shè)計(jì)》

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    IIC接口的IIC_SCL和IIC_SDA引腳做普通GPIO,程序啟動(dòng)不起來(lái)怎么解決?

    想用IIC接口的IIC_SCL和IIC_SDA引腳做普通GPIO,兩個(gè)引腳對(duì)應(yīng)的是GPIO58和GPIO59,更改代碼將設(shè)置為普通GPIO引腳模式后,程序啟動(dòng)不起來(lái)。問(wèn):這種情況如何解決,官方支持這種應(yīng)用嗎?
    發(fā)表于 05-06 08:59

    ZYNQ FPGA的PS端IIC設(shè)備接口使用

    zynq系列中的FPGA,都會(huì)自帶兩個(gè)iic設(shè)備,我們直接調(diào)用其接口函數(shù)即可運(yùn)用。使用xilinx官方提供的庫(kù)函數(shù),開(kāi)發(fā)起來(lái)方便快捷。
    的頭像 發(fā)表于 04-17 11:26 ?1097次閱讀
    ZYNQ <b class='flag-5'>FPGA</b>的PS端<b class='flag-5'>IIC</b>設(shè)備接口使用

    巨霖科技IIC Shanghai 2025精彩回顧

    近日,全球半導(dǎo)體行業(yè)矚目的國(guó)際集成電路展覽會(huì)暨研討會(huì)(IIC Shanghai 2025)在上海金茂君悅大酒店盛大開(kāi)幕。
    的頭像 發(fā)表于 03-28 11:27 ?552次閱讀

    為什么IIC總線會(huì)難住這么多人?

    為什么 IIC 總線讓很多人頭疼?其實(shí)可以把它想象成一場(chǎng)復(fù)雜的 "設(shè)備對(duì)話游戲",新手容易在這些地方栽跟頭:
    的頭像 發(fā)表于 03-12 10:14 ?525次閱讀
    為什么<b class='flag-5'>IIC</b>總線會(huì)難住這么多人?

    在APP FPGA 中通過(guò)IIC接口對(duì)DLPC910寄存器進(jìn)行配置遇到的兩個(gè)問(wèn)題求解

    在APP FPGA 中通過(guò)IIC接口對(duì)DLPC910寄存器進(jìn)行配置,有兩個(gè)問(wèn)題想要請(qǐng)教: 1、DLPC910被封裝成了FPGA,通過(guò)IIC改變它的寄存器的值,掉電后,該值會(huì)被保留還是
    發(fā)表于 02-25 06:47

    使用FPGA控制DLPC3438,采用IIC協(xié)議進(jìn)行讀寫(xiě)操作,讀取的數(shù)據(jù)存在錯(cuò)誤,無(wú)法正確從寄存器中讀取數(shù)據(jù)怎么解決?

    我使用FPGA控制DLPC3438,采用IIC協(xié)議進(jìn)行讀寫(xiě)操作,主要存在如下問(wèn)題: (1)當(dāng)寫(xiě)入8個(gè)字節(jié)到0x2E地址時(shí),通過(guò)Xilinx工具ChipScope抓取IIC信號(hào),發(fā)現(xiàn)DLPC3438
    發(fā)表于 02-24 07:47

    DLPC350怎么才能實(shí)現(xiàn)iic通訊?

    我想通過(guò)單片機(jī)iic接口控制DLPC350,從地址是0x34和0x35,然后對(duì)對(duì)應(yīng)寄存器進(jìn)行讀寫(xiě),設(shè)置的頻率是100khz,但是發(fā)現(xiàn)無(wú)法通訊上,我想知道怎么才能實(shí)現(xiàn)iic通訊?
    發(fā)表于 02-21 08:07

    DLPC3479 IIC通訊異常的原因?

    電路是按照TI硬件方案自主設(shè)計(jì)的電路,但是沒(méi)有使用Cypress,直接用了一個(gè)FPGA通過(guò)IIC控制,上電后DLP3479的HOST_IRQ引腳正常拉低,但是遇到如下問(wèn)題: 1. 按照說(shuō)明發(fā)送
    發(fā)表于 02-18 07:04

    請(qǐng)問(wèn)DS90UB903Q的IIC工作頻率必須為100KHz嗎?

    ;PCLK=10MHz。芯片完成上電,使用FPGAIIC訪問(wèn)DS90UB903Q的ID,結(jié)果為0xFF。這與芯片默認(rèn)的地址0xB0不符。FPGAIIC頻率為20KHz。 經(jīng)過(guò)調(diào)試,
    發(fā)表于 12-26 07:08

    如何通過(guò)FPGA配置CDCI6214?

    我想直接采用FPGA通過(guò)IIC接口配置CDCI6214內(nèi)部寄存器,而不是先寫(xiě)入EEPROM再由EEPROM寫(xiě)入內(nèi)部寄存器。在這種配置下,RESETN和EEPROMSEL引腳應(yīng)該如何接?
    發(fā)表于 11-11 06:24

    愛(ài)芯元智亮相IIC Shenzhen 2024

    近日,國(guó)際集成電路展覽會(huì)暨研討會(huì)(IIC Shenzhen 2024)在深圳福田會(huì)展中心拉開(kāi)帷幕。作為業(yè)界最具影響力的系統(tǒng)設(shè)計(jì)盛會(huì)之一,IIC匯聚了國(guó)內(nèi)外電子產(chǎn)業(yè)領(lǐng)袖、管理人員、設(shè)計(jì)精英及決策者。在
    的頭像 發(fā)表于 11-07 15:41 ?756次閱讀

    愛(ài)芯元智邀您相約IIC Shenzhen 2024峰會(huì)

    11月5日-6日,國(guó)際集成電路展覽會(huì)暨研討會(huì)(IIC Shenzhen 2024)將于深圳福田會(huì)展中心7號(hào)館舉行。作為集成電路產(chǎn)業(yè)洞見(jiàn)趨勢(shì)的風(fēng)向標(biāo),IIC集行業(yè)交流、渠道聯(lián)動(dòng)、資源聚合為一體,為半導(dǎo)體產(chǎn)業(yè)搭建專(zhuān)業(yè)交流平臺(tái),助推產(chǎn)業(yè)創(chuàng)新發(fā)展。
    的頭像 發(fā)表于 10-31 11:53 ?589次閱讀

    MCU通過(guò)IIC口控制TLV320AIC3204,請(qǐng)問(wèn)MCU的IIC接口和TLV320AIC3204的IIC接口對(duì)接時(shí)需要電平轉(zhuǎn)換嗎?

    MCU通過(guò)IIC口控制TLV320AIC3204,該芯片的IOVDD接1.8V,MCU的IIC上拉電平是3.3V,請(qǐng)問(wèn)MCU的IIC接口和TLV320AIC3204的IIC接口對(duì)接時(shí)
    發(fā)表于 10-30 06:02

    IIC信號(hào)線需要增加上拉電阻,是因?yàn)?b class='flag-5'>IIC的IO是什么

    IIC(Inter-Integrated Circuit,即集成電路總線)信號(hào)線需要增加上拉電阻,這主要是因?yàn)?b class='flag-5'>IIC的IO(輸入輸出)設(shè)計(jì)采用了開(kāi)漏(Open-Drain)輸出方式。開(kāi)漏輸出方式在
    的頭像 發(fā)表于 10-06 15:50 ?2098次閱讀

    FPGA通過(guò)IIC給TLV320AIC3204寫(xiě)入寄存器,讀出來(lái)的數(shù)據(jù)一直是零,為什么?

    FPGA通過(guò)IIC給TLV320AIC3204寫(xiě)入寄存器,但好像沒(méi)寫(xiě)進(jìn)去,讀出來(lái)的數(shù)據(jù)一直是零
    發(fā)表于 09-29 06:06