Bug of solenoids SYSTEM 80A
Random control of the solenoids
CPU board, design and reviews
On the CPU board, the section dealing with solenoid and sound control is surprisingly complex. A simple study of the diagram is enough to notice the heaviness of the solution implemented, with multiple signal inversions and outputs that are not very consistent with the use of a separate driver card. The result is complex, inefficient, prone to breakdowns.
And if that wasn't enough, we also discovered that the software driver for this part was particularly poorly written. This results in anomalies, admittedly unremarkable at first sight, but which can turn out to be troublesome if one wishes to use these outputs for extensions.
Basic principle of operation
Port A of the 6532 U6 is used to activate two groups of solenoids, through a 74LS139 decoder.
The outputs are enabled by two signals 1G and 2G. We also notice the presence of a 7404 on the A/B inputs on 74LS139.
Theoretical piloting and bug
In principle, when driving the A port of the 6532, there is no guarantee that all the signals switch at exactly the same instant. We can actually see differences of a few ns depending on the pins.
On the CPU board, the use of the 7404 also induces an additional delay of a few ns (sometimes a few tens of ns) on the A/B inputs. It is therefore obvious that the A/B and G signals are not presented at the same time to the 74LS139.
Good practice is to first ensure that the 1G/2G inputs are not active, then present the solenoid selection on A/B, and finally activate the 1G/2G output.
Unfortunately, the programmers have absolutely not taken this constraint into account and are piloting port A all at once! When you do this, you authorize the outputs of the 74LS139 (via the 1G/2G pins) while the inputs are not yet stabilized. As a result, from time to time, we find a little anything on these releases!
By using a fast logic analyzer, it is very easy to highlight these spurious impulses.
Consequences and fix
Practically, this bug often goes unnoticed, because the parasitic pulses are extremely short. A pulse of a few ns is absolutely not visible and is not enough to activate a coil.
On the other hand, if it is desired to reuse the outputs to control an electronic module, these micro-pulses are perfectly detected and can cause malfunctions.