Unstable readings with 2764 EPROM and AVR

knowitall

Joined Jan 10, 2010
17
Back in the oldd days about 30 years ago, I built equipment that used 2716, then I went to Micro's (4748 ) that had the Eprom built in, after being out in the field , about 20 years I had some inquires explaining that the units were act ing erratic or not at all, I asked them to send the units to me, I removed the chips, erased them, re-burnt them ( with X 10 over print ) and they worked fine, I can't remember whether the data sheets, specified a life time, I dont think so, find a working computer ( the same kind ) and copy the known good data and re-burn the eprom.
sorry I can't give you a more direct ans. Good luck
 

Thread Starter

TripleOxygen

Joined Jun 29, 2009
8
Hi,

I've been busy last days, sorry for the delay.

I got 2 good news to share:

1. I did all the wiring again, cleaned the IC pins (it was a little oxidized), added the bypass capacitor with the 1uF tied to the power supply and the pull-up resistors. Now I get stable readings! It doesn't oscilate anymore, so every read yields the same byte. However, I got different results if I used pull-ups or pull-downs, like suggested by knowitall.
Here what happens with pull-up:


With pull-down:


Can the use of pull(down|up) cause this? It shouldn't, right?

2. I found someone selling exactly the same computer! He doesn't know whether it works or not, since he hasn't the power supply to test. How difficult is to create an +9 VDC / 500 mA nowadays? :) But I'll buy it anyway. If it at least has working EPROMs, I can give it a try and use it to copy to new ones. I'll order two 2764s tomorrow. I think the shop got both 2764 and 27C64. In case the 2764 is out-stock, can I use the "C" CMOS version?

@eblc1388

The 4040 was used just to drive the addresses and since the EPROM is outputting the data in the correct order (probably), it's working. Or can it alter something that would result in a corrupted output like I'm experiencing? (different power-level, ...)

Thanks everyone!
 

hgmjr

Joined Jan 28, 2005
9,027
I suggest you use pullups rather than pulldowns. The outputs from the NMOS memory device can sink 2 milliamps but it can only source 400 microamps. That is why you need pullups on the data lines rather than pulldowns. The pullups help insure that the high outputs are high enough to match the input high requirements of the CMOS inputs into your AVR.

hgmjr
 

hgmjr

Joined Jan 28, 2005
9,027
One way to tell that you are reading the memory device correctly is to find a section of the code that contains short snippets of text. If the text is readable then you probably have everything fine tuned.

hgmjr
 

eblc1388

Joined Nov 28, 2008
1,542
Here what happens with pull-up:


With pull-down:


Can the use of pull(down|up) cause this? It shouldn't, right?
Now that's an easy one to crack. :)

All the data difference in the two posted images are all due to changes in bit1 of the output. It is always HIGH with pullup and always LOW with pulldown.

It is clear as mud that bit1 output of 2764 is not reaching the AVR port, for whatever reason. So please check:

1. continuity between the 2764 bit1 pin and the AVR port pin
2. there is no low impedance on this connection to ground or +5V
3. If (1) & (2) are both good, then your chip had been fried.
 

atferrari

Joined Jan 6, 2004
4,771
Have you tried reducing the number of bytes you read to one or two to see if this reduce reads are consistent? hgmjr
Hola hgmjr,

I cannot see what is the goal of this test and in the case it "succeeds" what it would mean...

Sorry but it is not clear to me what you are looking for with it.
 
Last edited:

hgmjr

Joined Jan 28, 2005
9,027
My recommendation to reduce the number of addresses being read was aimed at decreasing the amount of data to be analyzed. It was also directed at making the time between test reads shorter.

Of course, the plan was to get a stable read of the small number of bytes and then followup by increasing the number of bytes being read until at last all of the bytes would be examined.

As it turns out, tripleoxygen had already done the experiment that I was suggesting.

The good news is that he appears to have cleaned up his circuit sufficiently so that he can probably proceed to read the entire memory device.

At this point I think he would benefit from implementing a checksum on the data he reads to help assist in confirming the contents of the memory.

hgmjr
 

Thread Starter

TripleOxygen

Joined Jun 29, 2009
8
Game over.
Like eblc1388 said, the pin D1 (2^1) it's not working. It seems that pin is always floating, so the pull-(up|down) drives it. I've checked connections, and they are OK.

Now that we got a reliable reading, despite the faulty pin, I've tried to read the other EPROM. Guess what? Pin D1 is also faulty! But this time, it's always LOW. I'm very lucky/unlucky - your choice :p - to have both fried in almost the same way.

Move on - the other computer arrived and it's working perfectly! This means I have good EPROMs to copy. So, since we got this far, could you guys please give me some answers about copying the EPROM? Here we go:

1) The EPROMs are 2764, can I use the 27C64 (CMOS) instead, if I can't get the NMOS version?

2) What about 2864/28C64? They are EEPROMs, so it's easier to me build a programmer and erase it in case I make any mistake. I don't own an UV eraser. It seems they are pin-compatible.

3) I have an 29EE010 laying around, can I somehow burn the computer ROM to it and use it just for testing purposes on my old computer? It's an 1 Mbit EEPROM, I could connect the upper address pins to ground and use just the first 64 Kbit (A0 - A12). This way I can check if it's just my EPROMs that are faulty, or there is something else wrong with my machine.

Thanks everyone for your time!
 

eblc1388

Joined Nov 28, 2008
1,542
I've tried to read the other EPROM. Guess what? Pin D1 is also faulty! But this time, it's always LOW. I'm very lucky/unlucky - your choice :p - to have both fried in almost the same way.
There is nothing to do with luck.

If the above data pin was connected to +5V while in use, that's exactly what you will get. All eproms share the same data bus. If there are 4 eproms on the data bus, most definitely all 4 would have sustained similar damages to this data bit output circuitry.
 

Thread Starter

TripleOxygen

Joined Jun 29, 2009
8
@hgmjr

I'll give these a try. What about using the first 0x2000 bytes of an 29EE010 EEPROM? Would that work?

@eblc1388

Yeah, how that happened (a short circuit of that specific data bus line to +5V, like you said) is a mystery, as no one ever touched inside or messed around with the circuit board of the computer. That is what "(un)lucky" is about. :p I wonder if the other ICs connected to the bus are also damaged...

Thanks!
 

hgmjr

Joined Jan 28, 2005
9,027
@hgmjr

I'll give these a try. What about using the first 0x2000 bytes of an 29EE010 EEPROM? Would that work?

Thanks!
The problem with using the 29EE010 is that it comes in a 32 pin dip package while the 2764 is a 28 pin dip package. You would need to come up with some 32 pin to 28 pin adaptor board.

hgmjr
 
Top