If I was working on it, I'd want to start by reading the part number
off thekeyboardencoder IC. This is an example of an encoder IC.
This datasheet is not as complete as I would like, but it should give some
idea how it works.
http://web.archive.org/web/20010613141313/www.semtech.com/pdf/sysmgmt...
Thekeysare arranged as a matrix of wires (row and column wires). At any
one time, most of the column lines are open circuit, except for one column
line driving to ground. That means the column lines have no "drive to logic 1"
capability. They either "drive to logic 0" or are open circuit.
The row lines are inputs.
There are some external resistors tied to the lines. If nokeyson a column
are closed, then all the row signals will be pulled to logic 1 by the resistors.
If a single key is pressed, it joins a column line to a row input. If that column line
is currently being scanned (driven to logic 0), then the row input will see
a logic zero as well. So seeing a logic zero, means the key is active or closed.
So that describes a bit about how thekeyboardmatrix is scanned. Thekeyboard
encoder chip "debounces" the key, and only declares a key closure, if the
key remains closed for at least two scans of the keyboards (roughly).
Now, this article describes some additional components that can be added.
See "Getting Rid Of Ghosting and Masking" on page 8, where a switching diode
has been added for each and every keyswitch on thekeyboard. The diodes are
added, when you want a "deluxe"keyboardsupporting N-key rollover. N-key
rollover is preferred for gaming applications, where the user can be pressing
a number ofkeysat the same time. The diodes solve the "ghosting" problem,
although at the cost of adding $3-$5 worth of diodes perkeyboard. The thresholding
on the CMOS circuit must be such, that it can handle the slightly higher input
voltage of a logic 0, caused by the diodes in the circuit.
http://www.dribin.org/dave/keyboard/keyboard.pdf
If you can find the datasheet for the main chip, you can get the table
of key mappings, which may help you explain why those particularkeysare affected. They could all be members of a group experiencing
"ghosting", meaning thekeysare failing in the closed position,
and thekeyboardcontroller has "locked them out" to prevent them
from interfering. That would not explain though, why you need to
"discharge" the circuit. Discharging a circuit to restore operation,
is something you might do if encountering CMOS latchup. But in this
particular circuit and application, I don't see a reason for that
to happen. And in any case, I don't see how you could add any components
to the circuit to actually fix it.
To test the PCB of thekeyboard, I'd use a multimeter. I'd set it to
a low power ohms range (where the circuit will not apply enough
voltage to forward bias a diode). Using the meter, I'd test for
shorting between rows or columns or the like. The test is potentially
limited in sensitivity, by the pullup resistors.
I notice in the Dell C600 documentation, they mention the presence
of "diagnostic software". Perhaps you could run that software,
and check for any error codes related to thekeyboard. Thekeyboard
has internal status information, and if the Dell diagnostic software
can extract that status information, perhaps it can detect a
"stuck key" or "ghost key" problem. And that might give you more
clues as to the source of the problem.
Paul