Results 1 to 15 of 15

Thread: 24C164 - safe to read / program as 24C16?

  1. #1
    Senior Member

    Join Date
    Jan 2008
    Location
    A rock in the ocean
    Posts
    752
    Thanks
    99
    Thanked 135 Times in 79 Posts
    Rep Power
    290
    Reputation
    3356

    Default 24C164 - safe to read / program as 24C16?

    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 ->
  • #2
    Senior Member
    Johnno's Avatar
    Join Date
    Jan 2008
    Location
    The Dark Side of the Moon
    Posts
    1,243
    Thanks
    1,595
    Thanked 2,226 Times in 580 Posts
    Rep Power
    1129
    Reputation
    44531

    Default

    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.

  • #3
    Senior Member

    Join Date
    Jan 2008
    Location
    A rock in the ocean
    Posts
    752
    Thanks
    99
    Thanked 135 Times in 79 Posts
    Rep Power
    290
    Reputation
    3356

    Default

    Quote Originally Posted by Johnno View Post
    Try EE-Prog - Supports all 24c EEPROM
    Not sure if I have the same EE-Prog you're referring to, but the one by Amir Khorsandi does not support 24C164.

  • #4
    Senior Member

    Join Date
    Jan 2008
    Location
    A rock in the ocean
    Posts
    752
    Thanks
    99
    Thanked 135 Times in 79 Posts
    Rep Power
    290
    Reputation
    3356

    Default

    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?

  • #5
    Premium Member
    wotnot's Avatar
    Join Date
    Nov 2019
    Location
    Scenic Rim, SE Qld
    Posts
    3,236
    Thanks
    1,462
    Thanked 2,934 Times in 1,510 Posts
    Rep Power
    1334
    Reputation
    58690

    Default

    I think he's referring to this -->>

    ...and not this of the same name -->

  • #6
    Senior Member

    Join Date
    Jan 2008
    Location
    A rock in the ocean
    Posts
    752
    Thanks
    99
    Thanked 135 Times in 79 Posts
    Rep Power
    290
    Reputation
    3356

    Default

    Unfortunately neither of those packages support the 24C164. Proving to be quite elusive!

  • #7
    Premium Member
    wotnot's Avatar
    Join Date
    Nov 2019
    Location
    Scenic Rim, SE Qld
    Posts
    3,236
    Thanks
    1,462
    Thanked 2,934 Times in 1,510 Posts
    Rep Power
    1334
    Reputation
    58690

    Default

    Silly question...but if the existing eeprom has a checksum/corruption issue, how do you plan to validate the dump from the rom?

    Also...

  • #8
    Senior Member

    Join Date
    Jan 2008
    Location
    A rock in the ocean
    Posts
    752
    Thanks
    99
    Thanked 135 Times in 79 Posts
    Rep Power
    290
    Reputation
    3356

    Default

    Quote Originally Posted by wotnot View Post
    Silly question...but if the existing eeprom has a checksum/corruption issue, how do you plan to validate the dump from the rom?
    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.

  • #9
    Premium Member
    wotnot's Avatar
    Join Date
    Nov 2019
    Location
    Scenic Rim, SE Qld
    Posts
    3,236
    Thanks
    1,462
    Thanked 2,934 Times in 1,510 Posts
    Rep Power
    1334
    Reputation
    58690

    Default

    All good -- you know I had to ask =)

    "The AT24C164 can be made compatible with the AT24C16 by tying A2, A1 and A0 to VSS."
    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.


    silly question 2 : why consider this when you can still buy AT24C164 ?
    Last edited by wotnot; 12-07-22 at 02:12 PM.

  • #10
    Senior Member

    Join Date
    Jan 2008
    Location
    A rock in the ocean
    Posts
    752
    Thanks
    99
    Thanked 135 Times in 79 Posts
    Rep Power
    290
    Reputation
    3356

    Default

    Quote Originally Posted by wotnot View Post
    silly question 2 : why consider this when you can still buy AT24C164 ?
    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!

  • #11
    Premium Member
    wotnot's Avatar
    Join Date
    Nov 2019
    Location
    Scenic Rim, SE Qld
    Posts
    3,236
    Thanks
    1,462
    Thanked 2,934 Times in 1,510 Posts
    Rep Power
    1334
    Reputation
    58690

    Default

    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...

  • #12
    Senior Member

    Join Date
    Jan 2008
    Location
    A rock in the ocean
    Posts
    752
    Thanks
    99
    Thanked 135 Times in 79 Posts
    Rep Power
    290
    Reputation
    3356

    Default

    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.

  • #13
    Premium Member
    Join Date
    Aug 2021
    Posts
    387
    Thanks
    114
    Thanked 81 Times in 44 Posts
    Rep Power
    77
    Reputation
    1630

    Default

    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

  • #14
    Premium Member
    Join Date
    Aug 2021
    Posts
    387
    Thanks
    114
    Thanked 81 Times in 44 Posts
    Rep Power
    77
    Reputation
    1630

    Default

    Quote Originally Posted by mitaux8030 View Post
    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?
    That sounds really odd looking at the data sheet.
    During programming there is one configuration pin you can set for 8 bit or 16 bit blocks.
    Address lines should be tied for the first block which will hold the 24C16 data.
    cheers

  • #15
    Premium Member
    Join Date
    Aug 2021
    Posts
    387
    Thanks
    114
    Thanked 81 Times in 44 Posts
    Rep Power
    77
    Reputation
    1630

    Default

    Quote Originally Posted by mitaux8030 View Post
    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.
    My setup for this is using MPLAB from Microchip and their cheap programmer board.
    I supports all of the 24/25 Cxxx chips.

  • Bookmarks

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •