EEPROM 24Cxx
EEPROM họ 24Cxx có ba chân định địa chỉ là A0-A1-A2, nếu nối cả ba chân này xuống mass thì eeprom có địa chỉ nhận dạng là 0xA0
Hàm đọc ghi như sau
#use i2c(master, fast, sda=EEPROM_SDA, scl=EEPROM_SCL)
////////////////////////////////////////////////////
void write_ext_eeprom(int16 add, BYTE data)
{
short int status;
i2c_start(); // bao hieu bat dau giao tiep i2c
i2c_write(0xa0); // dia chi thiet bi nhan
i2c_write(add>>8); // gui den dia chi cao cua thiet bi nhan (dia chi cot)
i2c_write(add); // gui den dia chi thap cua thiet bi nhan (dia chi hang)
i2c_write(data); // ghi data vao dia chi tren cua thiet bi nhan
i2c_stop(); // bao hieu ngung ghi
i2c_start(); // bao hieu bat dau giao tiep
status=i2c_write(0xa0); // kiem tra trang thai cua thiet bi nhan
while(status==1) // lap lai cho den khi thiet bi da nhan xong (No Ack)
{
i2c_start();
status=i2c_write(0xa0);
}
delay_us(10);
}
BYTE read_ext_eeprom(int16 add)
{
BYTE data;
i2c_start();
i2c_write(0xa0);
i2c_write(add>>8);
i2c_write(add);
i2c_start();
i2c_write(0xa1);
data=i2c_read(0); // No Ack
i2c_stop();
return(data);
}
////////////////// the end /////////////////////////