Just got back from Anchor Electronics in Santa Clara, buying a bunch of wire-wrap sockets, wrap-IDs, and a few chips. Together with other chips, DC-DC-converters, etc. I’ve ordered from Mouser and Digikey, I should have enough stuff to build the next version of the romsucker, which is what I use to capture traces and ROM dumps from the old calculators.
Wire-wrap seems to be an obsolescent technology, but it’s still useful for simple things that don’t need insanely high speed signals. Actually it’s not the frequency of square-wave signals that’s a problem, but rather the edge rate, and almost all modern chips produce really fast edges.
The old romsucker used an LT1045 hex level shifter, but the input impedance isn’t high enough. There are comparators that have better input impedance, but the input voltage swing exceeds their common mode voltage limits. The older calculators have some signals range from -12.5 to +6.5v (PMOS) or -6.5 to +12.5V (NMOS). The clocks have the full 17-19V swing, but the other signals do not.
Most comparators and op-amps have a very limited common mode range, often just a few volts. The LM311 comparator has a fairly wide range, but is quite slow. And most newer comparators and opamps won’t run on +/-18V like the old ones.
I’ll be using the MAX901 quad comparator, which runs on up to +/-5V supplies, and has a propogation delay of under 10 ns. That’s much faster than I need, but there’s not much middle ground between that and the old, slow comparators. The common-mode range is from the negative rail (-5V) to 2.25V below the positive rail (+2.75V). So the calculator signals will need to be attenuated by a factor of 4.6 or more.
My first thought was to use a simple two-resistor voltage divider on the inputs. Then the input impedance will be the sum of the resistor values. But by making the resistor values high, the RC time constant is very large, so it will slow the input edges far too much.
Mike suggested using a JFET input op-amp (very high input impedance) in an inverting configuration with a gain of 0.2, so that it acts as an attenuator and buffer. A little reading suggests that op-amps have serious stability issues below unity gain, so this approach might not work too well.
The best option seems to be to use a JFET input op-amp as a voltage follower (unity gain), followed by a two-resistor voltage divider. The output impedance of the op-amp is very low, so the voltage divider can use fairly small value resistors to avoid slowing the edges. The only problem with this approach is finding a fast enough op-amp that has a common-mode input range of +/-12.5V. Not easy, as most of the op-amps with CMR approaching or including the rails will only operate on lower supply voltages.
I turned up the TI TLE2074 “Excallibur” quad op-amp. It’s fast and has high input impedance. The CMR only goes to 4.1V above the negative rail. However, it can be run on up to +/-19V supplies. If I use -18V for the negative rail, -12.5V will be well within spec. Before I only had +/-15V supplies (from a dual-output DC/DC converter), so I ordered two +/-12V converters. The outputs are floating with regard to the inputs, so I can use the pair as a +/-24V supply, and use 7818 and 7918 three-terminal regulators for the power for the TLE2074.
This is a lot more hassle than I expected. In the old days there were interface circuits specifically made for interfacing MOS to TTL and vice versa, but those are long since obsolete, and weren’t as flexible as I need anyhow.
On the new romsucker, there will be 16 input channels. All the comparator thresholds will be adjustable via DAC outputs. The comparator inputs will all go into a PIC so that some processing can be done in the romsucker. This will eventually be needed in order to dump the ROMs of the first and second generation calculators, because the romsucker will have to generate address bits and drive them on the serial bus with the right timing and PMOS (or NMOS) levels.
Once the new romsucker is working, I’ll be able to capture traces from a real HP-25 to find out why the logarithmic and exponential functions aren’t working correctly in Nonpareil.

No Responses to “New ROMsucker”
Please Wait
Leave a Reply