Try EE-Prog - Supports all 24c EEPROM (24c01 - 24c1024) It's free.. it's best to set the correct profile for the 64-Kbit serial I2C bus EEPROM.
I'm repairing a device that is showing an error pointing to corrupt data or checksum in EEPROM memory. The EEPROM is a 24C164, and I'm having trouble finding support for this exact device in the multitude of programmers I have on hand.
The 24C164 appears to be very similar to a regular 24C16, except pins 1-3 are address pins A0-A2 so the device can share a common address bus with other such devices.
Atmel's datasheet says this regarding the 24C164: "The AT24C164 can be made compatible with the AT24C16 by tying A2, A1 and A0 to VSS."
And so to the question: could the contents of the 24C164 be safely read out, by using a 24C16 profile in my programmer, so long as A0-A2 are grounded (which by default my programmer does for the 24C16)
What about writing the 24C164 as if it were a 24C16 without the address being set? Has anyone crossed these bridges before?
Look Here -> |
Try EE-Prog - Supports all 24c EEPROM (24c01 - 24c1024) It's free.. it's best to set the correct profile for the 64-Kbit serial I2C bus EEPROM.
OK, this is interesting. A0-A2 are permanently tied high to Vcc on the circuit, so they're not trying to use the addressability of the IC in any way. Perhaps the manufacturer has intentionally chosen an obtuse EEPROM type to prevent the very sort of thing I'm trying to do?
I think he's referring to this -->>
...and not this of the same name -->
Unfortunately neither of those packages support the 24C164. Proving to be quite elusive!
Silly question...but if the existing eeprom has a checksum/corruption issue, how do you plan to validate the dump from the rom?
Also...
Another user of the same device I'm in contact with on another forum (which is more of a consumer electronics forum) says he's fixed the same error code, and that the contents of the EEPROM are easy to work out, and so is the checksum. He's too busy to offer more than that at this stage.
But if I get really stuck, I can suck out & reverse engineer the EEPROM contents of another two identical & working devices I have
May have solved the ability to safely read & write to this esoteric EEPROM: and old & discontinued device SEEprog programmer supports the 24C164. It's successor needs nearly a grand of cash to purchase. But AliExpress has clones of the original SEEprog hardware for a shade under $25 delivered to my door. Legacy software still available at the OEM's website too, which is nice.
All good -- you know I had to ask =)
I think this is where the programming software has to account for the different chips going by what I've read --- have a read of the 'device addressing' section of both chip's datasheets ; 24c164 handles this differently wrt 24c16 ; elsewise they appear the same."The AT24C164 can be made compatible with the AT24C16 by tying A2, A1 and A0 to VSS."
silly question 2 : why consider this when you can still buy AT24C164 ?
Last edited by wotnot; 12-07-22 at 02:12 PM.
It was due to lack of support in all my other programmers for the 164 specifically, but did have support for the 16. Was hoping I could pop the 164 in and at least read it using 24C16 settings in the programmer software, if A0-A2 were hard set to low. But that doesn't appear to be the case, the 16 doesn't need soft addressing sent as part of the read/write protocols, but the 164 does require it. Anyhow, that no-support issue will be fixed in a few weeks time when the clone SEEprog and a PCIe LPT port card arrive.
I'll probably order a few spare 24C164s anyway, just to make sure I have some on hand in case of any failures - hardware or PEBCAK user error failures!
Ahh...I'm with you now....I suppose the only thing to be mindful of is that the 24c164 comes in different voltage flavours, else should be straightforward ; at least they're cheap enough for a PICNIC or two =)
This is all from the same hissy-fit Philips have had with various and sundry OEMs using 'their' patented, proprietary I2C comms protocol ...versus the TWI (two wire interface that can aka three wire interface 8) BS that's been going on for yonks...in a way, you can view the 24c164 as being a 'true' TWI device just because it lacks the 3 device address pins (A0/1/2 in I2C speak, CS0/1/2 in TWI parlance), even though it still uses the I2C protocol/timings to get the job done....the 'soft addressing' as you say, is a super-set of I2C as it were...
Found out that the common & cheap USB CH341A EEPROM programmer will work, quite by accident, definitely not by design, with the 24C164 EEPROMs if Atmel AT24C16 profile is manually selected in the programming software. I used v1.13 software with my CH341A programmer to do this, and verified with a SEEprog that properly supports the 24C164 to verify that it wrote to the chip OK. The CH341A also reads from the 24C164 OK in the same way too.
I also tried the EZIPROG 2019+ and Willem 5.0e programmers, no joy there.
Yes, you can directly replace the chip without any read write issues.
Before you do though, I would read the chip, SAVE the data, then confirm the CRC is a hardware fault.
More often than not, the CRC bytes are corrupt or error in data.
You can calculate the proper CRC and determine where the error is.
I can't find a 24C16, so replaced with 24C164. works perfect, just a lot of unused space.
Cheers
Bookmarks