1. <dd id="q3npm"></dd>
    2. <dd id="q3npm"><noscript id="q3npm"></noscript></dd><rp id="q3npm"></rp>

      1. <li id="q3npm"><acronym id="q3npm"></acronym></li>
        新聞動態???News
        聯系我們???Contact
        你的位置:首頁 > 新聞動態 > 技術交流

        別被IIC總線給坑了!

        2023/12/12 18:03:39??????點擊:
              一、I2C通信理解

              很多小伙伴在進行IIC通信協議開發時,往往都比較迷茫。一方面是可能長時間沒怎么用了,相關的知識有所忘卻,也算正常。不過,如果重新圍著通信時序圖看來看去,那還是比較麻煩的,比如IIC的起始電平條件、停止電平條件、以及數據保持即更新條件等等:

              雖然每個器件對IIC通信的波形要求不是太相同,但IIC的通信時序容忍度非常高,基本上常規范圍的通信參數和驅動都是通用的。

              IIC數據的傳輸過程,在SCL通信同步時鐘節拍的控制下,主機發送數據主動使得總線電平發生變化,供從機檢測接收,而當從機接收到數據以后接著主動的拉低SDA來作為應答信號通知主機,如果沒有拉低則表示非應答。

              之前很多朋友都不太理解IIC的主機是怎么檢測到從機應答的,似乎從SDA線上的波形看都好像是主機發送出來的,所以在進行通信波形解析的時候一定要注意區分信號到底是主機還是從機在處理。

              二、IIC數據幀

              對于通信的應用,重要的并不是所謂的電平變化,當然也不是說不重要,畢竟有時候通信不穩定還得從原始波形進行分析,但大部分應用開發人員更多的是要了解如何傳遞數據幀,掌握好數據幀的傳遞過程和方式。

              不同廠商的數據幀稍微有所差異,比如7位地址、8位地址和10位地址,但總體上都是大同小異,大家可以參考對應的芯片手冊進行學習,這里以最常用的7地址位跟大家介紹一下:

              IIC是一種主從通信方式,通信發起者為主機,主要熟悉三種數據幀傳遞過程:

              1、單次或連續向從機寫數據

              注意如上僅僅只是數據幀傳遞,類似于我們平時的串口通信,而至于通信數據域內的數據含義,是由通信雙方共同約定即可,也就是所謂的應用層協議的制定了。

              2、單次或連續向從機讀數據

              讀數據的過程主機發送的讀寫標志位發生變化,在數據部分從機主動控制總線發送數據給主機,然后主機來進行應答,剛好與IIC寫數據相反。

              3、通訊過程讀寫切換

              在通信過程中需要進行讀寫切換時不需要發送停止,而是應答以后重新發一次起始和從機地址及讀寫狀態,接著進行下面的數據處理即可。

              三、IIC通信別忘了上拉

              對于IIC總線不要忘記通信IO上拉,上拉主要是保證信號線在空閑的狀態保持高電平,也就是邏輯1,。

              同時IIC總線采用的是一種開漏輸出的架構,通信線上的器件可以將線路的電平拉低,即邏輯0;但是無法主動將線路拉高到邏輯1,所以上拉必不可少。

              所以為了確保通信線上能夠提供足夠的驅動能力,同時也不能導致信號失真,上拉電阻阻值的選擇尤為重要。

              四、上拉電阻怎么選?

              上拉電阻該怎么選呢?那影響因素可就多了:

              1、通信的總線長度

              通常通信線路越長,電阻要稍微大一點。

              2、通信的總線材質

              如果總線提供的容性負載較高,要適當減小電阻,以加快信號的變化時間。

              3、通信的速率

              適當降低上拉電阻,提高驅動電流,加快電平反應速度。

              總之,具體情況就具體分析和折中去選擇上拉電阻了,最后就是注意電平上的匹配,避免損壞芯片~

        国产成人精品中国熟悉妇_男人插女人软件_国产在线观看A片视频_亚洲码国产精品高潮在线