DRAM Tester
Posted: Sun Sep 02, 2018 6:56 am
A 1983 Sage II 68000 computer I acquired last year was failing to boot with a RAM test error. Unfortunately the diagnostic only identified which of four 256K blocks was the first to fail. As there are 18 DRAM chips in each block it was not feasible to identify the bad chips(s) just by swapping them around. An internet search for a solution came up with a DRAM chip tester implemented on an Arduino. Using that as an example I implemented an equivalent DRAM tester in Oberon on an STM32 development board and within a few hours had identified nine bad chips and replaced them with good ones.
The attached example source code has been implemented on an STM32F767 Nucleo-144 board and uses the following connections:
Using a 16-pin ZIF socket mounted on Veroboard / stripboard, all of the connections (with the exception of PF13, Vdd and GND) line up directly with the corresponding pins on the Arduino-compatible connectors on the Nucleo board so only 4 jumper leads are required:
A slide switch is used to control the 5v connection to the chip. It only takes a few seconds to test each chip. Insert the chip in the socket, slide the switch to connect power to the chip and press the reset button. The green LED blinks a number of times corresponding to which of each of the four tests it is running. As soon as any test fails, the red led is lit continuously. If all tests pass the green LED is lit continuously.
The attached example source code has been implemented on an STM32F767 Nucleo-144 board and uses the following connections:
Using a 16-pin ZIF socket mounted on Veroboard / stripboard, all of the connections (with the exception of PF13, Vdd and GND) line up directly with the corresponding pins on the Arduino-compatible connectors on the Nucleo board so only 4 jumper leads are required:
A slide switch is used to control the 5v connection to the chip. It only takes a few seconds to test each chip. Insert the chip in the socket, slide the switch to connect power to the chip and press the reset button. The green LED blinks a number of times corresponding to which of each of the four tests it is running. As soon as any test fails, the red led is lit continuously. If all tests pass the green LED is lit continuously.