Intersil EPROM

Philip Pemberton classiccmp at
Sun Jun 14 17:01:32 CDT 2009

Dave McGuire wrote:
>   Seeing that, I think he's gonna be hard-pressed to find one that 
> will.  Are programming specs available for possible homebrewing?

The IM6654 datasheet is on DatasheetArchive (, first 
result in a search for "IM6654". All the relevant specs are on the second page 
of the PDF. They start off pretty normal:

- After manufacture or erasure (UV light, 2537 Angstroms, same as just about 
all UV-erasable chips) all bits are set high. Programming sets bits low.

- Vcc and Vdd are tied to +5V. This applies to both the "A" (10V) and "non-A" 

- A HIGH logic level is Vcc - 2V minimum; a LOW is Vss + 0.8V maximum.

- Set the address and data lines to the required values (i.e. set the address 
for the location you want to program, and put the data byte on the data bus). 
Keep the PROGRAM and Chip Select (/S) pins high.

- The address is latched by a falling edge on /E1.

There is, of course, an "odd part":

- After latching the address, pulse PROGRAM to -40V (that's NEGATIVE 40V) for 
20 milliseconds.

- Rise and fall times MUST NOT be faster than 5 microseconds. 10us is the 
recommended figure.

Probably not the easiest thing to homebrew, but not difficult either. There's 
a "Recommended Algorithm Flowchart" on the third page of the PDF -- what I've 
described above is just the 'core' of the algorithm. If you have a PDF 
aversion, here's the rest of it:

1. Read every address in the EPROM (with Vcc=5V). If any bit reads low 
(programmed), power down, erase the EPROM and start over.

2. Select location to be programmed.

3. Set levels on "Q" data lines.

4. Program, 20ms.

5. Reapply address.

6. Read/Verify.

7. If programmed correctly:
   7a. Program same location 4 more times
   7b. Read/Verify. OK?
     7ba. If OK, repeat from (2) until all addresses programmed.
     7bb. If not OK, reject device (FAIL).

8. If not programmed correctly:
   8a. Program, 20ms.
   8b. Read/Verify. OK?
     8ba. If OK, program same address 6 more times, verify, and GOTO (7b)
     8bb. If not OK, reject device (FAIL).

I'd class this as a small weekend project -- if you had a source of 40V (+/- 
2V), 5V, a couple of transistors and a small micro (a PIC or 8051 for 
instance), you could probably breadboard a programmer in a couple of hours and 
have the code running by noon Sunday (assuming you started on the Friday night).

I'd be very careful to check all the input/output waveforms before putting a 
chip in, though. Nothing worse than blowing up a rare EPROM, especially if 
it's your last working chip...

classiccmp at

More information about the cctech mailing list