Interfacing 24C01, 24C02, 24C04, 24C08, 24C16, 24C32, 24C64, 24C65, 24C128, 24C256, 24C512 8051 Microcontroller Family Models :
Atmel, NXP, Philips, 8051, 8052, 89C51, 89C52, 89S51, 89s52, 89C1051, 89C1051, 89C2051, AT89C4051, AT89S8252,l AT89C1051, AT89C2051, AT89C4051, P89C51RB+, P89C51RC+, P89C51RD+, P89C51RB2Hxx, P89C51RC2Hxx, P89C51RD2Hxx, P89C660, P89C662, P89C664, P89C668, P89C669, P89C51RA2xx, P89C51RB2xx, P89C51RC2xx, P89C51RD2xx, P89C60X2, P89C61X2,P89LV51RB2, P89LV51RC2, P89LV51RD2, P89V51RB2, P89V51RC2, P89V51RD2, P89V660, P89V662, P89V664.
Fundamentals Serial EEPROMs
An EEPROM is of nonvolatile memory means it can store the data if power is removed than data is safe no impact on power failure data is stored permanently. EEPROM stands for Electrically Erasable Programmable Read Only Memory. The prime advantage of EEPROM is that they can be erased electrically and store new data programmatically. Certain routines are written to read and write data to it by the developers. There are many kinds of EEPROM devices are available from various reputed manufactures like ATMEL, NXP, Microchip etc. But one the most commonly used EEPROM family is 24CXX series serial Eeprom easily available in the market at very cheap cost. They are available up to 128KB in size. They used I2C technique which is the most common and fundamental technique to communicate with the devices.
Models 24C01, 24C02, 24C04, 24C08, 24C16 EEPROMs
The 24C01, 24C02, 24C04, 24C08, 24C16 provides 1024/2048/4096/8192/16384 bits of serial electrically erasable and programmable read-only memory (EEPROM) organized as 128/256/512/1024/2048 words of 8 bits each. The most commonly used devices where low power and small devices are required in any embedded applications in home use or industrial. The 24C01, 24C02, 24C04, 24C08, 24C16 is available in space-saving 8-lead PDIP, 8-lead JEDEC SOIC, 8-lead Ultra Thin Mini-MAP (MLP 2x3), 5-lead SOT23 (AT24C01A/AT24C02/AT24C04), 8-lead TSSOP, and 8-ball dBGA2 packages and is accessed via a Two-wire serial interface. In addition, the entire family is available in 2.7V (2.7V to 5.5V) and 1.8V (1.8V to 5.5V) versions.
I2C Tutorials Of Serial EEPROM
Serial I2C (Inter-Integrated Circuit Bus) is the final interface type. This one originated with Philips/Signetics, whose 8XC528 (8051 family) is an example of a 8051 Microcontroller with an I2C interface built-in. The I2C interface requires just two signal lines, plus a common ground. Serial Data/Address (SDA) is a bidirectional line that requires open-collector or open-drain outputs. Serial Clock (SCL) is the clock. Instead of a chip-select line, the master sends a slave address on SDA. Figure 4 shows the timing for I2C transfers. An I2C bus can have up to about 40 devices, with the limit determined by a maximum bus capacitance of 400 pF. Each device on the bus can have an address of up to 7 bits.
Features of 24C01, 24C02, 24C04, 24C08, 24C16 EEPROMs
Serial I2C (Inter-Integrated Circuit Bus) is the final interface type and highly demanded in the industry and other applications to store data permanently and can be removed and re programmed using software. Basically it was developed by the Philips. The following are the main features available into the devices:
• Low-voltage and Standard-voltage Operation – 2.7 (VCC = 2.7V to 5.5V) – 1.8 (VCC = 1.8V to 5.5V)
• Internally Organized 128 x 8 (1K), 256 x 8 (2K), 512 x 8 (4K), 1024 x 8 (8K) or 2048 x 8 (16K)
• Two-wire Serial Interface Two wires are used to read and write data into it.
• Schmitt Trigger, Filtered Inputs for Noise Suppression for better optimization
• Bidirectional Data Transfer Protocol Sending and receiving data from both sides.
• 100 kHz (1.8V) and 400 kHz (2.7V, 5V) Compatibility
• Write Protect Pin for Hardware Data Protection from data theft.
• 8-byte Page (1K, 2K), 16-byte Page (4K, 8K, 16K) Write Modes
• Partial Page Writes Allowed
• Self-timed Write Cycle (5 ms max)
– Endurance: 1 Million Write Cycles
– Data Retention: 100 Years
• Automotive Devices Available
Pin Description 24C01, 24C02, 24C04, 24C08, 24C16 EEPROMs
SERIAL CLOCK (SCL): Pin No 6 of the eeprom is the SCL means Serial Clock input pin is used to positive edge clock data into each EEPROM device and negative edge clock data out of each device. Means this the the clock pin of the device the direction of this clock is to determine whether the data is being written or read. This line is set high or low by the 8051 Microcontroller as per the operation needed on it. When the pin is high then we send data into the chip and when the pin is low the the device is capable of reading the data from it.
SERIAL DATA (SDA): Pin No 5 is the data pin SDA means Serial Data used for sending data serially is the prime job of the device whether we read or write data is transferred on single wire. This is the data line used by the 8051 Microcontroller to send and receive data on it. This is the SDA pin is bidirectional for serial data transfer. This pin is open-drain driven and may be wired with any number of other open-drain or open collector.
Hardware Device/Page Address Pins : Pin named A2, A1, A0 pin no 1,2,3 respectively on eeprom are the device address pins used to identify the device on the board. An embedded application may use many eeproms on the same board and every eeprom has the different data storage so these pins are used to define which ever device needs the attention of the 8051 Microcontroller to send and receive the data. Example in the temperature logger system one eeprom used to store temperature and another eeprom used to store humidity so 8051 microcontroller needs to communicate with them. Both of the eerpoms are on the single i2c two wire bus so how to recognize which eeprom should be communicated. When 8051 Microcontroller needs to store temperature then the temperature eeprom will be written and when MCU needs to write and read humidity eeprom then this eeprom will be communicated. So both have different addresses so that here must be no confusion for data communication by the 8051 Microcontrollers. So these hardware device address lines are used to identify the which device needs attention of the 8051 Microcontroller. Later we will do some practicals to clear the doubts.
The AT24C04 eeprom uses the A2 and A1 inputs for hard wire addressing and a total of four 4K devices may be addressed on a single bus system. The A0 pin is a no connect and can be connected to ground.
The AT24C08A only uses the A2 input for hardwire addressing and a total of two 8K devices may be addressed on a single bus system. The A0 and A1 pins are no connects and can be connected to ground.
The AT24C16A does not use the device address pins, which limits the number of devices on a single bus to one. The A0, A1 and A2 pins are no connects and can be connected to ground.
WRITE PROTECT (WP): Data is very important so it should be not lost or overwrite so eeproms are equiped with the facility that we can restrict the device for further writing on the chip. The 24C01, 24C02, 24C04, 24C08, 24C16 has data protection facility. Pin no 7 of the device is used for this purpose. When the pin is connected to ground voltage (0V) then the device is capable of being read and written and when the pin is connected to the VCC (+5) then the device is write protected data can not be removed and over written.
Negative/Ground Voltage (0V): Pin No 4 is used to feed the negative supply voltage 0V.
Positive Voltage (5V): Pin No 8 of the devices are used to supply positive 5 voltage to run the devices it can be run even the low voltage. Low-voltage and Standard-voltage Operation are 2.7 (VCC = 2.7V to 5.5V) 1.8 (VCC = 1.8V to 5.5V)
Memory Organization 24C01, 24C02, 24C04, 24C08, 24C16 EEPROMs
Memory Organization AT24C01A, 1K SERIAL EEPROM: Internally organized with 16 pages of 8 bytes each, the 1K requires a 7-bit data word address for random word addressing.
AT24C02, 2K SERIAL EEPROM: Internally organized with 32 pages of 8 bytes each, the 2K requires an 8-bit data word address for random word addressing.
AT24C04, 4K SERIAL EEPROM: Internally organized with 32 pages of 16 bytes each, the 4K requires a 9-bit data word address for random word addressing.
AT24C08A, 8K SERIAL EEPROM: Internally organized with 64 pages of 16 bytes each, the 8K requires a 10-bit data word address for random word addressing.
AT24C16A, 16K SERIAL EEPROM: Internally organized with 128 pages of 16 bytes each, the 16K requires an 11-bit data word address for random word addressing.
Device Operations 24C01, 24C02, 24C04, 24C08, 24C16 EEPROMs
CLOCK and DATA TRANSITIONS: The SDA is the data pin which remains normally high signal with external device like 8051 microcontroller. Data on the SDA pin may change only during SCL low time periods. Data changes during SCL high periods will indicate a start or stop condition as defined below.
START CONDITION: A high-to-low transition of SDA with SCL high is a start condition which must precede any other command.
STOP CONDITION: A low-to-high transition of SDA with SCL high is a stop condition. After a read sequence, the stop command will place the EEPROM in a standby power mode.
ACKNOWLEDGEMENT BIT: All addresses and data words are serially transmitted to and from the EEPROM in 8-bit words. The EEPROM sends a zero to acknowledge that it has received each word. This happens during the ninth clock cycle.
STANDBY MODE: The 24C01, 24C02, 24C04, 24C08, 24C16 features a low-power standby mode which is enabled.
MEMORY RESET: The device can be reset anytime of when processing. It can be reset using following steps :
1. Clock up to 9 cycles will reset the device.
2. Look for SDA high in each cycle while SCL is high.
3. Create a start condition.