色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

《基于FPGA的IIC設計》

電子工程師 ? 來源:FPGA設計論壇 ? 作者:FPGA設計論壇 ? 2020-11-20 16:21 ? 次閱讀

《基于FPGA 的 IIC設計

設計背景:

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

設計原理:

IIC 電路原理圖如下:

24LC64 各引腳定義:

1、A0,A1,A2 為 24LC64 的片選信號,由于 IIC 總線可以掛載多個 IIC 接口器件,所以每個器件都應該有自己的“身份標識”,通過對 A0,A1,A2 輸入不同的高低電平,就可以設置該 EEPROM 的片選信號。

2、WP 為讀寫使能信號,當 WP 懸空或者接地,EEPROM 可讀可寫,當 WP 接電源,EEPROM 只能讀不能寫。

3、SCL 為 IIC 接口的時鐘線。

4、SDA 為 IIC 接口的數據線。

IIC 接口的讀寫時序:

IIC 接口讀寫時序分為隨機讀寫(單字節讀寫)和頁面讀寫(多字節讀寫),先分析隨機讀寫(Byte Write/Read)時序。Byte Write 時序如下:

時序解讀:如果我們要向 EEPROM 寫入一個字節,那么必須經過以下步驟:

1. 發送啟動信號

2. 發送控制字

3. 接收并檢測 EEPROM 發來的應答信號 ACK

4. 發送高字節地址位

5. 接收并檢測 EEPROM 發來的應答信號 ACK

6. 發送低字節地址位

7. 接收并檢測 EEPROM 發來的應答信號 ACK

8. 發送 8bit 有效數據

9. 接收并檢測 EEPROM 發來的應答信號 ACK

10.發送停止信號

Byte Read 時序如下:

時序解讀:如果我們要從 EEPROM 讀出一個字節,那么必須經過以下步驟:

1. 發送啟動信號

2. 發送控制字 1010_A2A1A0_0

3. 接收并檢測 EEPROM 發來的應答信號 ACK

4. 發送高字節地址位

5. 接收并檢測 EEPROM 發來的應答信號 ACK

6. 發送低字節地址位

7. 接收并檢測 EEPROM 發來的應答信號 ACK

8. 發送啟動信號

9. 發送控制字 1010_A2A1A0_1

10. 接收并檢測 EEPROM 發來的應答信號 ACK

11. 讀取一個字節數據

12. 發送 NO ACK 信號

13. 發送停止信號

接下來則需要分析各步驟具體意義:

1.啟動信號

在 SCL 保持高電平期間,如果 SDA 出現由高到低的跳變沿,代表啟動信號

2. 控制字

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

3. 高/低位地址

由于 24LC64 有 64Kbit 的存儲空間,所以我們需要 13 位的地址位寬才能尋址所有的存儲空間,由于 IIC 協議規定只能以字節形式寫入,所以必須將 13 位的地址擴展為 16 位的地址,分為高八位和低八位,多出來的前三位填充任意數據即可,對我們的尋址地址沒有影響。

3. 停止信號

4. 應答信號 ACK

應答信號是由數據接收方發出的,當 SCL 為高電平期間,如果監測到 SDA 為低電平,說明有應答信號。

5. 非應答信號 NO ACK

非應答信號也是由數據接收方發出的,當 SCL 為高電平期間,如果 SDA 為高電平,說明有非應答信號。

說明:由于 IIC 總線協議啟動和停止信號都是在 SCL 高電平期間發生跳變,這就決定了我們其他數據的改變只能發生在 SCL 低電平期間,在 SCL 為高電平期間,數據必須保持穩定。即在 SCL 低電平改變數據,在 SCL 高電平采集數據。相比于單字節讀寫,頁面讀寫只是增加了幾個狀態,具體時序如下,這里和后面的設計代碼不做詳細論述。

Page Write 時序如下:

Page Read 時序如下:

設計架構圖:

本設計用兩個按鍵控制 EEPROM 讀寫,當寫按鍵按下時,向EEPROM 某一固定地址寫入一個字節數據,當讀按鍵按下時,將該地址數據讀出,并顯示到數碼管LED 燈是一個標志信號,LED 亮說明數據寫入完畢。設計架構如下:

設計代碼:

iic_wr 模塊代碼:負責進行 IIC 數據的讀寫

seg7_lut 模塊代碼,負責數碼管顯示

IIC 頂層模塊代碼:

tb 頂層測試模塊代碼:

仿真圖:

隨機讀寫,仿真寫時序:

隨機讀寫,仿真讀時序:

在仿真時,需要將檢測應答的狀態跳過,直接向下一狀態跳轉,觀察讀寫時序,當讀寫按鍵按下時,都會產生對應的動作。

責任編輯:lq

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

    關注

    1629

    文章

    21748

    瀏覽量

    603873
  • IIC
    IIC
    +關注

    關注

    11

    文章

    301

    瀏覽量

    38354
  • 工業控制
    +關注

    關注

    38

    文章

    1457

    瀏覽量

    85874

原文標題:FPGA入門課程《基于 FPGA 的 IIC設計》

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    請問DS90UB903Q的IIC工作頻率必須為100KHz嗎?

    ;PCLK=10MHz。芯片完成上電,使用FPGAIIC訪問DS90UB903Q的ID,結果為0xFF。這與芯片默認的地址0xB0不符。FPGAIIC頻率為20KHz。 經過調試,
    發表于 12-26 07:08

    如何通過FPGA配置CDCI6214?

    我想直接采用FPGA通過IIC接口配置CDCI6214內部寄存器,而不是先寫入EEPROM再由EEPROM寫入內部寄存器。在這種配置下,RESETN和EEPROMSEL引腳應該如何接?
    發表于 11-11 06:24

    MCU通過IIC口控制TLV320AIC3204,請問MCU的IIC接口和TLV320AIC3204的IIC接口對接時需要電平轉換嗎?

    MCU通過IIC口控制TLV320AIC3204,該芯片的IOVDD接1.8V,MCU的IIC上拉電平是3.3V,請問MCU的IIC接口和TLV320AIC3204的IIC接口對接時
    發表于 10-30 06:02

    IIC信號線需要增加上拉電阻,是因為IIC的IO是什么

    IIC(Inter-Integrated Circuit,即集成電路總線)信號線需要增加上拉電阻,這主要是因為IIC的IO(輸入輸出)設計采用了開漏(Open-Drain)輸出方式。開漏輸出方式在
    的頭像 發表于 10-06 15:50 ?788次閱讀

    FPGA通過IIC給TLV320AIC3204寫入寄存器,讀出來的數據一直是零,為什么?

    FPGA通過IIC給TLV320AIC3204寫入寄存器,但好像沒寫進去,讀出來的數據一直是零
    發表于 09-29 06:06

    iic通訊的ardunio的文件下載

    里面很多iic通訊的ardunio的文件
    發表于 07-05 10:55 ?1次下載

    示波器如何捕獲和分析IIC波形?

    示波器捕獲和分析IIC(集成電路間通信)波形是一項重要的電子測量任務,特別是在嵌入式系統和微控制器的調試過程中。
    的頭像 發表于 05-20 15:08 ?3194次閱讀

    lis3dh使用IIC通訊,CS引腳懸空也能正常IIC通信嗎?

    芯片手冊上CS引腳接高電平是IIC通訊,接低電平是SPI通訊;接手的項目中,CS引腳是懸空的,IIC通訊能進行,我想知道懸空能IIC可靠通訊嘛?
    發表于 03-28 09:44

    巨霖科技將亮相IIC Shanghai并發表主題演講

    活動預告∣巨霖科技將亮相IIC Shanghai 并發表主題演講
    的頭像 發表于 03-27 09:50 ?424次閱讀
    巨霖科技將亮相<b class='flag-5'>IIC</b> Shanghai并發表主題演講

    FPGA實現IIC協議的設計

    今天給大家帶來的是IIC通信,IIC協議應用非常廣泛,例如與MPU6050進行通信,配置OV5640攝像頭、驅動OLED屏幕等等,都需要使用到IIC協議,所以掌握它是非常必要的,廢話不多說,接著往下看。
    的頭像 發表于 03-04 10:49 ?1289次閱讀
    <b class='flag-5'>FPGA</b>實現<b class='flag-5'>IIC</b>協議的設計

    GD32 MCU碰到IIC總線卡死怎么辦?

    大家在使用MCU IIC通信時,若碰到設備復位或者總線干擾等情況,可能會導致IIC總線卡死,表現上總線上SDA或者SCL其中一根線為低電平,IIC總線一直處于busy狀態。此時若代碼上一直等待總線空閑,則可能導致軟件死機,為解決
    的頭像 發表于 02-24 09:46 ?3881次閱讀
    GD32 MCU碰到<b class='flag-5'>IIC</b>總線卡死怎么辦?

    IIC總線為什么是半雙工?

    IIC(Inter-Integrated Circuit)總線是一種半雙工的串行通信接口。在I2C總線上,主設備和從設備之間的數據傳輸是采用半雙工模式進行的。這意味著主設備和從設備在不同的時間段內交替發送和接收數據。
    的頭像 發表于 02-02 16:37 ?4684次閱讀
    <b class='flag-5'>IIC</b>總線為什么是半雙工?

    IIC的GC模式是用來干啥的?

    有誰知道IIC的 GC模式是用來干啥的?MCU的 IIC從地址可以設置多個在實際應用中有啥意義?
    發表于 01-16 07:01

    【CW32學習筆記】IIC接口-主機發送

    接著就是比較重要的部分了,IIC接口的收發并不是全自動的,因為一個完整的通信不僅包括發數據(地址、數據什么的),還包含收數據(啥也不干也得接收ACK信號),所以IIC通信的每個部分基本上都是收發易位的過程,IIC外設并不會自動完
    的頭像 發表于 01-10 15:59 ?687次閱讀
    【CW32學習筆記】<b class='flag-5'>IIC</b>接口-主機發送

    IIC總線的FPGA實現說明

    DE2_TV中,有關于寄存器的配置的部分,采用的方法是通過IIC的功能,這里對IIC總線的FPGA實現做個說明。
    的頭像 發表于 01-05 10:16 ?1075次閱讀
    <b class='flag-5'>IIC</b>總線的<b class='flag-5'>FPGA</b>實現說明
    主站蜘蛛池模板: 洗濯屋H纯肉动漫在线观看| 久色乳综合思思在线视频| 亚洲精品国产字幕久久vr| 免费毛片a在线观看67194| 国产精品爽爽久久久久久竹菊| 在线中文高清资源免费观看| 四房播播开心五月| 男男肉肉互插腐文| 好湿好紧水多AAAAA片秀人网| voyeurhit农村夫妻偷拍| 野花日本完整版在线观看免费高清| 视频一区国产第一页| 女人精69xxxxx舒心| 久久精品无码人妻无码AV蜜臀| 国产精品免费视频播放| AV无码九九久久| 在线视频av大全色久久| 亚洲国产高清在线观看视频| 日本中文一区| 男女作爱在线播放免费网页版观看| 精品国产自在天天线2019| 国产成人精品综合在线| 爆乳啪啪无码成人二区亚洲欧美| 18日本人XXXXXX18| 在线中文字幕网站| 伊人久久影视| 亚洲精品一二三| 亚洲国产成人精品青青草原100| 受坐在攻腿上H道具PLAY| 日韩精品 电影一区 亚洲高清| 欧美大片免费| 欧美日韩888在线观看| 年轻的朋友4在线看中文字幕| 麻豆国产精品AV色拍综合| 久久久久久亚洲精品影院| 精品熟女少妇AV免费观看| 精品香蕉99久久久久网站| 黑人巨茎大战白人女40CMO| 国产曰批试看免费视频播放免费| 国产人妻精品午夜福利免费不卡| 国产精品第八页|