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