While testing out a booster prototype I found that it refused to work with the 68HC000 CPU. I first thought that there was some problem with my PLD code. Later I had bypassed the PLD totally and hardwired the 68000 DIP socket to the PLCC socket. So my PCB was basically a DIP to PLCC adapter. Problem was, it just refused to work. Oddly though, a older TTL (IE original PLCC CPU) worked fine. To which point I blamed the 68HC000 CPU for being faulty.
Several CPU's later, and I couldn't figure it out. The motherboard and booster "adapter" worked fine with a TTL CPU. But adding in CMOS (HC) CPU refused to work. I decided to test those CPU's in my STE and they all worked fine. This made no sense at all. How could the CPUs test fine in my STE but not work in my simple adapter PCB ?!
I dug out a original V2 booster and it booted right up first time. With the HC CPU. So clearly the issue wasn't some compatibility issue with the CPU itself and the motherboard. I even tried a second motherboard and that behaved exactly the same. So the motherboard itself wasn't the problem. Just 2 motherboard refused to work with my HC CPU, but would work with the V2 booster which did use a HC CPU. Again, this made no sense.
So I took out the CPU from the V2 booster, it was known working setup of course, and put in another one of the HC CPU's I had been testing. The V2 booster did not boot up. I tried a few more CPU's.. booster wouldn't boot at all. At that point I tried the boosters original CPU (that worked) in my new V2 design and it did not boot, still.
I thought to go back to "square 1" and put back the known working CPU back into the original V2 booster to make sure I had not broke anything or had a bad connection. To my amazement, the booster refused to work! WTF is going on ?! I tried the original DIP CPU back in the motherboard and it booted right up. So clearly not a motherboard problem.
So now I had re-tested all the HC CPU's back in my STE and each one worked fine. So at this point I had assumed that I had managed to kill the V2 booster. Though that did not really add up since the boosters own CPU refused to work in a simple DIP to PLCC adapter. But wait it gets better! Placing the original TTL CPU into the V2 booster worked, and even worked in my DIP to PLCC adapter (which was the next gen V2 booster hacked that way). So clearly the CPU's were not faulty, The boosters were not faulty, but the CPU's refused to work in the boosters ?! The same CPU's had been used countless times for years in my booster projects! This all made no sense at all.
It was the weekend, I spend the weekends with my girlfriend where I ranted on about all this not making any sense. She suggested maybe the new CPU's are damaging the sockets somehow which would explain why the V2 booster, worked one moment, and refused to work after some CPU changes. Though this did not really make sense as to why the CPU's worked in the STE. But at least it was a new direction for me to think on.
As all my Atari stock was at her flat, I found out the old TTL 68000 CPU's and the newer HC CPU's as used in the STE boosters and said these are the CPU's they are identical. she looked at them and said they aint. Like, what ?! She noticed the HC CPU's pins were actually thinner and a slightly different shape! Odd I thought.. She also suggested again that maybe the new ones are damaging the sockets..
So I routed though some kits and dug out a socket from the blitter kit and let her look at those. I also thought, well, those CPU's work in the STE boosters, so I took a socket out of one of those kits as well. She looked at both sockets and both CPUs and noticed the HC CPU fits in one socket but not another. But the old CPU actually fit in both sockets.. like, WTF ?!
The sockets were slightly different. One socket had pins which were more '
\' shaped. The other socket pins were more bent, like 'Y' shaped, well, half the 'Y' shape that is. Basically not a straight pin. I thought the "slanted" pins would contact better if the CPU pins were bent. Though maybe it was the CPU pins on the newer HC CPU being thinner which for some reason did not like one particular socket, basically the slanted pin ones. Though this did not really make sense either.
She later found that the older CPU's fit fine in both sockets, but the newer CPU was a really tight fit in one socket, but not the other one. I looked into this and what I found next actually shocked me.
The HC CPU while it had thinner pins on the bottom, I would assume it was done to aid in SMT manufacturing. So the slated pin sockets would be contacting at a angle more on the bottom of the CPU pins. Which would make it seem a bit suspect if it would contact properly or not. Though oddly that wasn't the issue.. it gets better...
The HC CPU pins on the side are actually WIDER than the original CPU, so the contact area should be better on the 'Y' shaped pins. Though this did not fully explain things either..
I looked at my website at my guide to removing the STE CPU socked and found they were also the 'Y' type pins (or bent pins as I am just going to call them). So this was painting a picture that those slanted pin types are causing some problems. It would make sense since the older TTL types had wider pins and the bottom than the HC types and would contact better. So I thought I had finally found the problem.. only it wasn't actually that either.. and it gets better still...
The slated pin sockets have tiny plastic "spacers" between the pins. I assume just to keep them in position. What I never realised until today, is that those plastic parts actually slot in between the gaps on the CPU pins themselves. This doesn't sound like a big deal but it was actually...
The slanted pin sockets, the plastic spacers (as I call them) being thicker, and the HC CPU pins being wider (at the top) actually resulted in the plastic parts of the socket, pushing the pins inwards to the point where the CPU's would no longer make contact in the other PLCC sockets. Oddly the older TTL types had wider space at the top, so it would never matter for those, which is what I found.
At some point in all this, I found also that once a HC CPU was tried in a slanted pin socket, not only did the socket bend the CPU pins out of shape, but it also distorted the plastic spacers and did at some point cause the original TTL CPU's not to work either. At that point I thought I had killed my V2 booster or motherboard by placing a faulty CPU in it. but it just wasn't so. So now we have the answer to all this chaos!
The original CPU's (TTL type, or even GLUE, MMU chip etc) will work in either type of socket without problem. BUT, the HC CPU's will ONLY work in the 'Y' shaped (bent pin) type of sockets. If you try and place a HC CPU into the '\' shaped (slanted) pin sockets, it will damage the socket AND damage the CPU pins.
The slight "red herring" in all of this was all the CPU's worked in the original Atari PLCC sockets even though the CPU pins were actually bent and wouldn't work in any other socket! So lesson learned that newer sockets are not better than the ones in the 80s.
I guess its also annoying that now any sockets I buy, I have to really check they are the bent pin types before using them in any booster projects. Of course such sockets do not matter with older chips.
I think also there is some split blame here. I can blame the slanted pin sockets for bending the CPU pins, Or I can blame the HC CPU's for damaging the sockets! Or maybe this is just down to tolerances. Maybe the sockets are on the max tolerance along with the CPU. Just so happens that "both" of them being on tolerance extremes that they can actually damage each other. Madness!
Either way, I now know that all PLCC IC's have differences along with the PLCC sockets. The difference are so tiny at a first glance they would go un-noticed. Though I had to post about this as this drove me nuts for 2 days. Hard lesson learned... Never assume anything is as you think it is, and even a innocent PLCC socket can have tiny differences that can stop something from working and test your sanity..
Here are the images.. (click for larger image)
TOP IC - OLD TTL CPU
BOTTOM IC - NEW HC CPU
LEFT - OLD TTL CPU
RIGHT - NEW HC CPU
LEFT - OLD TTL CPU
RIGHT - NEW HC CPU
SLANTED '\' TYPE CONTACTS
BENT 'Y' TYPE CONTACTS
SPACER THICKNESS VARIATIONS