A6b:8051 Interfacing: EEPROM AT24C16
Video Tutorial
Intro
Schematic
The schematic is pretty simple, you could connect the I2C lines to any of the two 8051 port pins, because the 8051 does not have in built hardware to handle I2C communication, we need to 'bit-bang' it. For this tutorial we have made connections as shown in the image below, also notice the character LCD in 4 bit mode. So what we do in this tutorial is write some strings to the EEPROM and read them back.
The AT24C16
The AT24C16 is one variant of AT24C series others are AT24C01, AT24C02,AT24C04,AT24C08, the tutorial should hold good for all of these. Table below show memory arrangement for all of these
IC | Memory Size | Page Numbers |
---|---|---|
AT24C01 | 1K Bits(128 Bytes) | 0 |
AT24C02 | 2K Bits(256 Bytes) | 0 |
AT24C04 | 4K Bits(512 Bytes) | 0 to 1 |
AT24C08 | 8K Bits(1024 Bytes) | 0 to 3 |
AT24C16 | 16K Bits(2048 Bytes) | 0 to 7 |
Note the following from the memory map.
- Each page requires 8-bits to to access the 256 locations
- Additional 3 bits are required to address 8 pages
- Hence 13 bits are required to address the entire 16K Memory.
|- !IC||colspan = "8"|Device ID |- |AT24C01||1||0||1||0||A2||A1||A0||R/W |- |AT24C02||1||0||1||0||A2||A1||A0||R/W |- |AT24C04||1||0||1||0||A2||A1||'P0'||R/W |- |AT24C08||1||0||1||0||A2||'P1'||'P0'||R/W |- |AT24C16||1||0||1||0||'P2'||'P1'||'P0'||R/W |- |}