simple switch matrix... not working

G

Gazz

Guest
Can someone have a look at a circuit i have built....

i have a usb input board for analog and digital inputs, Leo bodnar's BU0836
board,

i want to use the 32 switch inputs possible by using the switch matrix style
input,

http://www.leobodnar.com/products_/BU0836/ is the page with the board, and
about a quarter way down is the diagram for the matrix, a pretty standard
one, 6 columns, 6 rows, 36 diodes and the switches,

i have made a pcb from http://www.leonheller.com/David/David.pdf
he has shown the pcb layout too, http://www.leonheller.com/David/David.gif

my pcb looks exactly as shown, i put in the 36 diodes in the right way,
electrically it all works, switches are recognized by the windows joystick
tester,

however i am getting input ghosting, which the diodes are supposed to stop,

i.e. i close switch 1, close say switch 30, if i then close switch 7, all is
fine, but if i close switch 8, 7 and 8 are on, same for switch 9, 7 and 9
are on,
when i get to the next column/row, it does the same, from switch 13, if
switch 16 is on, switch 13 is too,

When i get to a certain point, i get 5 switch inputs on from 3 selected,

any ideas what I've done wrong?
the row and column connections are on 6 way headers, I've tried swapping the
header plugs over, so columns is in rows etc, still ghosting but reversed
inputs, i.e. 36 is 1,
reversing the plugs and no inputs detected, so the diodes are working, but
something is not right, i have no solder bridges or anything, tested all the
tracks with the multimeter, but I've done something wrong, unless the
circuit diagram is wrong.
 
On Feb 18, 6:08 am, "Gazz" <n...@spam.ta> wrote:
Can someone have a look at a circuit i have built....

i want to use the 32 switch inputs possible by using the switch matrix style
input,

my pcb looks exactly as shown, i put in the 36 diodes in the right way,
electrically it all works, switches are recognized by the windows joystick
tester,

however i am getting input ghosting, which the diodes are supposed to stop,
It's possible that the input pins of the controller have pullup
resistors
(this needs software enabling, in many cases); if that's true, the
ROW pins ought to be driven high (one at a time, of course) and the
COLUMN pins ought to be sensed. It's not in the diagram whether
this is the configuration, so that needs to be checked.

If pullup resistors aren't provided on-chip, or if the polarity is not
as
indicated, it won't work reliably; the 12-button input diagram
requires
that the ROW and COLUMN are configured as inputs with pullups.

Depending on the pullup resistor values, it could be beneficial to put
a ground plane between the switches and any high-current wiring.
 
On Feb 18, 1:51 pm, whit3rd <whit...@gmail.com> wrote:

ROW pins ought to be driven high (one at a time, of course) and the
COLUMN pins ought to be sensed.
Drat! I got the sign wrong, the ROW pins need to be driven LOW one
at a time... with the un-sensed ROW pins HIGH.
 
"whit3rd" <whit3rd@gmail.com> wrote in message
news:a8790e5c-4ac9-433f-8ce6-1c680722979f@w7g2000pre.googlegroups.com...
On Feb 18, 6:08 am, "Gazz" <n...@spam.ta> wrote:
Can someone have a look at a circuit i have built....

It's possible that the input pins of the controller have pullup
resistors
(this needs software enabling, in many cases); if that's true, the
ROW pins ought to be driven high (one at a time, of course) and the
COLUMN pins ought to be sensed. It's not in the diagram whether
this is the configuration, so that needs to be checked.

If pullup resistors aren't provided on-chip, or if the polarity is not
as
indicated, it won't work reliably; the 12-button input diagram
requires
that the ROW and COLUMN are configured as inputs with pullups.

Depending on the pullup resistor values, it could be beneficial to put
a ground plane between the switches and any high-current wiring.
there's no mention of any software switch to go between the 12 switch direct
and the 36 switch matrix mode, the 12 switch direct mode uses 1 switch pin
and an earth pin from the board,

he does recomend shielded cable for the analog inputs, and i have heard of
people getting phantom key presses when using long wires on the matrix, i
plan to use twisted pair wires to the switches, and keep them as short as
possible,

but i just can't figure out the matrix thing giving me ghosting, unless the
circuit diagram is wrong, but it's a very basic circuit, but unfortunately
even this one makes my head hurt figuring it out,
 
On Fri, 18 Feb 2011 14:08:52 -0000, "Gazz" <n@spam.ta> wrote:

Can someone have a look at a circuit i have built....

i have a usb input board for analog and digital inputs, Leo bodnar's BU0836
board,

i want to use the 32 switch inputs possible by using the switch matrix style
input,

http://www.leobodnar.com/products_/BU0836/ is the page with the board, and
about a quarter way down is the diagram for the matrix, a pretty standard
one, 6 columns, 6 rows, 36 diodes and the switches,

i have made a pcb from http://www.leonheller.com/David/David.pdf
he has shown the pcb layout too, http://www.leonheller.com/David/David.gif

my pcb looks exactly as shown, i put in the 36 diodes in the right way,
electrically it all works, switches are recognized by the windows joystick
tester,

however i am getting input ghosting, which the diodes are supposed to stop,

i.e. i close switch 1, close say switch 30, if i then close switch 7, all is
fine, but if i close switch 8, 7 and 8 are on, same for switch 9, 7 and 9
are on,
when i get to the next column/row, it does the same, from switch 13, if
switch 16 is on, switch 13 is too,

When i get to a certain point, i get 5 switch inputs on from 3 selected,

any ideas what I've done wrong?
the row and column connections are on 6 way headers, I've tried swapping the
header plugs over, so columns is in rows etc, still ghosting but reversed
inputs, i.e. 36 is 1,
reversing the plugs and no inputs detected, so the diodes are working, but
something is not right, i have no solder bridges or anything, tested all the
tracks with the multimeter, but I've done something wrong, unless the
circuit diagram is wrong.
---
Check the diodes for leakage?

---
JF
 
"John Fields" <jfields@austininstruments.com> wrote

Check the diodes for leakage?
i'm using 1N4148 signal diodes, did a simple test with my multimeter on it's
diode test function, 0.61 - 0.65 volt drop accross them in the correct
direction, showing zero the other way,

should i try a different test???
 
In article <ijoem0$h4e$1@news.eternal-september.org>,
n@spam.ta says...
"John Fields" <jfields@austininstruments.com> wrote

Check the diodes for leakage?

i'm using 1N4148 signal diodes, did a simple test with my multimeter on it's
diode test function, 0.61 - 0.65 volt drop accross them in the correct
direction, showing zero the other way,

should i try a different test???
Clip the black lead of your meter to a column
lead on your matrix. Clip the red lead to a row.
Push the button for that row/column, and see if
you get a reading. Repeat for each row/column.

If you get no reading, press all the other
buttons to see if you have your rows/cols mixed
up.

Reverse the leads and repeat, to locate
miswired/open diodes.

It's a bit time-consuming, but it should tell
you if the mechanics are right.


HTH
 
On Feb 19, 7:56 am, "Gazz" <n...@spam.ta> wrote:
"John Fields" <jfie...@austininstruments.com> wrote

Check the diodes for leakage?

i'm using 1N4148 signal diodes, did a simple test with my multimeter on it's
diode test function, 0.61 - 0.65 volt drop accross them in the correct
direction, showing zero the other way,

should i try a different test???
Are these glass encapsulated diodes sitting out on the work bench with
the lights on? Try turning off the ligths or covering up the diodes.

George H.
 
On Feb 19, 4:56 am, "Gazz" <n...@spam.ta> wrote:
"John Fields" <jfie...@austininstruments.com> wrote

Check the diodes for leakage?

i'm using 1N4148 signal diodes, did a simple test with my multimeter on it's
diode test function, 0.61 - 0.65 volt drop accross them in the correct
direction, showing zero the other way,
***showing ZERO voltage drop the other way? That would
be ... bad.

Assuming the diodes are good, it's still slightly possible
that the pullup resistors on the 'column' wires (which,
we presume, are enabled in the software) are somehow
inadequate to get prompt response. I'd try wiring some
modest pullup resistors to those six 'column' wires-
maybe 10k ohms to Vcc. Some CPU pullup sources
are intended for good battery life, and are very weak.
 

Welcome to EDABoard.com

Sponsor

Back
Top