cancel
Showing results for 
Search instead for 
Did you mean: 

M24C04DRM is reading only 0xFF, also from identification page

BHnat.1
Associate

Hi, this is my first post here so please forgive me if I'm not following some conventions.

Anyway, I've encountered problem when trying to use EEPROM M24C04DRM (512kB + id page)

I want to read id page address 0x00 which contains manufacturer code 0x20.

According to datasheet in order to do that I should first send write command consisting of device select byte (0x58 which is 1011 000 binary as both EN are pulled to gnd, last 0 for WRITE) and address byte which in that case is 0x00. After that I should not send stop, but repeat start condition and send read command which again is device select byte 0x58 and last 1 meaning it is READ), then I should receive 1byte of data which is followed by NACK and stop condition.

Now these below are photos of my oscilloscope measuring signals SDA (yellow) and SCL (blueish) 0693W00000KcT3jQAF.jpgIt seems ok for me. Also decoding by software seems to give exactly values I've just described:

0693W00000KcT5BQAV.jpgSo this is 0x58 select (WRITE) then ACK, 0x00 address without STOP.

After that there is READ 0x58, ACK and device is sending FF, then NACK and stop condition occurs.

Is there something I am doing wrong, or it is just damaged chip?

1 REPLY 1
Pierre P.
Senior III

Hello,

Your sequence is correct.

Did you try to an other address ? (01 or 02 for ex)

Make sure it's a virgin part.

Pierre P.