Engineering Nightmare: PCB Gone BadMore years ago than I'd care to count, I was a contract engineer designing computer and peripheral boards for embedded computing. Maybe some of the older engineers remember the STD (Standard) bus. This was around the time the IBM PC was just coming out.
Our systems still used CP/M and 8" floppy disks. At that time, you'd buy a separate board for each function; Z-80 CPU, boot ROM, DRAM, serial port, parallel printer port, clock, and so forth. Management, engineering and marketing what it is, I proposed putting everything on one standard 4" x 6" PCB. They loved it.
I came up with a design, and as was normal at that time, I built a wire-wrap version for hardware testing and software development. Wiring was point-to point, except for power and ground to the chips. The through-hole TTL logic, PALs and DRAM all had Vcc and Gnd wired to the corner pins of the chips and connected to the proto board's power and ground planes. Once I powered it up, everything came up fine, except the DRAM.
The design was just a compression of other technology we'd used on other boards with a couple extra bells & whistles. The DRAM was the most complicated part; the timing of the row & column address strobes (RAS & CAS) was critical and if the DRAM wasn't properly refreshed, it would lose data. We choose DRAM over simpler, static memory because DRAM was much cheaper.
I spent weeks trying to get the DRAM up and running. I swapped chips several times and adjusted the time delays. I enlisted the help of other engineers to look at the schematics and to take the board to see what they could find. Nothing. Maybe it was a bad connection or a short; that can happen with wire-wrapped circuitry. I had a technician build another board. Same thing. I was having nightmares about this product nearly every night.
About this time, the IBM PC was getting more popular and it was starting to suck up 64K DRAM from the market, making memory very expensive. Also, advances in manufacturing had just released 32Kb SRAM. And the prices were falling. Management was pushing for the product to go to market and with the memory pricing forecasts, agreed to let us abandon the DRAM change the design to SRAM. An additional advantage to our customers was that we could now battery-back the memory. So, customer’s logged data, machine recipes and other critical data wouldn't be lost when power went down.
I quickly "kludged" another piece of PCB to the sick DRAM board. Yanked the 8 DRAM chips out and wire-wrapped in the SRAM. It worked perfectly. We quickly taped up the PCB layout (before CAD) and sent it to our board house. The finished boards came in, worked great and we put it in production. Sales was thrilled that they had all the functions that their customers wanted on one board; especially the non-volatile memory. The product was a hit.
Sometime later, I was digging through my junk pile of prototypes and I spied the two failed wire wrap boards. Something had come to me in a dream/nightmare. I pulled open my data books. Sure enough, the TTL logic all had ground on pins 7 or 8, and VCC on pins 14 or 16. Same with the PAL. I checked the DRAM specifications. Yep, power and ground on the corners, too. Then, I looked again. They were REVERSED! The DRAM had power on pin 8 and ground on 16. That was why they didn't work. I can't imagine why the chips didn't get hot or smoked, but they never did. That was the solution. I drew & wired them backwards. Damn. A case of the DA, and nobody notice the error.
But, everyone was so happy with the change to SRAM, nobody cared. And, this became the biggest selling product up to that date. I guess everything worked out. It taught me to pay attention and RTFI.
Barry Steele – Seneca, South Carolina
Do you have a story to tell? Write us at [email protected] we would love to share it with our ever growing list of readers.