Here's
the schematic for the column driver. The tieback diode in the 2803 isn't
shown. Presumably, it is floating. Our working hypothesis is that the
problem comes from column leakage. This is because the ghosting happens
across columns, rather than down rows. On ST:TNG, lamp 26 makes lamp 16
ghost, 36 ghosts 26 and so on. |
Here's
some scope traces. The upper signal is the row 6 logic drive. The lower
signal is the column drive at the playfield connector. The playfield is
disconnected. The timebase in 5ms/division. The bottom scale is
showing 18V, and the top trace is logic level at the row driver input. |
Here
it is with the playfield connected. You can see matrix switching noise.
The first two cycles, the lamps are off. You can see the same slow decay
of the column voltage. The third cycle, lamp 36 is on. Lamp 26
flickers because of the decay energy in column 2, and the row 6 pulldown.
|
After a chat with Ed Cheung, the nest step was to tie the column
line to ground with a 200 ohm resistor. This pulldown immediately cleans
up the column signal. The circuitry has - for practical purposes - zero
leakage, and the 10M resistance of the scope slowly pulls the line to
ground. The residual energy seen above now appears to be cross-coupling
in the wiring harness, insufficient to light an LED. However, the LEDs
still light from leakage currents.
|
With
the noise gone, we can now examine the timing more closely. This image
shows the column voltage on top, and the row pulldown below. You can
clearly see that the row transitions before the column is turned off.
The overlap is short: the timebase here is 25us per square. So this is
only 10us. |
Here's
the leading edge. here, you see the row turning on some microseconds
after the column transitions.
There's no win here. Switching the row and column sequence will move
the ghosting to the leading lamp.
Next step: code review! |