| A direct-wired prototype, or the importance of ULA cooling |
| Miércoles, 05 de Diciembre de 2007 00:00 |
|
I have an, as I call it, all-socketed Spectrum, I mean, a standard issue 3B Spectrum, but with CPU, EOM, upper and lower memory, ULA, and some logic chips, all socketed. So, in the event of a hardware failure, I can replace the damaged component in seconds. For that reason, this Spectrum is the one I usually have for testing new hardware projects. So I removed all 4116 memory chips from it, and replaced with a SIMM socket, wired according to the diagram previously posted. This was the result.
Everything seemed to work fine. The Spectrum booted as always, and it was possible to type BASIC sentences and load programs. But after some time, strange garbage started to show on screen.
As time passed, the garbage covered the entire screen.
Suprisingly, the computer didn't hang. I even loaded a game and tried to play with it.
Fearing that the ULA could be damaged, I checked its temperature. It was as hot as usual, but when I did that, the garbage began to vanish. My finger was working like a heating element, taking heat from the ULA, and hence, cooling it only a bit, but seemed enough for the garbage to dissapear. I recorded a video showing this "weird" phenomenon.
Carefull analysis of what was happening led me to the conclusion that the ULA I was using had to have some timing bug, that became apparent when the chip was getting hot. After some research, I realized that there was indeed an ULA bug in the RAS signal, which had been solved on later PCB issues by delaying it with two inverters. The bug is present in the 6C001E-7 ULA series, which ARE NOT DESIGNED TO A ISSUE 3B PCB. Thus, it was my fault for using a wrong ULA type for that issue. Once I fitted the right one (6C001-6), the garbage didn't happen again. But for the sake of security, the new ULA has a heatsink glued, so it won't get that hot again. |





