EEPROM可以掉電保存數(shù)據(jù),是一種在產(chǎn)品中經(jīng)常使用的器件,24Cxx 系列更是被廣泛采用。下面是的工程在 24LC02 上調(diào)試通過(guò),實(shí)現(xiàn)了字節(jié)讀寫,和頁(yè)讀寫,MCU 是 STM32F030。采用了 MCU 的硬件 I2C 控制器。
24LC02硬件連接:A2,A1,A0 接 GND, 地址為 A0。WP 接 GND,允許寫入。24LC02 Page size 是 8 Bytes, 一共 256 個(gè)字節(jié)大小。如果要移植代碼到其它芯片,需要注意 Page size 和頁(yè)地址的不同。
網(wǎng)上有很多抱怨使用硬件 I2C 控制器不穩(wěn)定,采用 GPIO 模擬 I2C 時(shí)序的同學(xué)。我們還是不推薦用模擬的方法,它會(huì)耗費(fèi)比較多的MCU 系統(tǒng)時(shí)間。硬件 I2C 其實(shí)也是可以穩(wěn)定運(yùn)行的,需要注意以下幾點(diǎn):
1. 看一下芯片勘誤表 Errata,有沒(méi)有已知 Bug。
2. I2C 操作中途被打斷,或受到脈沖干擾,SCL, SDA 可能被拉低鎖死。嘗試用 SCL 產(chǎn)生 9 個(gè)時(shí)鐘脈沖讓從器件或主控制器釋放總線。這種方法可以解決掉絕大部分問(wèn)題。這里需要注意,拉低總線的并不一定是從器件,有客戶在總線鎖死后,把 SCL SDA 線割斷后發(fā)現(xiàn)這兩根線任然是拉低的 (主控制器模塊因?yàn)闀r(shí)序問(wèn)題進(jìn)入死鎖)。
3. 總線上加具有總線恢復(fù)功能的緩沖器,如 LTC4307。
4. 選用帶復(fù)位輸人的 I2C 從器件。
5. 控制 I2C 從設(shè)備的電源,死鎖后重新上電。
采用哪些方法,還是要綜合考慮可靠性要求和成本。
下面是實(shí)測(cè)的 24C02 讀寫時(shí)序
審核編輯:劉清
-
緩沖器
+關(guān)注
關(guān)注
6文章
2168瀏覽量
48193 -
EEPROM
+關(guān)注
關(guān)注
9文章
1103瀏覽量
85021 -
I2C
+關(guān)注
關(guān)注
28文章
1543瀏覽量
129782 -
STM32F030
+關(guān)注
關(guān)注
1文章
33瀏覽量
7293
發(fā)布評(píng)論請(qǐng)先 登錄
PIC單片機(jī)的I2C 24LC02 C讀寫程序
STM32F030數(shù)據(jù)手冊(cè)
STM32F030的定時(shí)器PWM使用設(shè)置與ADC的dma代碼
STM32F030之IAP代碼編寫

PIC16F877利用I2C讀取24LC02測(cè)試程序免費(fèi)下載

STM32F030新建工程模板資料免費(fèi)下載

STM32F030系列微控制器的數(shù)據(jù)手冊(cè)免費(fèi)下載

如何建一個(gè)STM32F030工程模板(標(biāo)準(zhǔn)庫(kù)版)

STM32F030在低溫下無(wú)法啟動(dòng)

評(píng)論