I was scanning for a used address by I2C EEPROM (24C02). Contrary to my expectations, it returned all eight possible addresses (0x50-0x57) instead of the hardwired one. I thought the problem was in a faulty chip, but changing to a new one didn't fix the problem.

Is this a "feature"? I hope not, as it would eliminate the purpose of having multiple EEPROMs connected to the same I2C bus. I tried to search on this topic, but only found this: ATMEL 24C02 EEPROM - Trouble understanding how the addressing works. Sadly, it doesn't answer my question, so I hope someone knows that is going on.

The EEPROM that I am using has markings ATMEL711 24C02 PU24 D.

Edit1: Here are example waveforms when I am trying to read one byte from EEPROM (hardwired to 0x50): Addressing EEPROM at 0x50 (same as hardwired address)

Addressing EEPROM at 0x53 (not hardwired address)

As you can see, both addresses work (0x50 and 0x53) eventhou hardwired address is 0x50.

Edit2: Here is the schematic showing how the EEPROM is connect. Pull-up resistors on SDA and SCL lines are present but not shown here. EEPROM schematic

  • \$\begingroup\$ For cases like this you need a two-channel scope to check what is happening on the I2C bus. \$\endgroup\$
    – Oldfart
    Dec 30, 2018 at 17:31
  • 1
    \$\begingroup\$ @SamGibson The EEPROMs there bought from AliExpress. Here is the link: link \$\endgroup\$
    – cheremk1
    Dec 30, 2018 at 19:19
  • 1
    \$\begingroup\$ The fact that you mention AliExpress and looking at the waveform, I suspect you have been given some weird I2C clone chips. They may be I2C EEPROMS but from a cheaper, different brand which does not support address pins. \$\endgroup\$
    – Oldfart
    Dec 30, 2018 at 20:18
  • 2
    \$\begingroup\$ Are you sure it is not a 24C08? That would exhibit the behavior you see - they are designed to work in a circuit designed for the 24C02 without modifying the circuit or software but act as multiple 24C02 devices. \$\endgroup\$ Dec 30, 2018 at 20:19
  • 1
    \$\begingroup\$ I think you are both correct. I did some tests with 24C04 and 24C08 from batch I got from AliExpress, and they worked as expected. For example, 24C08 answers to addresses 0x50-0x53 when A2 is connected to GND and to addresses 0x54-0x57 when A2 is connected to VCC. I think my 24C02 are just wrongly marked 24C16, because they accept addresses 0x50-0x57. Well, this shows that you should never trust AliExpress with electronics components. \$\endgroup\$
    – cheremk1
    Dec 31, 2018 at 9:52

2 Answers 2


Got exactly the same behavior on eeprom modules from Banggood. The chips are marked ATMEL719 24C02N PU27 D

24C04 parts, also from Banggood, works normally.

Chips marked ATMEL178 24C256 PU27 D are also strange. They respond to two addresses (i.e. 57 and 5f) and all 3 address select pins will modify the i2c address pair (i.e. 50 to 57 and 58 to 5f).

The genuine chip has just one active address and only use the A0 and A1 pins, according to the data sheet.

Caveat Emptor


This behaviour expected in some smaller devices, like 24C00. If you take a look at Atmel 24C00 datasheet section 5, Device addressing, you'll see:

The slave address for the 24XX00 consists of a 4-bit device code ‘1010’ followed by three “don’t care” bits.

Maybe this is a remarked devices which originally sold as 24C00, but have more EEPROM memory and Chinese sellers found this out like USB in STM32F101.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.