Intermittent Memory Errors

Discussions about Sinclair ZX80 and ZX81 Hardware
Post Reply
User avatar
TMAOne
Posts: 212
Joined: Thu Aug 16, 2012 6:56 pm
Location: Waterloo, Ontario, Canada

Intermittent Memory Errors

Post by TMAOne »

My one surviving RAM pack has failed on me. So, thought I, this is an excellent opportunity to test Pokemon's ingeniously designed chip test circuit. It originally appeared in this thread:
viewtopic.php?f=7&t=923
but to save you time I will summarize and repost it here.

The situation is this. I want to debug and repair a ZX81 16K RAM expansion pack. (Why? I don't know. I have done on-board memory expansion mods several times, and the result is vastly superior to the "old-fashioned" way. I'm guess I'm just stubborn.) Anyway, the culprit is likely one of the 8x 4116 RAM chips (1 bit x 16K), or, the supply voltages to those same spooky chips. (In this case the supply voltages are fine.)

What the test circuit does is remap the 16K expansion pack to different addresses, and allow the user to load and execute a program in the native 1 or 2K of the ZX81/Timex motherboard. A little program then POKEs 0 and 255 to each memory location of the 16K RAM pack, PEEKing back the results. In most cases this will determine the failed chip right away. If you put zeros and get back 4's, for example, you know D2 is bad. Replace the chip according to this diagram, and avoid the trial-and-error method.
Bits Identified.jpg
(246.15 KiB) Downloaded 431 times
That's the theory. About a year ago I tested it with a working RAM pack and marched the whole address space successfully.

So here's my situation. This same RAM pack has failed. The computer won't boot with it in place. Installing the test circuit and my little BASIC program, and marching the 16K, I get a few sporadic errors, not consistent errors. This is a surprise to me.

At first errors pointed to one chip or another, but to make a long story short I suspected something else was wrong, and to eliminate the unknowns all 8 RAM chips have been removed, socketed, and replaced with brand-new chips. The wire bridge has also been replaced, as it was getting frail with fatigue. The RAM chips are not the source of this problem.

Testing 16K bytes, each bit OFF and then each bit ON, I got a total of 7 individual bit errors, an error rate of .005% What gives? I thought computers were supposed to be consistent. :lol:

Does anyone have any ideas how such a goofy error rate could come about?
Attachments
ZX81MEM1 - Project.pdf
Chip Test Circuit
(12.75 KiB) Downloaded 143 times
User avatar
1024MAK
Posts: 5118
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: Intermittent Memory Errors

Post by 1024MAK »

What kind of errors? details please ;)

Could be a refresh problem, or a multiplexer chip problem, or (I'm sure I can think of a few more...).

And I take it you have cleaned the edge-connector?

Mark
ZX81 Variations
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp

:!: Standby alert :!:
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb :!:
Looking forward to summer later in the year.
User avatar
TMAOne
Posts: 212
Joined: Thu Aug 16, 2012 6:56 pm
Location: Waterloo, Ontario, Canada

Re: Intermittent Memory Errors

Post by TMAOne »

1024MAK wrote:What kind of errors? details please ;)
For example,
Poke 0, Peek 4 (bit stuck on 1 at D2)
Poke 255, Peek 127 (bit stuck on 0 at D7)
Poke 255, Peek 254 (bit stuck on 0 at D0)
etc.

The edge connector is freshly tinned with a thin layer of solder and the pack has been reseated several times.

I modified the routine to retest the same byte if it gets an error. It seems the error does not repeat. The program simply marches on until the next passing neutrino collides with its karma.
Last edited by TMAOne on Tue Apr 08, 2014 6:14 pm, edited 1 time in total.
User avatar
PokeMon
Posts: 2264
Joined: Sat Sep 17, 2011 6:48 pm

Re: Intermittent Memory Errors

Post by PokeMon »

In my opinion its the (internal) power supply. ;)
Internal there are +12V and -5V generated which are probably in reality very far from it due the poor design.
Maybe replacing the corresponding capacitors or transistors could help.
You will find a schematic here somewhere.
User avatar
TMAOne
Posts: 212
Joined: Thu Aug 16, 2012 6:56 pm
Location: Waterloo, Ontario, Canada

Re: Intermittent Memory Errors

Post by TMAOne »

The voltages are correct, and actually pretty close to the specified -5V, +5V, and +12V, which is amazing considering how they are obtained.

(I do have 2 other packs with voltage problems that I have not been able to fix, despite my masochistic attempts to replace every associated part.)

Here's some other weirdness. I have a ULA which functions passably well but puts spurious characters on the screen. I use this ULA in my case-less test motherboard, and have learned to ignore the extra characters. The chip test circuit works with this ULA, but I find when I replace it with a different, "fully-functional" ULA, I get only high values back from my testing. What the hey? I've made the substitution twice and gotten the same results both times.

I think I must have been evil in a former life somewhere,...
IMAG0001.JPG
(446.16 KiB) Downloaded 394 times
gozzo
Posts: 452
Joined: Fri Jul 08, 2011 8:52 pm

Re: Intermittent Memory Errors

Post by gozzo »

If you haven't already done so, check for ripple/ 'mush' on all the supply lines...I have had trouble with noisy/oscillating zeners that otherwise give the correct DC level causing trouble in other equipment!
User avatar
TMAOne
Posts: 212
Joined: Thu Aug 16, 2012 6:56 pm
Location: Waterloo, Ontario, Canada

Re: Intermittent Memory Errors

Post by TMAOne »

Thanks gozzo.

This is so weird.

I replaced both the 5V1 and 12V zener diodes--no difference.
Then the voltages went south on me me. So I replaced the transistor. Voltages came back on line, but the behavior was unchanged.
The -5V is pretty clean, but the +12V still had a fair amount of ripple, so I replaced the 100uF capacitor. That seemed to clean it up some.

With the chip test circuit and the "clean" ULA, I get all high values from every bit every time, regardless of what was written.
With the chip test circuit and the "working but with superfluous characters" ULA, I now get a clean run of the entire 16K address space occupied by the RAM pack. Hoo-ray!

So,... try booting with the RAM pack normally.
With the "noisy" ULA, it boots. (Another hoo-ray.)
With the "clean" ULA, no boot.

So PokeMon and gozzo, you were right about shaky voltages being the culprit. The pack now seems to be working, albeit with only one ULA.

I really don't need to figure this out--I've already converted this board to 16K on the mother anyway. I just wonder what's going on with the ULA thing.

P.S. I replaced the 7805 on the mother just in case. No difference.
gozzo
Posts: 452
Joined: Fri Jul 08, 2011 8:52 pm

Re: Intermittent Memory Errors

Post by gozzo »

Weird!
gozzo
Posts: 452
Joined: Fri Jul 08, 2011 8:52 pm

Re: Intermittent Memory Errors

Post by gozzo »

Might be best to change ALL of those electrolytics, just in case...after 30 or so years, they have probably dried up a bit... at least they don't suffer from the 'capacitor plague' that has infested a lot of PC motherboards and other stuff in recent years! ;) :D
Post Reply