> Van: John Duncan > Aan: PICLIST@MITVMA.MIT.EDU > Onderwerp: > Datum: dinsdag 4 mei 1999 6:49 Hello John, Please don't forget to specify a Subject when writing something ... I had to use 1.34 seconds to scan the _contents_ of your message to see if it would interrest me :-). But on with the show : > I am writing a program to read and write data to a Microchip 24LC64. I > wish to use the random read/write mode. I have the spec sheet for the > device and I thought I would base my code on the Microchip app note AN567 > . The spec sheet for the EEPROM device shows that the 2 bytes sent after > the byte containing the address and direction bit byte are the high order > and low order bytes of the eeprom location to be addresses. However it > appears that the code presented in the app note sends only 1 byte for the > address. Can anyone shed any light on this for me please. You are reading documentation regarding Memory-devices larger than 2048 bytes. Most routines are written for devices _upto_ 2048 bytes. Those can be handled by the lower 3 bits that specify a I2C device ( ID ) plus the 8 bits that must be send as an adress (totals 11 bits for an internal adress). For devices with an address-range larger than 2048 bytes this approach does not work anymore. So, 2 bytes has to be send to address a specific memory-cell (of 8 bits). All you have to do is to change the code so that it does not copy the high 3 bits of the address into th ID byte anymore, but write it as an a High-address-byte after the Low-address-byte is written. Easy isn't it ? Greetz, Rudy Wieser