I2C問題積累

2021-07-22 04:23:23 字數 879 閱讀 9426

a.完全不能進行讀寫:

(1) 通訊協議不正確:有很多的i2c裝置,並不支援所有的i2c協議,同時也不是乙個比較標準的i2c裝置;軟體的通訊時序不正確。

(2)i2c裝置位址不正確:有很多的i2c裝置的位址是可以通過硬體設定的;也有器件資料提供的資料是錯誤的。

(3)i2c通訊線上沒有加上拉電阻:由於i2c的從裝置的sda,scl的pin是輸出開漏的,所以必須加上拉電阻,同時根據i2c裝置的數量上拉電阻的大小也會不同。從1k~10k以上,當然不能太大,也不能太小。

(4)i2c裝置損壞:有時我們會經常遇到問題時總是認為我們自己在軟體上是不是有問題,是不是電路上沒有焊接好,實際上都不是,而是器件是壞的。

b.讀寫失敗,不能正確的讀寫某個位址的資料:

(1)電路干擾:在i2c裝置的電源入口處沒有加濾波電路,一般入口處加10nf或 0.1uf電容;sda,scl線上干擾,沒有濾波處理,線上串一幾十ohm電阻,對地加幾十pf電容;千萬別小看這幾顆小小的電容!

(2)通訊時序:讀寫是有速度過快,例如在寫24c02時,當你用乙個位元組的方式去寫eeprom時,如果速度過快,前面的資料是不會被寫入的,具體的間隔時間沒有測試過;由於某種原因,導致讀寫間過長,例如在通訊過程中,被中斷打斷,同時中斷時間過長。

(3)sda,scl的輸入電平不一致:如果i2c裝置既有3.3v也有5v的,上拉電阻最好不要同時接3.3v和5v兩組,一定要根據實際情況選擇一組。

(4)讀寫軟體的方式的影響:在塊讀寫時,起始的位址和數量是很重要的。例如塊寫24c02,如果我們想連續寫a0頁05h~16h位址,我們會發現16h的資料是沒有被寫入,00h的資料被改了(如果沒有記錯的話24c02是16位元組迴圈的),原因是在連續讀寫的過程中,24c02的位址不是從05h自動的加1直到加到16h,而是05h->06h->...->15h->00h。

I2C讀寫問題

a.完全不能進行讀寫 1 通訊協議不正確 有很多的i2c裝置,並不支援所有的i2c協議,同時也不是乙個比較標準的i2c裝置 軟體的通訊時序不正確。2 i2c裝置位址不正確 有很多的i2c裝置的位址是可以通過硬體設定的 也有器件資料提供的資料是錯誤的。3 i2c通訊線上沒有加上拉電阻 由於i2c的從裝...

I2C常見問題總結

先看這裡 引用乙個資深硬體工程師的經驗總結 7種常見 i2c 問題總結.在進行i2c協議檢測時,必須要進行scl sda的波形抓取,以便於對i2c協議進行詳細的分析和問題查詢定位。防止scl sda兩根線交叉反掉,避免虛焊或者短路情況的出現。1 檢查原理圖和pcb板是否有上拉的4.7k電阻 2 因為...

i2c通訊的詳細講解 I2C匯流排簡介

本文介紹了內部積體電路 aka i2c 序列通訊協議的基本特性和突出優點。元件之間的通訊 通訊協議 毫無疑問,電子系統的共同特徵是需要在兩個或三個或十個單獨的元件之間共享資訊。工程師已經開發出許多標準協議,可以幫助不同的晶元成功通訊 當您在微控制器或數字訊號處理器的功能列表中 通訊 下面對縮略語時,...