This story starts when I purchase an old video signal analyzer. A Tektronix VM-700A. This beauty, with 20kg of mass, is from 1991 more or less, and include an extra board for audio analysis or something like that.
Anyway, when I started it, an initializating test shows bad sectors on the audio RAM. It runs, but when it run a minute more or less, it restarts itself.
So, I removed the two boards of audio, and I found a pretty Motorola, and some SRAMs in DIP package.
There are two models: TC55465P-25 and MB81C75.
It's good to know that I'm not a lot into digital stuff, so I was pretty worried. I find the replacements, and change al of them costs around 40 dollars. Yeah, this machine costs me about 50, so it isn't an option.
So, I decided to make my second program on arduino. With a few copy-from-other-projects and the help from a 4chan user, I made it work.
It has an array of 16 outs. It stars to make a binary counting in them, so in each cicle increase by one.
In each cicle, I write in the ram (that has 4 bits in each word) 0000, 1111, 1010, 0101, 1100, 0011.
I think it is enough to test the full memory.
The program has two state LEDs. One says something went bad, and the other one says the chek is finished. If only the second LED is ON, the chip is OK.
It does not say wich address is bad (I don't think it is helpfull, if it is bad, I'll replace it).
It is slow as f***.
Really. I have it at my side, and each memory lasts at least 8 hour to be tested. Why? I don't know. As I said, I'm not into digital stuff, and it is my second project in Arduino.
The wiring is easy, each address pin has an output on the Arduino (It's an Arduino Mega), and that to all the other pins.
All the steps are explained on the code.
This code isn't the best, and I know, so if anyone can make improvements, you are invited to tell what can be enhanced. I'll be delighted to test it and upgrade the code.
I added an LCD display that shows the current number of test, and the status.
Well, I discovered a magic function in Arduino, the NOP, and thinking about speed of the Arduino, 16MHz isn't enough to saturate my SRAM chips. In fact, the delay isn't necessary, but I preffer to keep it. Now, instead of make a delay of 1uS between each operation, now I wait a NOP, making a more selective test.