Rolling Horse Ranch
Technical Services

Firmware

With an academic background in electronics, I am a very competent programmer of embedded systems.  I have used in-circuit emulators, scopes and logic analyzers.  I have written firmware in assembler, C and FORTRAN.  I have designed and programmed test equipment, engine control units and computer peripherals for companies like Siemens, BMW and HP.

Project Descriptions

Most of the work I have performed is covered by non-disclosure agreements, so I am not able to give full details, especially of my more recent projects.  I will try to provide as much information as I am allowed.

DRAM Testing

One of the first projects I worked on involved the testing of 64 KB RAM chips.  The automated testers of the time provided adequate turn-around for 16 KB chips, but the higher capacity chips would make the time required to perform a test exceedingly long.  It was my job to build an extension to the tester which would allow the simultaneous testing of eight ICs at a time.  To further increase the testing throughput, the extension would use two banks of eight devices, allowing one bank to be tested while an operator loaded the other bank.

The tester, a Macrodata MD-104, was programmed to store various bit patterns in each location of the device under test (DUT).  My project was to take these patterns and distribute them to each of the eight 64 KB DUTs.  A pass/fail indicator was associated with each device, as was a numeric display recording the number of the pattern currently being used.  If a particular device failed a test pattern, the corresponding numeric display would retain the number of that pattern, but the device would still be tested with the remaining patterns.  If it failed further tests, the corresponding pattern numbers would be stored by the extension and could be retrieved for later analysis.

My solution was designed around an Intel 8085 processor, which handled the communication with the MD-104, the routing of the test patterns to each DUT and the tracking of each DUT's test result.  The 8085 was programmed in a mix of assembler and FORTRAN.  No operating system was used for this project; the 8085 was driven by interrupts.  The code handling the power-on reset and the interrupts was written in assembler, as well as the display driver.  FORTRAN code was used to handle the two-dimensional arrays which stored the test results for each device and pattern tested.  The project was completed in two months.