So I finally got around to using my last set of parts to build on my pre-castellated PCB, and I killed it. Seconds after applying power to the REX, a faint trail of smoke was visible rising up from the board. Dang!
A little background
The Tandy 100, like most machines of its day, ran all its logic circuits at 5 volts. Some parts in these older machines may have required additional supply voltages (12 volts was common, though some early RAMs needed -12 as well, and things like SID needed 9 sometimes… it was messy) but all the bus signals were 5 volts. Since then, 5 volts has become rather uncommon in logic parts, with 3.3 volts now being the most common voltage seen in both logic and power supply levels. The creates a bit of a problem when you want to integrate these older machines with modern upgrades built from newer components.
The REX deals with the 5-volt problem in several ways. The flash chip is actually a 5-volt part. Like the CPLD, it is old, obsolete, and no longer made, though you can still find supplies of them if you look a bit. The CPLD, while obsolete, is actually a 3.3-volt part but it’s I/O lines are 5-volt tolerant. This means you can connect it to the 5-volt data/address bus, but you must supply it with 3.3 volts in order for it to function properly. To get this voltage, there is a small linear regulator on the REX which creates 3.3 from the 5-volts supplied by the OPTROM socket on the Tandy.
Letting out the Magic Smoke
In testing my power socket, I was sure that had measured the proper 3.3 volts at the reference voltage point (one of the JTAG connections), but after my programming attempt, I got nothing. Switching to my ohmmeter, I measured a measly 2 ohms between the 3.3v pin and ground. This meant that the CPLD was attempting to pull 1.6 amps on the 3.3-volt line! (Ohm’s law) There was no way that puny 50mA regulator was going to handle that current, and thus, it gave up its ghost, slightly early for Halloween.
To try to figure out what went wrong, I broke out the hot air station and started de-populating the board, checking the resistance each time. None of the passives caused any change, nor did the regulator. Removing the CPLD, however, caused the resistance to go back to open-circuit. Just to be sure, I soldered the CPLD onto my remaining PCB from the original batch, and, sure enough, I measured 3 ohms this time. So, the new PCB wasn’t the problem. Somehow, I must have managed to kill the CPLD — either that or I got a dud. No way to tell.
So, from now on, I’m going to remember to check the resistance across the 3.3v line. I asked on the M100 mailing list, and another person measured ~11000 ohms across his, which seems reasonable given the datasheet’s power draw specs on the CPLD (~100 uA to ~1 mA, depending on activity).
So, I ordered a new set of parts. Hopefully the flash chip is okay since it’s not involved in the 3.3-volt rail. They should arrive today. In fact, I think I hear the mail truck!