ADI AN-1009應(yīng)用筆記:ADM106x EEPROM的讀寫(xiě)操作
本應(yīng)用筆記說(shuō)明如何對(duì)ADM106x EEPROM空間的單一頁(yè)面(32字節(jié))進(jìn)行塊擦除、塊寫(xiě)入和塊讀取。本文中為便于說(shuō)明,假設(shè)需擦除、寫(xiě)入和讀取的EEPROM范圍為0xF8;0x00至0xF8; 0x1F。
0xF8; 0x00至0xF8; 0x1F EEPROM空間的塊擦除
欲對(duì)EEPROM空間進(jìn)行塊擦除,請(qǐng)執(zhí)行下列步驟。
1. 將0x05寫(xiě)入寄存器0x90,使能EEPROM塊擦除。
2. 執(zhí)行下面列出的所有SMBus操作。
? 發(fā)送從機(jī)地址WRITE
? 接收應(yīng)答消息
? 發(fā)送EEPROM高位地址(0xF8)
? 接收應(yīng)答消息
? 發(fā)送EEPROM低位地址(0x00)
? 接收應(yīng)答消息
? 發(fā)送STOP
? 發(fā)送從機(jī)地址WRITE
? 接收應(yīng)答消息
? 發(fā)送頁(yè)擦除命令代碼(0xFE)
? 接收應(yīng)答消息
? 發(fā)送STOP
3. 對(duì)于要擦除的EEPROM每一頁(yè),重復(fù)執(zhí)行第2步中的程序。但是,低位地址(發(fā)送EEPROM低位地址)應(yīng)遞增32字節(jié),例如:0x20、0x40、0x60、0x80、0xA0、0xC0和0xE0。
4. 將0x01寫(xiě)入寄存器0x90,禁用EEPROM塊擦除。
0xF8; 0x00至0xF8; 0x1F EEPROM空間的塊寫(xiě)入
欲對(duì)EEPROM空間進(jìn)行塊寫(xiě)入,請(qǐng)執(zhí)行下列步驟。
1. 執(zhí)行下面列出的所有操作。
? 發(fā)送從機(jī)地址WRITE
? 接收應(yīng)答消息
? 發(fā)送EEPROM高位地址(0xF8)
? 接收應(yīng)答消息
? 發(fā)送EEPROM低位地址(0x00)
? 接收應(yīng)答消息
? 發(fā)送STOP
? 發(fā)送從機(jī)地址WRITE
? 接收應(yīng)答消息
? 發(fā)送塊寫(xiě)入命令(0xFC)
? 接收應(yīng)答消息
? 發(fā)送要寫(xiě)入的字節(jié)數(shù)(0x20)
? 接收應(yīng)答消息
? 發(fā)送32字節(jié)的數(shù)據(jù)
? 每發(fā)送一個(gè)字節(jié)后從器件接收應(yīng)答消息
? 發(fā)送STOP
2. 對(duì)于要寫(xiě)入的EEPROM每一頁(yè),重復(fù)執(zhí)行第1步中的程序。但是,低位地址(發(fā)送EEPROM低位地址)應(yīng)遞增32字節(jié),例如:0x20、0x40、0x60、0x80、0xA0、0xC0和0xE0。
0xF8; 0x00至0xF8; 0x1F EEPROM空間的塊讀取
欲對(duì)EEPROM空間進(jìn)行塊讀取,請(qǐng)執(zhí)行下列步驟。
1. 將0x01寫(xiě)入寄存器0x90,使能配置寄存器連續(xù)更新。
2. 執(zhí)行下面列出的所有操作。
? 發(fā)送從機(jī)地址WRITE
? 接收應(yīng)答消息
? 發(fā)送EEPROM高位地址(0xF8)
? 接收應(yīng)答消息
? 發(fā)送EEPROM低位地址(0x00)
? 接收應(yīng)答消息
? 發(fā)送STOP
? 發(fā)送從機(jī)地址WRITE
? 接收應(yīng)答消息
? 發(fā)送塊讀取命令(0xFD)
? 接收應(yīng)答消息
? 發(fā)送從機(jī)地址READ
? 接收應(yīng)答消息
? 接收要讀取的數(shù)據(jù)字節(jié)數(shù)(0x20)
? 發(fā)送主機(jī)應(yīng)答消息
? 接收32字節(jié)的數(shù)據(jù)
? 每接收一個(gè)字節(jié)后發(fā)送主機(jī)應(yīng)答消息
? 發(fā)送STOP
3. 對(duì)于要讀取的EEPROM每一頁(yè),重復(fù)執(zhí)行第2步中的程序。但是,低位地址(發(fā)送EEPROM低位地址)應(yīng)遞增32字節(jié),例如:0x20、0x40、0x60、0x80、0xA0、0xC0和0xE0。
評(píng)論