DRAM Tester

Download pre-release library modules and new examples to use with Astrobe for Cortex-M. Forum members can also upload their own source code examples.
Post Reply
cfbsoftware
Site Admin
Posts: 493
Joined: Fri Dec 31, 2010 12:30 pm
Contact:

DRAM Tester

Post by cfbsoftware » 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:
DRAM4164.jpg
DRAM4164.jpg (30.84 KiB) Viewed 21999 times
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:
Nucleo144.jpg
Nucleo144.jpg (71.04000000000001 KiB) Viewed 21995 times
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.
Attachments
DramTest.zip
Dramtest.mod source code
(2.11 KiB) Downloaded 1407 times

cfbsoftware
Site Admin
Posts: 493
Joined: Fri Dec 31, 2010 12:30 pm
Contact:

Re: DRAM Tester

Post by cfbsoftware » Sat Oct 27, 2018 11:13 am

The Sage was still failing intermittently so I have now added a couple more tests (Walking Zero and Walking One) to detect if any of the address lines are faulty. This adds about 20 seconds to each test but it was worth it as it identified a further eight faulty DRAM chips. The latest version of the source code is now included as a standard example with all editions of v7.0 Astrobe for Cortex-M3, M4 and M7. It is designed to run on all the STM32 Nucleo-144 boards included in the list of supported development boards.
Last edited by cfbsoftware on Mon Mar 18, 2019 11:07 pm, edited 1 time in total.
Reason: The latest version of this source code example is now included with v7.0 Astrobe for Cortex-M3, M4 and M7.

Post Reply