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

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

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

如何更好地去掌握I2C通信?

FPGA之家 ? 來源:最后一個bug ? 作者:bug菌 ? 2021-06-26 10:13 ? 次閱讀

1

I2C通信理解

很多朋友在進(jìn)行IIC通信協(xié)議開發(fā)的時候比較迷茫,可能長時間沒有用了,就有所忘卻,也算正常,不過如果重新圍著通信時序圖看來看去,那還是比較麻煩的,比如IIC的起始電平條件、停止電平條件、以及數(shù)據(jù)保持即更新條件等等:

pYYBAGDWjiqAS32cAACEH8DUvpI273.jpg

雖然每個器件對IIC通信的波形要求不是太相同,但I(xiàn)IC的通信時序容忍度非常高,基本上相關(guān)參數(shù)和驅(qū)動都是通用的。 IIC數(shù)據(jù)的傳輸過程,在SCL通信同步時鐘節(jié)拍的控制下,主機(jī)發(fā)送數(shù)據(jù)主動使得總線電平發(fā)生變化,供從機(jī)檢測接收,而當(dāng)從機(jī)接收到數(shù)據(jù)以后接著主動的拉低SDA來作為應(yīng)答信號通知主機(jī),如果沒有拉低則表示非應(yīng)答。

之前很多朋友都不太理解IIC的主機(jī)是怎么檢測到從機(jī)應(yīng)答的,似乎從SDA線上的波形看都好像是主機(jī)發(fā)送出來的,所以在進(jìn)行通信波形解析的時候注意一下。

2

IIC數(shù)據(jù)幀

對于通信的應(yīng)用,重要的并不是所謂的電平變化,而更多的是要了解如何傳遞數(shù)據(jù)幀,掌握好數(shù)據(jù)幀的傳遞過程和方式。

而不同廠商的數(shù)據(jù)幀稍微有所差異,比如7位地址、8位地址和10位地址,但總體上大同小異,大家可以參考對應(yīng)的芯片手冊進(jìn)行學(xué)習(xí),這里以最常用的7地址位跟大家介紹:

IIC是一種主從通信方式,通信發(fā)起者為主機(jī),主要熟悉三種數(shù)據(jù)幀傳遞過程:

1、單次或連續(xù)向從機(jī)寫數(shù)據(jù)

poYBAGDWjjGAb8TFAACepW_ZgAI156.jpg

至于通信數(shù)據(jù)域內(nèi)的數(shù)據(jù)含義,由通信雙方共同約定即可,也就是協(xié)議的制定。

2、單次或連續(xù)向從機(jī)讀數(shù)據(jù)

pYYBAGDWjjiAfe1cAACfPqtDGa8051.jpg

讀數(shù)據(jù)的過程主機(jī)發(fā)送的讀寫標(biāo)志位發(fā)生變化,在數(shù)據(jù)部分從機(jī)主動控制總線發(fā)送數(shù)據(jù)給主機(jī),然后主機(jī)來進(jìn)行應(yīng)答,剛好與IIC寫數(shù)據(jù)相反。

3、通訊過程讀寫切換

poYBAGDWjj6ASQCPAADART5ualo608.jpg

在通信過程中需要進(jìn)行讀寫切換時不需要發(fā)送停止,而是應(yīng)答以后重新發(fā)一次起始和從機(jī)地址及讀寫狀態(tài),接著進(jìn)行下面的數(shù)據(jù)處理即可。

最后再啰嗦一下 : 對于IIC總線不要忘記通信IO上拉,同時注意電平上的匹配,不然可能會損壞芯片~

責(zé)任編輯:lq6

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

    關(guān)注

    0

    文章

    22

    瀏覽量

    8788

原文標(biāo)題:玩轉(zhuǎn)I2C通信把握好這兩點~

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    RISC V的I2C操作

    ?雙向IO,需設(shè)置為弱上拉。I2C對應(yīng)的三態(tài)門的OE信號:需要賦值為I2C SDA/SCL的write信號;rtl中的表述如下:主要原因在于:i2c通信過程中,當(dāng)總線空閑時,兩根線均
    的頭像 發(fā)表于 11-01 11:06 ?90次閱讀

    了解I2C總線

    電子發(fā)燒友網(wǎng)站提供《了解I2C總線.pdf》資料免費下載
    發(fā)表于 10-08 11:13 ?1次下載
    了解<b class='flag-5'>I2C</b>總線

    I2C基本指南

    電子發(fā)燒友網(wǎng)站提供《I2C基本指南.pdf》資料免費下載
    發(fā)表于 09-10 09:40 ?0次下載
    <b class='flag-5'>I2C</b>基本指南

    簡單認(rèn)識I2C通信協(xié)議

    I2C(Inter-Integrated Circuit)通信協(xié)議是由飛利浦公司(現(xiàn)為恩智浦半導(dǎo)體)開發(fā)的一種簡單、雙向二線制同步串行總線協(xié)議。自1982年發(fā)布以來,I2C協(xié)議因其高效、靈活和易于實現(xiàn)的特點,在電子設(shè)備間的數(shù)據(jù)交
    的頭像 發(fā)表于 07-25 18:06 ?1231次閱讀

    SPI和I2C通信協(xié)議:應(yīng)用與區(qū)別

    本文深入解析了SPI和I2C這兩種通信協(xié)議的特點、工作原理和應(yīng)用場景。SPI適用于高速數(shù)據(jù)傳輸,常用于存儲器芯片和顯示器驅(qū)動等領(lǐng)域;I2C適用于低速控制和傳感器數(shù)據(jù)傳輸,常用于溫度傳感器和ADC
    的頭像 發(fā)表于 04-22 16:45 ?1556次閱讀

    逼真動畫展示I2C、SPI、UART的通信過程

    到目前為止,I2C、SPI和UART等仍然是電子嵌入式設(shè)備中最常用的通信協(xié)議,本文,我們將剖析這三種協(xié)議,讓大家清楚、直觀的了解它們的功能、優(yōu)點和局限性,并輔以GIF動圖展示。I2C協(xié)議I2C
    的頭像 發(fā)表于 04-12 08:27 ?883次閱讀
    逼真動畫展示<b class='flag-5'>I2C</b>、SPI、UART的<b class='flag-5'>通信</b>過程

    什么是I2C協(xié)議 I2C總線的控制邏輯

    在實際使用過程中,I2C比較容易出現(xiàn)的一個問題就是死鎖 ,死鎖在I2C中主要表現(xiàn)為:I2C死鎖時表現(xiàn)為SCL為高,SDA一直為低。
    發(fā)表于 03-12 09:17 ?873次閱讀
    什么是<b class='flag-5'>I2C</b>協(xié)議 <b class='flag-5'>I2C</b>總線的控制邏輯

    GD32 MCU硬件I2C不可靠不如軟件I2C?來看看紅楓派開發(fā)版的硬件I2C驅(qū)動如何做到穩(wěn)得一批

    在一個評論中,看到網(wǎng)友對硬件I2C的討論,硬件I2C Busy找不到原因、軟件I2C穩(wěn)得一批。
    的頭像 發(fā)表于 02-23 09:37 ?2551次閱讀
    GD32 MCU硬件<b class='flag-5'>I2C</b>不可靠不如軟件<b class='flag-5'>I2C</b>?來看看紅楓派開發(fā)版的硬件<b class='flag-5'>I2C</b>驅(qū)動如何做到穩(wěn)得一批

    什么是I2C接口?什么是I3C接口?I2CI3C的區(qū)別

    I2C接口是一種串行通信協(xié)議,全稱為Inter-Integrated Circuit,即集成電路間總線。它是一種雙向、兩線制(SCL和SDA)的串行通信接口,主要用于連接微控制器和其他外圍設(shè)備,如傳感器、存儲器、顯示器等。
    的頭像 發(fā)表于 02-17 14:39 ?5196次閱讀
    什么是<b class='flag-5'>I2C</b>接口?什么是<b class='flag-5'>I3C</b>接口?<b class='flag-5'>I2C</b>與<b class='flag-5'>I3C</b>的區(qū)別

    藍(lán)牙串口通訊總線——I2C/SPI/UART

    嵌入式工程師在做串口通信調(diào)試工作的時候,會經(jīng)常用到I2C、SPI、UART這3條總線,I2C、SPI、UART這三種通信總線在嵌入式領(lǐng)域很常見,目前主流的SOC芯片都內(nèi)置了這三種總線的
    的頭像 發(fā)表于 01-22 09:41 ?1383次閱讀
    藍(lán)牙串口通訊總線——<b class='flag-5'>I2C</b>/SPI/UART

    i2c接口和spi接口區(qū)別

    I2C(Inter-Integrated Circuit)和SPI(Serial Peripheral Interface)都是用于設(shè)備間通信的串行接口標(biāo)準(zhǔn)。它們在很多方面有著相似之處,但也有一些
    的頭像 發(fā)表于 12-25 15:02 ?3644次閱讀

    i2c工作原理及使用方法

    I2C(Inter-Integrated Circuit)是一種串行通信協(xié)議,用于在集成電路(IC)之間傳輸數(shù)據(jù)。它由Philips公司(今天的NXP半導(dǎo)體)于1982年開發(fā),現(xiàn)在已經(jīng)成為一種通用
    的頭像 發(fā)表于 12-19 16:17 ?1160次閱讀

    I2C通信序列的典型特征

     通信I2C總線空閑開始,時鐘和數(shù)據(jù)線都不被驅(qū)動,因此被上拉電阻拉高。然后,主機(jī)(啟動通信的器件)啟動通信,首先拉低SDA線,然后拉低SCL線,這被定義為起始條件。
    發(fā)表于 11-27 15:32 ?483次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>通信</b>序列的典型特征

    I2C地址跳變問題的調(diào)試案例

    引言:I2C作為使用最為廣泛的通訊接口,調(diào)試各類I2C器件,大家應(yīng)該都很輕車熟路。一般對于外掛電阻配置器件的I2C地址,例如電阻上拉之后,器件的地址就會固定下來不再變動,但是今天給大家分享一個自己的調(diào)試案例,即
    的頭像 發(fā)表于 11-22 10:51 ?1448次閱讀
    <b class='flag-5'>I2C</b>地址跳變問題的調(diào)試案例

    I2C總線信號與測試案例(一)

    I2C bus是Inter-IC bus的縮寫,意思是IC器件之間的通訊總線;I2C 總線的特點如下
    的頭像 發(fā)表于 11-20 15:45 ?1797次閱讀
    <b class='flag-5'>I2C</b>總線信號與測試案例(一)