A question we are commonly asked is “How do I copy a serial EEPROM chip?”. Serial EEPROMs are the memory chips found in car keys, some radios, PC motherboards and other electronics. They are usually 8 pin and retain data when the unit is switched off, which is why they are used for settings and configuration data. This is also why people want to copy them.
So, how do you set about copying a serial EEPROM?
Firstly, there are several different types of serial EEPROM chip and the type must be identified. They all use the same method for storing data but how they communicate varies from family to family. The three main types that are used in commercial products are
- 24 Series: These use the I2C two wire protocol
- 25 Series: Use 3 wire SPI communication
- 93 Series: Use Microwire, a variant of SPI
You do not need to know the details of these protocols as the programmer will deal with this, but you do need to read the chip number from the top of the device. The chip could have several numbers including date codes, but the important one has 24, 25 or 93 in it. It will usually start with a letter for manufacturer (AT for Atmel, M for STM etc) but not always and may be followed by a letter or two for series. It will end in a number giving the memory size, in bits not bytes.
Some examples –
- 24AA16, 24LC16 : Microchip 16KBit (2 KB) I2C serial EEPROMs
- AT25C02: Atmel 2Kbit (256 Bytes) SPI serial EEPROM
- M24512: ST 512Kbit (64 KB) I2C serial EEPROM
- 93AA76A, 93AA76B, 93C76B, 93LC76C: Microchip 8Kbit (1KB) Microwire serial EEPROMs.
In most cases, you do need need to worry too much about the manufacturer or series as devices from most manufacturers are the same. So, if you select a similar device from a different manufacturer it will usually read and program the same way, just as long as you choose one from same family (24, 25 or 93) with same memory size.
Obviously, if you can find an exact match in programmer support list then choose that but you won’t damage the reader or the chip by selecting the wrong device. Some programmers can identify the chip type automatically just by connecting them. You will not damage an EEPROM device or corrupt its data if you use the wrong chip selection, it just won’t read it.
Ok, we have identified the serial EEPROM and know what to select in the programmer device list but how do we connect to it? There are two choices, unsolder it and put it in a socket programmer or read it in circuit.
If you can unsolder the chip from the circuit board, you can drop it into a socket programmer or reader to read it, save the contents and program new devices. Most universal programmers support serial EEPROM chips, so you do not need an expensive product for them.
The Wellon VP-299 Universal Programmer is a low cost unit that can handle all serial EEPROMs. If your serial EEPROM is not a DIL package and is surface mount eg SOIC, then you will need a socket adapter as well.
In Circuit Programming
Also called In System Programming or ISP, this method usually relies on having a header to connect the programmer lead. In most cases, your circuit won’t be fitted with an ISP header but you can use IC test clips to connect to the serial EEPROM directly instead.
Kanda sell an IC clip pack that will connect to serial EEPROMs in 8 pin through hole (DIP), and 8 pin surface mount (SOIC) packages. These clips can be connected easily to the USB In System Programmer. The programmer software can be used to read the device, save it to a file and program new EEPROMs.
You will need to connect the programmer leads to the correct pin on the IC clip and some more knowledge is needed to do this. First find the device datasheet to get the pin diagram of the device. There are lots of datasheet sites on the web, such as alldatasheets.net or you can try manufacturer site or just type device name plus datasheet into a search engine, e.g, AT24C01 datasheet.
You need to connect GND and VCC pins to programmer in all cases, plus the programming lines. These have different names depending on the family.
- 24 family: These are I2C devices and the programming pins are called SCL and SDA
- 25 family: These are SPI devices with 3 lines called MISO, MOSI and SCK
- 93 family: These are Microwire chips and use DI, DO and CLK
The ISP programmer has an adapter with coloured leads and the manual tells you which colour is which signal for different device families.
Kanda also supply programming boards for their Serial EEPROM ISP programmer, which lets it act as a socket programmer. There is a low cost version with just a standard socket and a more expensive version with a ZIF socket and a SOIC adapter.