Duplicating eeproms

Go To Last Post
28 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi all!
I am quite new to this world, and have been asked by a friend to duplicate some eeproms, as he can't find them anymore from his suplier, so here we are, i have some eeprom already programmed, and i got some "blank" ones of the same type.
I got as well a pickit with usb connexion.
My question: What is the easiest way (idiot proof) to copy the content of the original eeprom, and copy it to the blank ones?

Thanks for your help!

Attachment(s): 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

The ICs in the JPG file are not EEPROMs.  They are one-time-only programmable ROM ICs.  You write to them once.  If your program works, wonderful.  If your program doesn't work by ONE bit, you throw away the $10 IC and try again with another one.   After you blow away several hundred dollars worth of your company's chips, someone in your company will suggest using real EEPROMs for development purposes.

 

  These are also big ICs.  They hold one mega byte worth of data.  And they are old chips.  There are newer, better, and cheaper (real) EEPROMs available.   So if the original ROMs are old, then the circuit that they came out of is also really old.  If you are going to make a copy of the circuit, do you have all the old parts that are used besides the EPROMs?

 

As for copying, you build a circuit that mimics the 20 address pins, the 8 data pins, and the various control signals.  Mimic the address/data bus signals of the original microprocessor from the original circuit with your copying device.  Read the original EPROM's  data in "pages" of about 128 to 1024 bytes at a time from the old chip.  Store each page in external serial RAM (at least 1 megabyte's worth, which is 8 to 16 external Serial SRAM devices attached to your copying device).    Then write all this data to the new EEPROM IC, which, hopefully, is the same memory size as the original EPROM.    Put the new EEPROM in the old EPROM's socket (assuming that the two ICs share the same pin-out and timing requirements), and, maybe, it will work.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I like how they labelled a voltage level on the chip package

When in the dark remember-the future looks brighter than ever.   I look forward to being able to predict the future!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

avrcandies wrote:
a voltage level on the chip package

That's the programming voltage.

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Simonetta wrote:
They are one-time-only programmable ROM

Sometimes known as "OTP" (One-Time Programmable)

 

Quite often, they were actually UV-EPROM chips inside - just without the window for erasing.

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Kartman wrote:
What’s the easiest way? https://www.ebay.com.au/itm/Well... Or find someone who has something similar.

 

That would be easiest.

 

Pickit2 and Pickit3 had facilities for storing a data file.   And subsequently programming a PIC in the field.

 

A Microchip expert will tell you whether this would work for "big" OTP EPROMs.

 

Unless you have a shed full of EPROMs you want to get it right first time.

Any mistakes mean the OTP EPROM is ruined.

So your best bet is to mail them to someone with both Universal Programmer and knows how to use it.

 

David.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

One could, of course, program an AVR to read then write an EEPROM - but it would be a labour of love!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

 

laugh

 

added fun for this one - generating[1] the 12.5V programming voltage ...

 

 

EDIT

 

[1] I guess I should say "managing" rather than just "generating" the 12.5V ?

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
Last Edited: Tue. Sep 17, 2019 - 10:28 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

 

clawson wrote:
One could, of course, program an AVR to read then write an EEPROM - but it would be a labour of love!

I made one of those to copy 24C512 EEPROMs one at a time.  The pushbutton starts the copy and the red LED goes on when it finishes.  It is not real fast.

 

Edit:  Not sure why I used 10k pullup resistors instead of 4.7k.  Guess I didn't know better at the time.

 

 

Last Edited: Tue. Sep 17, 2019 - 05:59 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

MarkThomas wrote:
Not sure why I used 10k pullup resistors instead of 4.7k.  Guess I didn't know better at the time.

 

Those look like 1k on my screen.......

 

JIm

I would rather attempt something great and fail, than attempt nothing and succeed - Fortune Cookie

 

"The critical shortage here is not stuff, but time." - Johan Ekdahl

 

"Step N is required before you can do step N+1!" - ka7ehk

 

"If you want a career with a known path - become an undertaker. Dead people don't sue!" - Kartman

"Why is there a "Highway to Hell" and only a "Stairway to Heaven"? A prediction of the expected traffic load?"  - Lee "theusch"

 

Speak sweetly. It makes your words easier to digest when at a later date you have to eat them ;-)  - Source Unknown

Please Read: Code-of-Conduct

Atmel Studio6.2/AS7, DipTrace, Quartus, MPLAB, RSLogix user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0


jgmdesign wrote:
Those look like 1k on my screen.......

Oh, right you are.  It seemed to work the two times I used it.  I think I should replace them.  I made that a long time ago.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

They look like 1k on my screen too, but they are 10k.  I just checked.  I thought the stripe was orange.  The orange stripe comes out red with my phone camera.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

I guess that's what I get for not having an iPhone.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

As  Simonetta  pointed out in the 1st reply, the OP's devices are not EEPROMs ...

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:

One could, of course, program an AVR to read then write an EEPROM - but it would be a labour of love!

 

Been there, done that - I have a 328-based device I used to read 32kB parallel eproms and write the data to eeproms. I wanted a record of the code in my now-25-year-old car's ECU.

 

Came across it the other day when 'tidying' a work bench into a large box. I have now no real idea how it worked but the presence of a serial port (proper RS232!) implies it probably saved to and loaded from a PC in some way.

 

Neil

 

(Apropos of which - you'd *think* a Nucleo would make that sort of thing really easy, what with all those sixteen-bit ports to hand and potentially lots of internal memory. Sadly, the biggest chunk of port you can use is twelve bits C0-C11 and then eight bits P4-P11 - complete with lots of shifts and adds and masking so you don't inadvertently trigger interrupts and what-have-you. Or even better, accidentally use pins that aren't connected to the processor, or which do useful things like the SWDIO/CLK...)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

MarkThomas wrote:

 

I made one of those to copy 24C512 EEPROMs one at a time.  The pushbutton starts the copy and the red LED goes on when it finishes.  It is not real fast.

 

 

 

Just for archival reasons, I'd suggest the next time you build one of those throw down the extra dollar or so for high-quality machined-pin sockets (NOT the ones with the gold inserts - they come out) but just for the two EEPROM sockets that you'll be jacking chips out of and into over and over again.  ZIF would be even better - but probably more like $20 extra dollars.  S.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

If I was going to use it more than once I probably would use a ZIF.  Actually, I think the dual wipes are better than the machines sockets for taking the chips out more than once or twice.  The machined sockets hold the chips much better, but I dont think they work as well for a lot of in and out.  That has just been my experience.  I could easily be wrong.

 

Edit:  Actually, I think you are right.  I seem to remember the problem I had was with the gold insert coming out.

 

Edit:  Also a problem is the machined sockets hold the chips much better and it is a lot easier to bend the pins getting the chips out.

Last Edited: Thu. Sep 19, 2019 - 06:05 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

<smug mode = on> I used a zip socket

 

<smog mode = off> ...but I had to plug it into a turned pin socket to raise it high enough that its footprint cleared other cruft on the board blush

 

Neil

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

MarkThomas wrote:

Edit:  Also a problem is the machined sockets hold the chips much better and it is a lot easier to bend the pins getting the chips out.

 

There is that.  S.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

barnacle wrote:
plug it into a turned pin socket to raise it high enough

that was  a common trick in the days of true ICEs where you had to plug the probe into the processor socket.

 

also to protect the chip's pins

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I always wondered about the machined sockets as they only contact the edges of the pins where the dual wipe contact both sides.  I guess the dual wipes are more prone to corrosion on the pins and just dont make as good a contact.  The pins are really jammed into a machined socket for good contact.  I usually use the machined sockets when I have them.  I am such an amateur I use a lot of sockets.  My super experienced friend says he never uses them.  To many problems.  Better to just solder it up.  That's fine if you know what you are doing, but I have to redo things so often I am better off with sockets. 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

So, there is no piece of software that will read and copy the content of the original ROM, and enable me to clone it to a blank chip using my pickit2?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Pickit2 does not have enough pins to program your eprom.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

To *read* a parallel prom/eprom/eeprom, you will need to drive each of the address lines (so 10 for a 1kB part, 11 for 2kB part, 14 for a 16kB part and so on) and either eight or (occasionally) sixteen lines for the data i/o lines. You will also need to drive the chip enable input(s), output enable, and sometimes a third control pin. In practical terms you will need at least three complete 8-bit ports and perhaps one or two lines more. Though of course you can use serial to parallel latches to reduce the processor chip count, particularly for the address - but the data needs to be bidirectional so isn't quite as easy though it can be done.

 

To *write* a parallel device, you need all that, plus some way of getting a programming voltage - see the appropriate data sheet - controlled by another line. In some cases, that programming voltage is used to raise the VCC of the chip, on others it might be a separate chip (and for an eeprom, you probably don't need it).

 

Further, you may also need to translate voltage levels - the prom, particularly if it's old, probably works at 5v, but your programming processor might be restricted to 3v3, for example.

 

With all that in place, reading is generally easy: set the address you want to read, set the read and output enable signals, wait the approved delay time (might be as long as a microsecond!) and then read the data bus. Rinse and repeat. For writing, you'll need to review the data sheet to find the required programming algorithm. It might be as simple as set address, set data, tickle a programming line, and wait - or it may require exact timings and voltages and a particular sequence of reads and writes from specific locations... depends what the data sheet says.

 

Neil

 

p.s. I have cried out for years for a parallel eeprom with serial programming. As far as I can see, there isn't such an animal. It's a shame, as it would make life much easier in a number of ways. But your Pickit still wouldn't have the correct algorithm to load it - that's just life :)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

yvautrin wrote:
So, there is no piece of software

No.

 

This is not a pure software task - it needs both software and appropriate hardware.

 

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

barnacle wrote:
programming voltage ... and for an eeprom, you probably don't need it.

again, this is not an EEPROM!

 

You will need the programming voltage - 12.5V, as printed on the chip.

 

If you're trying to build your own hardware, you will need to study the datasheet - to see the precise voltage and timing requirements ...

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

I’d contend that sufficient electricity would erase it - permanently.