RM新时代网站-首页

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

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

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

I2C筆記分享

XL FPGA技術(shù)交流 ? 2024-08-13 18:19 ? 次閱讀

SCL:上升沿將數(shù)據(jù)輸入到每個(gè)EEPROM器件中;下降沿驅(qū)動(dòng)EEPROM器件輸出數(shù)據(jù)。(邊沿觸發(fā))

SDA:雙向數(shù)據(jù)線,為OD門,與其它任意數(shù)量的OD與OC門成"線與"關(guān)系。

一、協(xié)議

1.空閑狀態(tài) I2C總線總線的SDA和SCL兩條信號線同時(shí)處于高電平時(shí),規(guī)定為總線的空閑狀態(tài)。此時(shí)各個(gè)器件的輸出級場效應(yīng)管均處在截止?fàn)顟B(tài),即釋放總線, 由兩條信號線各自的上拉電阻把電平拉高。

2.起始位與停止位的定義:

起始信號:當(dāng)SCL為高期間,SDA由高到低的跳變;啟動(dòng)信號是一種電平跳變時(shí)序信號,而不是一個(gè)電平信號。

停止信號:當(dāng)SCL為高期間,SDA由低到高的跳變;停止信號也是一種電平跳變時(shí)序信號,而不是一個(gè)電平信號。

3.ACK

發(fā)送器每發(fā)送一個(gè)字節(jié),就在時(shí)鐘脈沖9期間釋放數(shù)據(jù)線,由接收器反饋一個(gè)應(yīng)答信號。應(yīng)答信號為低電平,表示接收器已經(jīng)成功地接收了該字節(jié);

應(yīng)答信號為高電平時(shí),規(guī)定為非應(yīng)答位(NACK),一般表示接收器接收該字節(jié)沒有成功。對于反饋有效應(yīng)答位ACK的要求是,接收器在第9個(gè)時(shí)鐘脈沖

之前的低電平期間將SDA線拉低,并且確保在該時(shí)鐘的高電平期間為穩(wěn)定的低電平。如果接收器是主控器,則在它收到最后一個(gè)字節(jié)后,發(fā)送一個(gè)NACK信號,

以通知被控發(fā)送器結(jié)束數(shù)據(jù)發(fā)送,并釋放SDA線,以便主控接收器發(fā)送一個(gè)停止信號P。

4.數(shù)據(jù)的有效性:

I2C總線進(jìn)行數(shù)據(jù)傳送時(shí),時(shí)鐘信號為高電平期間,數(shù)據(jù)線上的數(shù)據(jù)必須保持穩(wěn)定,只有在時(shí)鐘線上的信號為低電平期間,數(shù)據(jù)線上的高電平或低電平狀態(tài)才允許變化。

5.數(shù)據(jù)的傳送:

在I2C總線上傳送的每一位數(shù)據(jù)都有一個(gè)時(shí)鐘脈沖相對應(yīng)(或同步控制),即在SCL串行時(shí)鐘的配合下,在SDA上逐位地串行傳送每一位數(shù)據(jù)。數(shù)據(jù)位的傳輸是邊沿觸發(fā)。

一個(gè)字節(jié)的數(shù)據(jù)在發(fā)送過程中是先傳輸高位(MSB),再傳輸?shù)臀唬↙SB).

1.設(shè)備尋址

主設(shè)備發(fā)送起始位,這會(huì)通知總線上的所有設(shè)備傳輸開始了,接下來主機(jī)發(fā)送設(shè)備地址,與這一地址匹配的slave將會(huì)發(fā)送一個(gè)應(yīng)答,再強(qiáng)調(diào)一下,如果地址匹配,從機(jī)

會(huì)在設(shè)備地址發(fā)送后發(fā)送一個(gè)應(yīng)答,這樣主設(shè)備就尋址到了對就該設(shè)備地址的從設(shè)備。

2.延時(shí)處理

如果從機(jī)沒有準(zhǔn)備好,就會(huì)把SCL拉低。

主設(shè)備寫數(shù)據(jù)到從機(jī):(寫一個(gè)寄存器地址)

1、主設(shè)備發(fā)送起始位;

2、主設(shè)備發(fā)送8位的從機(jī)地址(其中最低位是讀寫控制位(0:寫,1:讀)此時(shí)是寫,高7位是從機(jī)地址位)

3、從機(jī)應(yīng)答

4、主設(shè)備發(fā)送8位的從機(jī)寄存器地址

5、從機(jī)應(yīng)答

6、主設(shè)備發(fā)送數(shù)據(jù)

7、從機(jī)應(yīng)答

8、發(fā)送停止位

注:(1)步驟6和步驟7可以重復(fù)。

(2)應(yīng)答信號是低電平

主設(shè)備讀取從機(jī)數(shù)據(jù):(一個(gè)寄存器地址)

1、主設(shè)備發(fā)送起始位;

2、主設(shè)備發(fā)送8位的從機(jī)地址(其中最低位是讀寫控制位(0:寫,1:讀),高7位是從機(jī)地址位),此時(shí)是寫

3、從機(jī)應(yīng)答

4、主設(shè)備發(fā)送8位的從機(jī)寄存器地址

5、從機(jī)應(yīng)答

6、主設(shè)備發(fā)送停止位

7、主設(shè)備發(fā)送起始位

8、主設(shè)備發(fā)送8位的從機(jī)地址(其中最低位是讀寫控制位(0:寫,1:讀),高7位是從機(jī)地址位),此時(shí)是讀

9、從機(jī)應(yīng)答

10、從機(jī)發(fā)送數(shù)據(jù)

11、主機(jī)應(yīng)答(NACK)

12、從機(jī)釋放總線,主機(jī)發(fā)送停止位。

主設(shè)備讀從機(jī)多個(gè)地址:

1、起始位

2、主設(shè)備發(fā)送從機(jī)地址寫

3、主設(shè)備發(fā)送從機(jī)寄存器地址1

4、主設(shè)備發(fā)送從機(jī)地址讀

5、讀數(shù)據(jù)1(注意:從步驟5到步驟6是沒停止)

6、起始位

7、主設(shè)備發(fā)送從機(jī)寄存器地址2

8、主設(shè)備發(fā)送從機(jī)地址讀

9、讀數(shù)據(jù)2

10、起始位

停止位

在I2C總線上傳輸?shù)臄?shù)據(jù)都是8bit位為單位的,所以當(dāng)主機(jī)要往從機(jī)寫數(shù)據(jù)時(shí)時(shí)序如下:

1、發(fā)送start信號
2、發(fā)送7位地址+1個(gè)讀寫位0(0表示寫,1表示讀)
3、從機(jī)收到地址后,發(fā)送ACK應(yīng)答信號
4、主機(jī)收到應(yīng)答信號后發(fā)送要寫的8位數(shù)據(jù)
5、若從機(jī)收到主機(jī)發(fā)送的數(shù)據(jù),發(fā)送ACK應(yīng)答信號
6、如果主機(jī)要繼續(xù)寫,那么回到步驟4,如果寫完了那么發(fā)送stop信號,終止通信

當(dāng)主機(jī)要從從機(jī)讀取數(shù)據(jù)時(shí)時(shí)序如下:

發(fā)送start信號

1、發(fā)送7位地址+1個(gè)讀寫位1(0表示寫,1表示讀)
2、從機(jī)收到地址后,發(fā)送ACK應(yīng)答信號
3、主機(jī)收到應(yīng)答信號后等待接收從機(jī)的數(shù)據(jù)
4、從機(jī)發(fā)送主機(jī)要讀取的數(shù)據(jù)
5、若主機(jī)收到從機(jī)發(fā)送的數(shù)據(jù),發(fā)送ACK應(yīng)答信號
6、如果主機(jī)要繼續(xù)讀,那么回到步驟4,如果讀完了那么發(fā)送stop信號,終止通信

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

    關(guān)注

    28

    文章

    1484

    瀏覽量

    123616
  • I2C總線
    +關(guān)注

    關(guān)注

    8

    文章

    390

    瀏覽量

    60916
收藏 人收藏

    評論

    相關(guān)推薦

    I2C總線學(xué)習(xí)筆記

    I2C在小P以前接觸的設(shè)計(jì)中大多只用到400k的速率,EVB的設(shè)計(jì)中更經(jīng)常發(fā)現(xiàn)實(shí)現(xiàn)不了就降速到100k?,F(xiàn)在突然再看看I2C,發(fā)現(xiàn)原來還有更高的速率規(guī)范,最高都已經(jīng)到5M了。
    的頭像 發(fā)表于 10-25 14:35 ?1866次閱讀
    <b class='flag-5'>I2C</b>總線學(xué)習(xí)<b class='flag-5'>筆記</b>

    i2c總線ppt(I2C總線器件應(yīng)用)

    I2C總線器件應(yīng)用第一節(jié) I2C總線器件應(yīng)用概述I2C總線工作原理I2C總線系統(tǒng)結(jié)構(gòu)I2C總線系統(tǒng)結(jié)構(gòu)如圖7-1所示。其中,SCL是時(shí)鐘線,
    發(fā)表于 08-13 17:34 ?0次下載

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

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

    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次下載

    什么是i2c總線

    什么是i2c總線  下載請點(diǎn)擊: i2c總線協(xié)議中文版 
    發(fā)表于 11-05 09:26 ?2919次閱讀

    i2c

    單片機(jī)i2c總線操作;單片機(jī)i2c總線操作;單片機(jī)i2c總線操作;
    發(fā)表于 05-17 11:09 ?35次下載

    基于I2C接口隔離的應(yīng)用筆記

    I2C總線是一種雙線制雙向總線,用于集成電路之間的低速/短速離通信。本應(yīng)用筆記簡要介紹了I2C總線集中于其物理層,討論了隔離I2C接口需要客服的挑戰(zhàn)。
    發(fā)表于 09-21 17:15 ?9次下載
    基于<b class='flag-5'>I2C</b>接口隔離的應(yīng)用<b class='flag-5'>筆記</b>

    I2C和SPI學(xué)習(xí)筆記

    I2C通信協(xié)議I2C通信原理I2C通信原理:I2C是一種半雙工通信方式,主要時(shí)鐘線SCL和數(shù)據(jù)線SDA構(gòu)成,速率一般為400Mbps總線信號有三種:開始信號;結(jié)束信號;應(yīng)答信號當(dāng)時(shí)鐘線
    發(fā)表于 12-22 19:20 ?1次下載
    <b class='flag-5'>I2C</b>和SPI學(xué)習(xí)<b class='flag-5'>筆記</b>

    硬件I2C與模擬I2C

    硬件I2C對應(yīng)芯片上的I2C外設(shè),有相應(yīng)I2C驅(qū)動(dòng)電路,其所使用的I2C管腳也是專用的,因而效率要遠(yuǎn)高于軟件模擬的I2C;一般也較為穩(wěn)定,但
    發(fā)表于 12-28 19:14 ?81次下載
    硬件<b class='flag-5'>I2C</b>與模擬<b class='flag-5'>I2C</b>

    ESP32 之 ESP-IDF 教學(xué)(六)——I2C數(shù)據(jù)總線(I2C

    ESP32 之 ESP-IDF 學(xué)習(xí)筆記(六)【I2C數(shù)據(jù)總線(I2C)】文章目錄ESP32 之 ESP-IDF 學(xué)習(xí)筆記(六)【
    發(fā)表于 12-28 19:25 ?22次下載
    ESP32 之 ESP-IDF 教學(xué)(六)——<b class='flag-5'>I2C</b>數(shù)據(jù)總線(<b class='flag-5'>I</b>2<b class='flag-5'>C</b>)

    ESP 12E I2c基卡的I2C IO卡設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《ESP 12E I2c基卡的I2C IO卡設(shè)計(jì).zip》資料免費(fèi)下載
    發(fā)表于 08-15 09:27 ?3次下載
    ESP 12E <b class='flag-5'>I2c</b>基卡的<b class='flag-5'>I2C</b> IO卡設(shè)計(jì)

    ESP32學(xué)習(xí)筆記I2C

    今天我們來玩兒I2C
    的頭像 發(fā)表于 07-14 14:56 ?2031次閱讀
    ESP32學(xué)習(xí)<b class='flag-5'>筆記</b>:<b class='flag-5'>I2C</b>

    I2C子系統(tǒng)SW Architecture

    I2C SW Architecture 【driver 驅(qū)動(dòng)層】由普通驅(qū)動(dòng)工程師負(fù)責(zé),【i2c 核心層】由 Linux 提供,【i2c 核心層】以下由芯片原廠負(fù)責(zé)。 I2C 子系統(tǒng)
    的頭像 發(fā)表于 07-22 16:01 ?945次閱讀
    <b class='flag-5'>I2C</b>子系統(tǒng)SW Architecture

    I2CI3C的區(qū)別有哪些

    I2CI3C 主要區(qū)別如下: I2C 雖然也是兩條線,但是很多時(shí)候傳感器需要一條額外的中斷線,來告訴主控?cái)?shù)據(jù)已經(jīng)準(zhǔn)備好。I3C 允許從設(shè)備直接在總線上產(chǎn)生中斷,不再需要一條額外的
    的頭像 發(fā)表于 07-22 16:20 ?6872次閱讀
    <b class='flag-5'>I2C</b>和<b class='flag-5'>I3C</b>的區(qū)別有哪些

    i2c采樣是上升沿嗎?

    i2c采樣是上升沿嗎?? I2C采樣是指在I2C總線上對數(shù)據(jù)進(jìn)行采樣。在I2C總線上,數(shù)據(jù)的傳輸是通過2條線傳遞。一條是時(shí)鐘線(SCL),另
    的頭像 發(fā)表于 09-19 17:16 ?2719次閱讀
    RM新时代网站-首页