日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

I2C總線的基本通信總結(jié)

開源嵌入式 ? 來源:開源嵌入式 ? 作者:神棍 ? 2021-08-26 14:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在電子設(shè)計(jì)開發(fā)中I2C大家已經(jīng)很熟悉了,每一種電子產(chǎn)品小到電子開關(guān),大到衛(wèi)星通信都會(huì)利用的I2C總線。據(jù)統(tǒng)計(jì)I2C在電子產(chǎn)品中占據(jù)了93%的份額,幾乎任何一種電路都要使用。

I2C是由PHILIPS公司在1980年開發(fā)的兩線式串行總線,至今已經(jīng)發(fā)展30多年的歷史了。古老的電子產(chǎn)品中就已經(jīng)在使用I2C總線了。I2C總線在所有總線中是最簡單,最穩(wěn)定的一種,由于發(fā)展歷史久遠(yuǎn),所以I2C總線出現(xiàn)了多種版本。但是萬變不離其中,有的廠商甚至在原有I2C總線的基礎(chǔ)上,自己改變了總線時(shí)序,成為獨(dú)有的I2C。但是基本原理不變。

我遇到過很多人在問我,自己的I2C程序明明已經(jīng)調(diào)試好,可換了個(gè)芯片就通信失敗了,不能讀取數(shù)據(jù)了。都是I2C的元器件,只是芯片廠家不同。在這里我告訴大家,這總線歷史悠久,各種版本的要有幾十種甚至幾百種了,所有版本的通信格式,協(xié)議都一樣,只是時(shí)間不同了,因?yàn)橛械男酒瑥S家更改了時(shí)序中的時(shí)鐘周期。所以大家遇到這種問題,只需調(diào)整延時(shí),其余不動(dòng)即可,不必不知所措,亂找問題。

415246ba-eb9c-11eb-a97a-12bb97331649.jpg

I2C總線從機(jī)設(shè)備最多支持127個(gè),主要是通過串行數(shù)據(jù)(SDA)線和串行時(shí)鐘 (SCL)線在連接到總線的器件間傳遞信息。每個(gè)器件都有一個(gè)唯一的地址。

I2C總線有三種數(shù)據(jù)傳輸速度:標(biāo)準(zhǔn),快速模式和高速模式。標(biāo)準(zhǔn)的是100Kbps,快速模式為400Kbps,高速模式支持快至3.4Mbps的速度。所有的與次之傳輸速度的模式都是兼容的。I2C總線支持7位和10位地址空間設(shè)備和在不同電壓下運(yùn)行的設(shè)備。

TTL電平與COMS在I2C這里通用。是相互兼容的。

由于I2C的模式多種多樣,我就給大家講一種常用的7位尋址模式的通信,還有10位模式,大家可以自行找資料去了解,這種10位模式的較少。

總線通信流程大概分為四部分。1.啟動(dòng)—2.數(shù)據(jù)傳輸—3.應(yīng)答—4.結(jié)束。

啟動(dòng)與結(jié)束:

SCL 線是高電平時(shí),SDA 線從高電平向低電平切換,這個(gè)情況表示起始條件;

SCL 線是高電平時(shí),SDA 線由低電平向高電平切換,這個(gè)情況表示停止條件。

數(shù)據(jù)傳輸:

發(fā)送到SDA 線上的每個(gè)字節(jié)必須為8 位,每次傳輸可以發(fā)送的字節(jié)數(shù)量不受限制。每個(gè)字節(jié)后必須跟一個(gè)響應(yīng)位。首先傳輸?shù)氖菙?shù)據(jù)的最高位(MSB),如果從機(jī)要完成一些其他功能后(例如一個(gè)內(nèi)部中斷服務(wù)程序)才能接收或發(fā)送下一個(gè)完整的數(shù)據(jù)字節(jié),可以使時(shí)鐘線SCL 保持低電平,迫使主機(jī)進(jìn)入等待狀態(tài),當(dāng)從機(jī)準(zhǔn)備好接收下一個(gè)數(shù)據(jù)字節(jié)并釋放時(shí)鐘線SCL 后數(shù)據(jù)傳輸繼續(xù)。

數(shù)據(jù)應(yīng)答:

數(shù)據(jù)傳輸必須帶響應(yīng),相關(guān)的響應(yīng)時(shí)鐘脈沖由主機(jī)產(chǎn)生。在響應(yīng)的時(shí)鐘脈沖期間發(fā)送器釋放SDA 線(高)。

在響應(yīng)的時(shí)鐘脈沖期間,接收器必須將SDA 線拉低,使它在這個(gè)時(shí)鐘脈沖的高電平期間保持穩(wěn)定的低電平。

以上是基本的通信流程,當(dāng)然這通信是離不開時(shí)鐘線的SCL。

時(shí)鐘同步:

所有主機(jī)在SCL線上產(chǎn)生它們自己的時(shí)鐘來傳輸I2C總線上的報(bào)文。數(shù)據(jù)只在時(shí)鐘的高電平周期有效,因此需要一個(gè)確定的時(shí)鐘進(jìn)行逐位仲裁。

時(shí)鐘同步通過線與連接I2C 接口到SCL 線來執(zhí)行。這就是說SCL 線的高到低切換會(huì)使器件開始數(shù)它們的低電平周期,而且一旦器件的時(shí)鐘變低電平,它會(huì)使SCL 線保持這種狀態(tài)直到到達(dá)時(shí)鐘的高電平。但是如果另一個(gè)時(shí)鐘仍處于低電平周期,這個(gè)時(shí)鐘的低到高切換不會(huì)改變SCL 線的狀態(tài)。因此SCL 線被有最長低電平周期的器件保持低電平。此時(shí)低電平周期短的器件會(huì)進(jìn)入高電平的等待狀態(tài)。當(dāng)所有有關(guān)的器件數(shù)完了它們的低電平周期后,時(shí)鐘線被釋放并變成高電平。之后,器件時(shí)鐘和SCL線的狀態(tài)沒有差別,而且所有器件會(huì)開始數(shù)它們的高電平周期。首先完成高電平周期的器件會(huì)再次將SCL線拉低。

這樣產(chǎn)生的同步SCL 時(shí)鐘的低電平周期由低電平時(shí)鐘周期最長的器件決定,而高電平周期由高電平時(shí)鐘周期最短的器件決定。

7位尋址方式:

第一個(gè)字節(jié)的頭7 位組成了從機(jī)地址,最低位(LSB)是第8 位,它決定了傳輸?shù)姆较?。第一個(gè)字節(jié)的最低位是“0”,表示主機(jī)會(huì)寫信息到被選中的從機(jī);“1”表示主機(jī)會(huì)向從機(jī)讀信息,當(dāng)發(fā)送了一個(gè)地址后,系統(tǒng)中的每個(gè)器件都在起始條件后將頭7 位與它自己的地址比較,如果一樣,器件會(huì)判定它被主機(jī)尋址,至于是從機(jī)接收器還是從機(jī)發(fā)送器,都由R/W 位決定的。

下面是I2C的時(shí)序圖與對(duì)應(yīng)程序,程序已經(jīng)調(diào)試通過,大家可以使用,但是大家記住一點(diǎn),不同廠家芯片時(shí)鐘周期會(huì)不同。本人以51單片機(jī),keil4開發(fā)環(huán)境,12M晶振調(diào)試通過。從機(jī)芯片是AT24C08芯片。

起始與停止總線:

41b80270-eb9c-11eb-a97a-12bb97331649.jpg

I2C總線程序起始與停止:

41c5df76-eb9c-11eb-a97a-12bb97331649.png

I2C讀寫時(shí)序:

420a2b04-eb9c-11eb-a97a-12bb97331649.jpg

I2C讀寫單個(gè)字節(jié):

425027c6-eb9c-11eb-a97a-12bb97331649.png

42873054-eb9c-11eb-a97a-12bb97331649.png

I2C應(yīng)答與非應(yīng)答時(shí)序:

429ddf5c-eb9c-11eb-a97a-12bb97331649.jpg

I2C多字節(jié)連續(xù)讀寫時(shí)序:

42e6f12e-eb9c-11eb-a97a-12bb97331649.jpg

以上程序調(diào)試通過,直接使用即可。但根據(jù)不同廠家的芯片可能時(shí)序會(huì)有不同,如遇通信不正常,可改變延時(shí)?;窘o大家把I2C的基本通信總結(jié)了一下。由于I2C種類版本繁多,但基本原理相同,這里不一一舉例。

責(zé)任編輯:haq

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

    關(guān)注

    173

    文章

    6088

    瀏覽量

    178934
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1563

    瀏覽量

    131787
  • 電子設(shè)計(jì)
    +關(guān)注

    關(guān)注

    42

    文章

    2992

    瀏覽量

    49927

原文標(biāo)題:看懂了這篇文章你將會(huì)操作所有的IIC器件?。?!

文章出處:【微信號(hào):KY_QRS,微信公眾號(hào):開源嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    SGM4541 I2C總線過壓保護(hù)器:設(shè)計(jì)與應(yīng)用的詳細(xì)解析

    SGM4541 I2C總線過壓保護(hù)器:設(shè)計(jì)與應(yīng)用的詳細(xì)解析 在如今的電子設(shè)備設(shè)計(jì)中,保護(hù)電路免受過電壓的損害是至關(guān)重要的。SG Micro Corp推出的SGM4541 I2C總線過壓
    的頭像 發(fā)表于 03-17 16:30 ?415次閱讀

    SGM4541A:I2C總線過壓保護(hù)的理想之選

    SGM4541A:I2C總線過壓保護(hù)的理想之選 在電子設(shè)備的設(shè)計(jì)中,I2C總線的穩(wěn)定運(yùn)行至關(guān)重要。而SGM4541A作為一款低IQ I2C
    的頭像 發(fā)表于 03-17 16:30 ?230次閱讀

    I2C總線-通信線纜長度的影響及改進(jìn)措施

    I2C總線確實(shí)不適合遠(yuǎn)距離通信,尤其是需要使用線纜與I2C接口器件進(jìn)行通信,這里的“不適合”并不是說不可以,這也是本文的重點(diǎn)。一般使用
    發(fā)表于 01-21 06:03

    I2C 為什么只要兩根線就能搞定通信?

    到目前為止,我們已經(jīng)討論了SPI通信和UART通信的基礎(chǔ)知識(shí),現(xiàn)在讓我們討論本系列的最后一個(gè)協(xié)議,即集成電路間協(xié)議(I2C)。如果您曾經(jīng)構(gòu)建過使用OLED顯示器、氣壓傳感器或陀螺儀/加速度計(jì)模塊
    的頭像 發(fā)表于 01-04 09:14 ?2100次閱讀
    <b class='flag-5'>I2C</b> 為什么只要兩根線就能搞定<b class='flag-5'>通信</b>?

    探索PCF8584:I2C總線控制器的卓越之選

    探索PCF8584:I2C總線控制器的卓越之選 在電子工程師的日常工作中,選擇合適的芯片來實(shí)現(xiàn)特定功能至關(guān)重要。今天,我們就來深入探討一款功能強(qiáng)大的I2C總線控制器——PCF8584,
    的頭像 發(fā)表于 12-28 15:40 ?790次閱讀

    P82B715:I2C總線擴(kuò)展的得力助手

    P82B715:I2C總線擴(kuò)展的得力助手 在電子設(shè)計(jì)領(lǐng)域,I2C總線是一種常用的通信協(xié)議,但它的總線
    的頭像 發(fā)表于 12-26 10:20 ?1708次閱讀

    基于FPGA的I2C控制模塊設(shè)計(jì)

    I2C_WRITE_WDATA.v模塊實(shí)現(xiàn)I2C寫時(shí)序,I2C_Controller (I2C控制器)例化了I2C_WRITE_WDATA.
    的頭像 發(fā)表于 12-26 09:48 ?6143次閱讀
    基于FPGA的<b class='flag-5'>I2C</b>控制模塊設(shè)計(jì)

    TCA39306雙向I2C總線和SMBus電壓電平轉(zhuǎn)換器技術(shù)解析

    TCA39306雙向I2C總線和SMBus電壓電平轉(zhuǎn)換器技術(shù)解析 在電子設(shè)計(jì)領(lǐng)域,電壓電平轉(zhuǎn)換是一個(gè)常見且關(guān)鍵的問題,特別是在涉及不同電壓標(biāo)準(zhǔn)的總線通信時(shí)。TCA39306作為一款雙路
    的頭像 發(fā)表于 12-17 10:00 ?554次閱讀

    I2C總線協(xié)議

    I2C 總線使用兩根信號(hào)線(數(shù)據(jù)線 SDA 和時(shí)鐘線 SCL)在設(shè)備間傳輸數(shù)據(jù)。SCL 為單向時(shí)鐘線,固定由主機(jī)驅(qū)動(dòng)。SDA 為雙向數(shù)據(jù)線,在數(shù)據(jù)傳輸過程中由收發(fā)兩端分時(shí)驅(qū)動(dòng)。 I2C 總線
    發(fā)表于 12-15 08:07

    如何在CW32 MCU上優(yōu)化I2C通信

    高頻率下也能穩(wěn)定傳輸數(shù)據(jù),避免數(shù)據(jù)丟失或錯(cuò)誤。 解決I2C通信中的常見問題: 介紹在I2C通信過程中常見的問題,如總線沖突、數(shù)據(jù)競爭和AC
    發(fā)表于 11-27 06:25

    深入剖析I2C協(xié)議

    I2C是由Philips開發(fā)的簡單的雙向兩線總線,在深入淺出理解SPI協(xié)議中,我們區(qū)分了單工,半雙工,全雙工協(xié)議數(shù)據(jù)流向的區(qū)別,根據(jù)特征,I2C協(xié)議屬于半雙工協(xié)議(即同一時(shí)刻,數(shù)據(jù)單向流動(dòng))。此外
    的頭像 發(fā)表于 08-21 15:10 ?3958次閱讀
    深入剖析<b class='flag-5'>I2C</b>協(xié)議

    I2C通信異常問題怎么解決?

    我們?cè)谶M(jìn)行I2C通信,發(fā)現(xiàn)當(dāng)寫數(shù)據(jù)時(shí)SCL和SDA會(huì)有下降沿重合的情況,導(dǎo)致通信失敗,請(qǐng)幫忙分析下如何處理? I2C通信代碼如下: sta
    發(fā)表于 08-12 07:45

    I2C總線通信,為什么要進(jìn)行電氣隔離?

    I2C總線采用雙向二線制,支持多主機(jī)多從機(jī)通信,具備高可靠性、抗干擾能力強(qiáng),廣泛應(yīng)用于嵌入式系統(tǒng)中。
    的頭像 發(fā)表于 08-11 11:04 ?2700次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>總線</b><b class='flag-5'>通信</b>,為什么要進(jìn)行電氣隔離?

    第十八章 I2C通信測試

    本章介紹了I2C協(xié)議,其物理層用SDA和SCL雙線,支持多設(shè)備:協(xié)議層含起始/停止信號(hào)、應(yīng)答機(jī)制等。還講解W55MH32的I2C外設(shè)及初始化,并進(jìn)行了通信測試代碼的分析。
    的頭像 發(fā)表于 06-19 17:07 ?1506次閱讀
    第十八章 <b class='flag-5'>I2C</b><b class='flag-5'>通信</b>測試

    【技術(shù)說明】數(shù)字輸出壓力傳感器的I2C通信

    介紹I2C總線是一個(gè)簡單的,串行8位面向計(jì)算機(jī)總線有效的I2C(集成電路間)控制。It提供了良好的支持不同電路板距離之間的通信,例如與各種低
    的頭像 發(fā)表于 06-19 11:02 ?1985次閱讀
    【技術(shù)說明】數(shù)字輸出壓力傳感器的<b class='flag-5'>I2C</b><b class='flag-5'>通信</b>
    喀什市| 张掖市| 高唐县| 南部县| 天长市| 华安县| 通江县| 平利县| 堆龙德庆县| 宁安市| 怀柔区| 苏尼特右旗| 南阳市| 香格里拉县| 普兰县| 华容县| 班玛县| 贺兰县| 曲周县| 巴里| 宜君县| 江源县| 那坡县| 克什克腾旗| 延津县| 枣强县| 东海县| 麻阳| 湘潭市| 成安县| 襄城县| 颍上县| 麦盖提县| 牟定县| 卢湾区| 丹东市| 仲巴县| 南漳县| 鄂温| 东明县| 石渠县|