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時,如果速度過快,前面的資料是不會被寫入》15h->00h。
此文謹獻給初級的軟硬體工程師,希望在設計使用i2c裝置時少走彎路,希望大家補充
I2C讀寫EEPROM EEPROM簡介
eeprom 是一種掉電後資料不丟失的儲存器,常用來儲存一些配置資訊,以便系統重新上電的時候載入之。eepom 晶元最常用的通訊方式就是 i 2c 協議,本小節以 eeprom 的讀寫實驗為大家講解如何使用 stm32 軟體模擬產生 i 2c 協議進行通訊。本實驗板中的 eeprom 晶元 型號 a...
I2C驅動(2) 讀寫eeprom
include include include include include include include include include static unsigned short ignore static unsigned short normal addr 位址值是7位 改為0x60的話...
i2c連續讀寫間隔 I2C匯流排協議分析
i2c匯流排是由philips公司開發的一種簡單 雙向二線制同步序列匯流排。它只需要兩根線即可在連線於匯流排上的裝置之間通訊。i2c的兩根線sda 序列資料線 和scl 序列時鐘線 都是雙向i o線,介面電路為開漏輸出,需通過上拉電阻接電源vcc,當匯流排空閒時,兩根線都是高電平。常見的硬體結構圖 ...