eeprom 是一種掉電後資料不丟失的儲存器,常用來儲存一些配置資訊,以便系統重新上電的時候載入之。eepom 晶元最常用的通訊方式就是 i 2c 協議,本小節以 eeprom 的讀寫實驗為大家講解如何使用 stm32 軟體模擬產生 i 2c 協議進行通訊。
本實驗板中的 eeprom 晶元(型號:at24c02)的 scl 及 sda 引腳連線到了 stm32 的普通 gpio 引腳,結合上拉電阻,構成了 i2c 通訊匯流排,它們通過 i2c 匯流排互動。
eeprom 晶元的裝置位址一共有 7 位,其中高 4 位固定為:1010 b,低 3 位則由 a0/a1/a2 訊號線的電平決定,見圖 24-10,圖中的 r/w 是讀寫方向位,與位址無關。
按照我們此處的連線,a0/a1/a2 均為 0,所以 eeprom 的 7 位裝置位址是:101 0000b ,即 0x50。由於 i2c 通訊時常常是位址跟讀寫方向連在一起構成乙個 8 位數,且當 r/w 位為 0 時,表示寫方向,所以加上 7 位位址,其值為「0xa0」,常稱該值為 i2c 裝置的「寫位址」;當 r/w 位為 1 時,表示讀方向,加上 7 位位址,其值為「0xa1」,常稱該值為「讀位址」。 eeprom 晶元中還有乙個 wp 引腳,具有寫保護功能,當該引腳電平為高時,禁止寫入資料,當引腳為低電平時,可寫入資料,我們直接接地,不使用寫保護功能。關於 eeprom 的更多資訊,可參考其資料手冊《at24c02》來了解。若您使用的實驗板 eeprom 的型號、裝置位址或控制引腳不一樣,只需根據我們的工程修改即可,程式的控制原理相同。
I2C讀寫問題
a.完全不能進行讀寫 1 通訊協議不正確 有很多的i2c裝置,並不支援所有的i2c協議,同時也不是乙個比較標準的i2c裝置 軟體的通訊時序不正確。2 i2c裝置位址不正確 有很多的i2c裝置的位址是可以通過硬體設定的 也有器件資料提供的資料是錯誤的。3 i2c通訊線上沒有加上拉電阻 由於i2c的從裝...
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,當匯流排空閒時,兩根線都是高電平。常見的硬體結構圖 ...