Updating a 1980s circuit board design

Thread Starter

metermannd

Joined Oct 25, 2020
343
I've got a little project and I could use a bit of help.

I have an old load management unit that has the option to add an external I/O and display board to convert it into a portable testing unit, and I was able to locate and borrow one of these portable test units long enough to reverse-engineer both add-on boards and make a schematic of same.

I'd like to make an SMT version of the add-on board(s) and possibly update the circuit to eliminate the need for the 12V supply (driving the LED displays). However, a couple of the ICs used, in particular the 8279 display / keyboard driver and the two HM-6561 RAM ICs (which are a puny 128 nybbles each!) may be hard to get new these days, and I wonder if something like this could be adapted to an Arduino controller?

There are four connectors on the combined boards: One for the 4x4 keyboard matrix, one for the external connection to the unit, and two to plug in where the 6561 RAMs reside on the unit's CPU board (one connector provides the address, lower nybble, and control lines, the second one provides the upper nybble).

I've attached a copy of the schematic and the data sheet for the 6561 RAM ICs. I figure that whatever I end up using should mimic the timing of the 6561s, hence the data sheet.
 

Attachments

absf

Joined Dec 29, 2010
1,968
Is the processor using the 8085 MPU?

The HM6561 are actually 256x4 cmos RAM with A7 tied low. SO only half of the ram is used. Two chips added up to 256 bytes of memory and can be replaced with a 6116 2Kx8 RAM.

Allen
 

ronsimpson

Joined Oct 7, 2019
2,988
Do you have a way to read back the program? so you can put it in a new board.

The big question; do you want to build using old parts, or do you want to start over.
If you start over you need to know exactly what the board does.

I can not find the board I was looking for but this is close. There is a LCD display to read out the numbers. (replace the 7-segment display) There is a keypad. A group of red LEDs. If starting new works, there are number of boards like on the market. I am using a board that uses a TV or monitor for a display and LEDs. It will need a mouse or keyboard to input data.

1603660800636.png
Are you good at hardware or software?
--edited--
Here is a version with a LCD display to replace the 7-segment displays and the LEDs.
1603661277289.png
 

Thread Starter

metermannd

Joined Oct 25, 2020
343
I pretty much want to start over with a fresh design. I figure something like an Arduino could take over the function of the 8279 and most of the glue logic.

The remote terminal has the RAM soldered to the processor board, but in the portable tester, the RAM ICs are replaced by a pair of DIP sockets (which then accommodate a pair of ribbon cables) to carry the 5V and signals to the add-on board, and the only other connection from the remote side of the unit is 12V from the power supply for LED / display power.

So, from the main unit's view, the add-on boards are indistinguishable from the RAM chips otherwise normally soldered in place. This add-on board basically just takes certain stimuli from the UUT and keyboard input to edit the RAM contents, which is then interpreted by the processor board.
 

Thread Starter

metermannd

Joined Oct 25, 2020
343
As for being good at hardware / software, I know the basics of software design (I messed around with machine code back in my C64 days), and I work as an electronic technician, and have built test fixtures in the past, so I know just a little bit about hardware design as well.

Work has been slow, and I think I've gone a bit stagnant, so was looking at this as a way to help brush up on and make a little use of some of my skills.
 

Thread Starter

metermannd

Joined Oct 25, 2020
343
Looking at switching in the 6116 RAM suggested versus the original 6561 RAM, I see a bit of a hiccup, and want to make sure I have this right.

The 6561 has four control lines: ~E (1MHz), ~S1 (chip select generated within the add-on board), ~S2 (chip select brought over from the processor board), and ~W (R/W line).
The 6116 has but three control lines: ~CS (chip select), ~OE (output enable), and ~WE (write enable).

So, it looks like I run the ~E line to ~OE, ~W to ~RW, and feed S1 and S2 through an OR gate and tie it to ~CS, right?
 

ronsimpson

Joined Oct 7, 2019
2,988
Found the board I was looking for. I am not promoting this board, just saying it does much of what you want.
There is a display top right. LEDs and buttons. The bread board area will allow for modifications.
1603685198864.png
I worked on 6801 computer boards in the 1980s and all those parts can be in one IC now. Little boards like below have 1000x more memory and more IO and more speed. If you have to rewrite the code any way then move up to some thing new.
1603685611097.png
 

Thread Starter

metermannd

Joined Oct 25, 2020
343
I'll definitely check that board out.

I think my next step is to work out exactly how the glue logic section emanating from the 74LS138 at U13 works, so I know how much Arduino I need.
 

MrChips

Joined Oct 2, 2009
30,708
If you go with a new MCU (microcontroller) you will not need external memory and glue chips. MCUs are all-in-one devices that can do practically almost everything that is needed.

What you need to do is write out the complete functionality of your unit and do a total redesign of the unit with new components.
 

ronsimpson

Joined Oct 7, 2019
2,988
Yes, what MrChips said.
Now days the "CPU" includes all the memory you will need and more. All the input/output you need will be on the same part.

Here is an example of the hardware. Click on the picture to see better. Most of the hardware is done with out soldering. It looks like your would use 1/2 of the in_out/output pins. About 1/20 of the memory. The display I chose is 20x4 characters so way more than what you need to replace the LED display. The Key Board you can get already built.
1603720385839.png
 

Thread Starter

metermannd

Joined Oct 25, 2020
343
Definitely looks like Arduino is the way to go.
I've already peeled the glue logic section out to a separate document so I can start working on a truth table etc.
It seems the questions I have from this point may be better asked on the Arduino forum, but will probably have other questions later... one I do have is how small commercially available LCDs get, as all the displays do is show the current test number and the data (5 data digits + checksum digit).
I appreciate the suggestions / questions thus far.
 

sagor

Joined Mar 10, 2019
903
Looking at switching in the 6116 RAM suggested versus the original 6561 RAM, I see a bit of a hiccup, and want to make sure I have this right.

The 6561 has four control lines: ~E (1MHz), ~S1 (chip select generated within the add-on board), ~S2 (chip select brought over from the processor board), and ~W (R/W line).
The 6116 has but three control lines: ~CS (chip select), ~OE (output enable), and ~WE (write enable).

So, it looks like I run the ~E line to ~OE, ~W to ~RW, and feed S1 and S2 through an OR gate and tie it to ~CS, right?
Careful about the S1/S2 lines. Looks like S1 is held high all the time and S2 is the ~CS. Otherwise, correct with the rest of your assumptions, I think... Not sure if one can toggle ~OE at 1MHz however? The ~OE has a cycle time of 40nS for the faster chips, which should be ok.

EDIT: Correction, U12A does pull that S1 line low at times, based on address. So, if the original ram only becomes active with both S1 and S2 low, you would have to use an inverted AND type of gate, both lines have to be low to set ~CS low?
 

ronsimpson

Joined Oct 7, 2019
2,988
one I do have is how small commercially available LCDs get, as all the displays do is show the current test number and the data (5 data digits + checksum digit).
Those LCD displays do not do graphics (not well) They are built for numbers and letters. I have 1x16 and 1x8 and 2x16 and 4x16. If you pick one and then later change you mind it is easy.
In my last project I use the top line for "current test number" and "Date". On the second line I display some information that I realized would be of great help. Then the last two lines I use to help debug the project and would not be used after the software is working well. "testing", "no errors", "5" Example: first thing is to get the keyboard working so when a key is pushed, display the key number. Now that the KB software is working remove from the display. Great help in finding problems.
---------------------
Your LED 7-segment displays need to be written to 100 times a second. It is some hard code to keep the display working. The LCD code is easy in that once written to it keeps working with out constant CPU help.
\1603729951066.png
Here is an example of a 4 line display where they used the top 3 lines to make big numbers.
1603730095388.png
 

Thread Starter

metermannd

Joined Oct 25, 2020
343
I'm thinking of a 4x20 after all - left side would have "Test No.", then "XX:YYYYYY", then "STAT:____" (PASS or NOGO), and when needed, last line would flash "INSTALL". Right side would have LD A:____ through LD D:____ (blank, PASS, or NOGO), and which would allow me to completely eliminate the 7-segment and LEDs. The board size (approx. 4" x 7") means the Arduino goes on the back and the display / keyboard / connectors on the front.
 

djsfantasi

Joined Apr 11, 2010
9,156
Your LED 7-segment displays need to be written to 100 times a second. It is some hard code to keep the display working. The LCD code is easy in that once written to it keeps working with out constant CPU help.
I’d pick an LCD display with a backpack (coprocessor that handles the display.) The Arduino library for your device will process the LCD updates in the background. All your code needs to do is initialize the backpack (with one library call) and write data to the display. Maintaining that data 100 times per second or whatever, is done by the library code.

The advantage to the Arduino is the large collection of device libraries that standardize typical maintenance functions to run in the background. All that is presented to the designer are the functions desired by the programmer. While it may mask some functionality, it simplifies development for the beginner. Learning the intricacies of a device are deferred until they are needed. It doesn’t prevent low level coding.
 

Thread Starter

metermannd

Joined Oct 25, 2020
343
On U11B, the 74LS375 latch going to the 8279 clock... do I understand correct that it just introduces a propagation delay into that line and nothing else?
 

Thread Starter

metermannd

Joined Oct 25, 2020
343
Okay. I'm trying to strike that line between what needs to remain in the design and what would be replicated virtually within the Arduino.

One sticking point now is finding a convenient point on the assembly from which I can pick off power for the Arduino, as it looks like I won't be able to just use the 5V rail available through the RAM sockets. One of the two 12V supplies does come up to a panel that will be beneath the Arduino panel, but I need to see how much load is on it, or if I need to use the other 12V supply as is done in the original design.
 
Top