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 的型號、設備地址或控制引腳不一樣,只需根據我們的工程修改即可,程序的控制原理相同。



