The Atmel AT24C01, a 128 byte EEPROM, is an interesting memory device.
Its read and write operations use the I2C Bus in a unique way.

It looks like the AT24C01 allows each byte within the chip to act like
separate I2C Bus slave device. This uses up the bus slave address space,
but if it is the only device on the bus, this might be OK.

The AT24C01 acknowledges all 7-bit I2C Bus slave addresses (0x00...0xFE),
so no other slave device can be on the bus. It uses the seven MS (most
significant) bits of the I2C Bus slave address as its internal memory address
for subsequent writes or reads. Most memory devices use the first message
data byte to set the internal memory address, so in some ways, the AT24C01
is more efficient if you don't mind it using all available addresses on
the bus.

To write to this device, you will need to set the Most Significant 7-bits
of the I2C Bus slave address to the address of the EEPROM byte you want
to access. For instance, you would set the MasterTx slave address to 0x02
to access the byte at address 0x01 in the chip. Slave address 0x04 would
access the byte at address 0x02 in the chip. Remember, each byte in this
chip has its own I2C Bus address. The MasterTx or MasterRx routines will
automatically set or clear the least significant bit if the I2C Bus slave
address.

A potential problem with this chip is reading from memory address 0x00.
In the I2C Bus world, address 0x00 is the broadcast (write only) address.
The iPort will not read from this address, as it is designed to obey I2C
rules. Atmel does not seem to mind bending the rules.

To read from memory address 0x00, you will need to read two bytes starting
at address 0xFF (this is I2C Bus slave address 0xFE). Ignore the first
byte read, and the second byte read will be the memory address 0x00.

As of this writing, we do not have one of these Atmel devices, so we
cannot prove the all the above is correct. However, our experience with
the I2C Bus, and with our iPort leads us to believe the above is correct.
You should test the out with the iPort Message Manager software included
with the iPort.

If you work with this part, and find out our above interpretation of
its I2C Bus interface is not correct, please let us know.

Can't find the answer to your question here? Then e-mail your question
to us at support@mcc-us.com