I'm using the M24C04 EEPROM with the 5-UFDFPN package.
I can read/write to it without problems, but I just found out that the EEPROM acknowledges not only 0x50 and 0x51, but actually acknowledges 0x50 to 0x57. According to the datasheet, the address of the 5-UFDFPN package should be:
1 0 1 0 0 0 A8
Where A8 is the page number. For the other packages, it's:
1 0 1 0 E2 E1 A8
Where E2 and E1 are pins on the IC. The datasheet says that E1 and E2 are read as 0 in the DFN5 package. But from what I see, it seems that the chip accepts any value of E1 and E2, thus acknowledging 0x50 to 0x57.
I tested that it is indeed this IC that causes the "fake acknowledgements" because the I2C lines of that EEPROM are on a multiplexer, and when the mux disconnects the EEPROM from the uC, I don't get the acknowledgements anymore.
Have you seen this problem before?