Could not scan for EEPROM device, Product: 24CW64X, 4 -balls

Thread Starter

gabriel loke

Joined Aug 1, 2018
2
Hi Everyone!

I recently bought a few EEPROM of type 24CW64X ,4-balls. The data sheet is as shown here:

http://ww1.microchip.com/downloads/...ith Software Write Protection_DS20005772A.pdf

I have connected the 4 balls on this memory device, according to their supply voltage (Vcc), ground voltage (Vss), Serial data Pin( SDA) and serial clock input (SCL), to the Arduino Uno, and connected pull-up resistors of 2kOhms (as mentioned in the data sheet) to both the SDA and SCL.

However, when i tried scanning for this device using the code from this website:

https://playground.arduino.cc/Main/I2cScanner

, I usually get errors for some of the EEPROMs such as:
"No device found."

or errors such as:
"Unknown error at address 0x25
Unknown error at address 0x30
Unknown error at address 0x55"

I am thinking that this memory device may require me to first remove the write protect or to perhaps change the slave address first through the Hardware Address Register?

I am stuck now at this stage, and being a beginner in electronics and coding, it will be great if any one can provide help. Thank you very much!

-Gabriel
 

Raymond Genovese

Joined Mar 5, 2016
1,658
There are two varieties of the four ball form and they have different pin outs - are you sure that you have wired the chip correctly?

The I2C address (7-bit) of the device is configurable in a hardware register but has to be in the range of 0x50-0x57.

The I2C address is preset and is printed on the part (see table 3.2). If you purchased the devices new, that will be the address unless it was inadvertently changed.

The recommended typical pull up for Arduino is 10K, not 2.2K since the speed is 100K, but note the formula for min and max values, provided you know Cl.

As long as there is no address conflict with another I2C device, you can determine the address by sending it on the I2C lines with the R/W to R and noting which address in the range 0x50-0x57 is acknowledged. This will be so regardless of the state of the write protection.

As an admitted beginner in electronics and coding, how did you end up with that part and how did you get it connected on a board?
 

Thread Starter

gabriel loke

Joined Aug 1, 2018
2
Thanks for your reply, Raymond! This device is part of my project in school, and we are currently testing it out to see if we can store memory in it. I actually used two connecting methods for this device. For one of the devices, I use a silver paint to wet the balls and later connect it to a copper wire. For the second device, I use a solder to connect to the balls and later use a copper wire to connect to the solder.

I have tried both of these individual devices with the 10K resistor...but it still does not work though. The same errors appear. Regarding the wiring of different pin-outs, I have actually tried both configurations but no change to the errors. I see from its datasheet, that the preset slave address is 0,0,0, which is 0x50 in hex, so it seems like 0x50 should be located from the I2C scanner code, but the error of "no device found" always appear.

I have also tried on a 24LC256 EEPROM, and it works perfectly (able to scan for this EEPROM device, and store, read memory from it). The datasheet is:
https://www.mouser.com/datasheet/2/268/20001203T-254595.pdf

I wonder if it is a problem with the code itself which may not be compatible with my 64 Kbit , 24CW64 EEPROM?
 

Raymond Genovese

Joined Mar 5, 2016
1,658
Thanks for your reply, Raymond! This device is part of my project in school, and we are currently testing it out to see if we can store memory in it. I actually used two connecting methods for this device. For one of the devices, I use a silver paint to wet the balls and later connect it to a copper wire. For the second device, I use a solder to connect to the balls and later use a copper wire to connect to the solder.

I have tried both of these individual devices with the 10K resistor...but it still does not work though. The same errors appear. Regarding the wiring of different pin-outs, I have actually tried both configurations but no change to the errors. I see from its datasheet, that the preset slave address is 0,0,0, which is 0x50 in hex, so it seems like 0x50 should be located from the I2C scanner code, but the error of "no device found" always appear.

I have also tried on a 24LC256 EEPROM, and it works perfectly (able to scan for this EEPROM device, and store, read memory from it). The datasheet is:
https://www.mouser.com/datasheet/2/268/20001203T-254595.pdf

I wonder if it is a problem with the code itself which may not be compatible with my 64 Kbit , 24CW64 EEPROM?
Not having the chips in hand, I’m not sure what to tell you at this point. I suspect that the connections to the chips are faulty, or possibly the chips themselves have been damaged.

The Arduino I2C that you linked relies on the argument returned after:

Wire.beginTransmission(address);

error = Wire.endTransmission();


I have not read the datasheet very carefully, but I am not seeing anything that would cause a big problem. That is, you should be able to scan and identify the address, unless I am missing something.

When you say "I see from its datasheet, that the preset slave address is 0,0,0, which is 0x50 in hex", I assume that you mean A0=A1=A2=0, but as I think I mentioned, for your chips, the preset slave address is printed on the package label as per Table 3.2. Regardless, I think that a scanner looking at addresses up to 127 should find the address.

You can try this Arduino I2C scanner which does a little more and you can read about I2C scanners here and many other places.

You can also find or write the code to read and write a few memory locations and test the chips by varying the addresses as discussed.

In any event, please do post the resolution, even if you end up not using the chips, as it can be helpful to others (and of course I would like to know how it works out).

Hope this helps.
 
Top