中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > I2C總線設計注意事項

        I2C總線設計注意事項

        作者: 時間:2018-12-29 來源:網絡 收藏

          對于硬件工程師,I2C再熟悉不過了,兩根線,一根數據SDA一根時鐘SCL。當時在使用avr CPU設計數據采集器產品的CPU主板,外掛了Silicon lab的溫濕度傳感器Si7013,實時時鐘,主要實現溫濕度、時鐘及電流電壓等信號通過I2C總線到達CPU進行處理,并且由MCU EFM32WG290F64控制在液晶上和上位機界面上的CPU自帶的I2C總線外掛的六個I2C從設備,如下圖1所示。

        本文引用地址:http://www.antipu.com.cn/article/201812/396200.htm

          

          圖1:Avr的I2C接口電路圖

          最初時候,此CPU主板的I2C接口僅掛了實時時鐘和溫度芯片,采用CPU自帶的I2C接口。在調試時,波形都比較正常,上升沿和下降沿都能符合要求,通常跑的速率為100KHz。然而后期改版,需要在I2C接口上增加四個I2C設備,線路也相應地變長,在調試的時候,就發(fā)現CPU主板上電后,I2C工作異常,偶爾會讀不到任何信息。

          經過了長時間的查問題階段,發(fā)現通過I2C接口的SDA和SCL上拉電阻的大小與放置位置都是有講究的。通常I2C上拉電阻放在CPU引出的位置,若沒有外掛的I2C芯片就不需要加上拉電阻,這點在我們的CPU主板是沒有問題的。然后就是上拉電阻,這個通常講的就是與速率有關,我們將上拉電阻從4.7K,2.2K,1K甚至幾百歐姆都測試過,在1K和2.2K的情況下,上升沿和下降沿會比較陡一點。速率100KHZ下采用2.2K的上拉電阻測試出的I2C波形,如圖2所示。

          

          圖2:在100Khz下,采用2.2K的上拉電阻測試出的I2C波形

          最終測出的情況,在上拉電阻為4.7K的時候,速率在100KHZ,波形是正常的;在2.2K的時候,速率在100Khz的時候,波形也是正常;在1K的時候,速率為400Khz,波形也正常;在470歐姆的時候,速率為400KHZ,波形就會畸變。我們采用的上拉2.2K,速率為100KHZ的接口,仍出現CPU板電后I2C工作異常,讀不到任何異常信息。后發(fā)現是SDA被一直拉低了,SCL一直為高,I2C被死鎖了。

          為了解決這種問題,在網絡上找到一種采用IO模擬I2C的方式,調試了一周后,發(fā)現這個問題得到了解決。將I2C接口當做普通IO來操作可能是改動最小的一種方式。其實針對這個問題,還有一些辦法可以使用:

          1)盡量選用帶復位輸人的I2C從器件。

          2)將所有的從I2C設備的電源連接在一起,通過MOS管連接到主電源,而MOS管的導通關斷由I2C主設備來實現。

          3)在I2C從設備設計看門狗的功能。

          4)在I2C總線上增加一個額外的總線恢復設備,用來監(jiān)視I2C總線。當設備檢測到SDA信號被拉低超過指定時間時,就在SCL總線上產生9個時鐘脈沖,使I2C從設備完成讀操作,從死鎖狀態(tài)上恢復出來??偩€恢復設備需要有具有編程功能,一般可以用單片機或CPLD實現這一功能。

          由于avr CPU帶多個I2C從設備出現死鎖的問題,雖然能夠通過IO模擬解決問題,但是對于編程來說比較麻煩,IO模擬在高速上面效果并不好。后來更換了Silicon Labs的MCU,型號為EFM32WG290F64,做了一個最小系統(tǒng)板,外圍電路不變,I2C死鎖問題不再存在,有效地解決了我的I2C問題。采用EFM32WG290F64讀到的I2C波形如下:

          

          圖3:EFM32WG290F64讀到的I2C波形

          另外,設計中通過采用了多片溫濕度傳感器Si7013,精度也非常高,特別在高溫條件下,測試的濕度準確率也非常高。其實I2C接口在我們的設計中再常見不過,但在設計中還是要特別注意以下幾點,能夠充分考慮以下的要點,I2C設計就可以游刃有余。

          1)I2C線路的負載電容不能超過400pF;

          2)需要滿足上升沿和下降沿的時序關系;

          3)I2C上拉電阻和速率有著密切的聯系,需要選擇合理;

          4)如何判斷死鎖的情況,如上面所示,并提供了一系列的解決方案。



        關鍵詞: I2C總線

        評論


        相關推薦

        技術專區(qū)

        關閉