Maker Pro
Maker Pro

Trouble with 4x4 Telephone Keypad

J

Jack// ani

Jan 1, 1970
0
Hi all,

I'm making a 4x4 keypad for a DTMF dialer using on/off tactile
switch. Problem is Row and Column has internal pullup resistors, so
that to generate a tone you have to short the corresponding Row/Column
and pull it down to ground. Before this I have experienced with simple
keypad where no ground is required, I'm totally confused as how to
proceed. Please help me.

Thanks in advance
 
R

Rich Webb

Jan 1, 1970
0
Hi all,

I'm making a 4x4 keypad for a DTMF dialer using on/off tactile
switch. Problem is Row and Column has internal pullup resistors, so
that to generate a tone you have to short the corresponding Row/Column
and pull it down to ground. Before this I have experienced with simple
keypad where no ground is required, I'm totally confused as how to
proceed. Please help me.

Typically you'd hook up either the row or column pins to a 4-bit port
that is normally outputting a "high" on each pin. Hook the remaining 4
bits to 4 input pins.

Pull one of the output pins down to "low" and read all of the input
bits. If one of the bits is also low, then that row-column corresponds
to the key that is pressed.

A complication: If you are driving, say, columns with the four output
bits, consider that if two keys are pressed in the same row then you'll
have a direct path between an output pin at logic high and one at logic
low. This is generally A Bad Thing. Add diodes or current-limiting
resistors on the output pins. Alternately, you may be able to flip the
"unused" column drivers over to an input state and set only one to be an
output at a time.

And the usual issues with key bounce and multiple simultaneous key
presses.
 
L

Lord Garth

Jan 1, 1970
0
Jack// ani said:
Hi all,

I'm making a 4x4 keypad for a DTMF dialer using on/off tactile
switch. Problem is Row and Column has internal pullup resistors, so
that to generate a tone you have to short the corresponding Row/Column
and pull it down to ground. Before this I have experienced with simple
keypad where no ground is required, I'm totally confused as how to
proceed. Please help me.

Thanks in advance

You need a DTMF chip that can have its keypad inputs grounded to
activate. The MK5089 was such a chip. Most dialers today use
row and column inputs in a 2 of 7 or 2 of 8 arrangement. Your
row column keypad should be fine...can you simply not connect the
pull-up resistors? Any link to the keypad manufacturer?
 
J

John Fields

Jan 1, 1970
0
Hi all,

I'm making a 4x4 keypad for a DTMF dialer using on/off tactile
switch. Problem is Row and Column has internal pullup resistors, so
that to generate a tone you have to short the corresponding Row/Column
and pull it down to ground. Before this I have experienced with simple
keypad where no ground is required, I'm totally confused as how to
proceed. Please help me.

---
Assuming that the pullups are internal to the dialer you can do this:


+V
|
+-----+-----+-----+-----+
| | | | |
[10K] [10K] [10K] [10K] [30K]
| | | | |
+--[10K]--1-----2-----3-----A---------|-\ __
| | | | | | | >------>R1
| | | | | +---|+/
| | | | | |
+--[10K]--4-----5-----6-----B---------|-\ __
| | | | | | | >------>R2
| | | | | +---|+/
| | | | | |
+--[10K]--7-----8-----9-----C---------|-\ __
| | | | | | | >------>R3
| | | | | +---|+/
| | | | | |
+--[10K]--*-----0-----#-----D---------|-\ __
| | | | | | | >------>R4
GND | | | | +---|+/
| | | | |
| | | | [10K]
| | | | |
| | | | GND
| | | |
| | | | +V
| | | | |
| | | | [10K]
| | | | |
| | | +---------|+\ __
| | | | | >------>C4
| | | +---|-/
| | | |
| | +---------------|+\ __
| | | | >------>C3
| | +---|-/
| | |
| +---------------------|+\ __
| | | >------>C2
| +---|-/
| |
+---------------------------|+\ __
| | >------>C1
+---|-/
|
[30K]
_ _
The comparators are LM339s, the Rs and Cs are the row and column
outputs to your dialer, and 1,2,3...D are the crosspoints of your
switches.
 
J

John Fields

Jan 1, 1970
0
---
Somehow, (my fault) the schematic and text posted slightly garbled.
They should look like this:

+V
|
+-----+-----+-----+-----+
| | | | |
[10K] [10K] [10K] [10K] [30K]
| | | | |
+--[10K]--1-----2-----3-----A---------|-\ __
| | | | | | | >------>R1
| | | | | +---|+/
| | | | | |
+--[10K]--4-----5-----6-----B---------|-\ __
| | | | | | | >------>R2
| | | | | +---|+/
| | | | | |
+--[10K]--7-----8-----9-----C---------|-\ __
| | | | | | | >------>R3
| | | | | +---|+/
| | | | | |
+--[10K]--*-----0-----#-----D---------|-\ __
| | | | | | | >------>R4
GND | | | | +---|+/
| | | | |
| | | | [10K]
| | | | |
| | | | GND
| | | |
| | | | +V
| | | | |
| | | | [10K]
| | | | |
| | | +---------|+\ __
| | | | | >------>C4
| | | +---|-/
| | | |
| | +---------------|+\ __
| | | | >------>C3
| | +---|-/
| | |
| +---------------------|+\ __
| | | >------>C2
| +---|-/
| |
+---------------------------|+\ __
| | >------>C1
+---|-/
|
[30K]
|
GND
_ _
The comparators are LM339s, the Rs and Cs are the row and column
outputs to your dialer, and 1,2,3...D are the crosspoints of your
switches.
 
J

Jack// ani

Jan 1, 1970
0
Thanks all. Actually DTMF chip (UM95089) I'm using is old, discontinued
part. And it was really hard to find the datasheet around, lucky enough
here, I got one :). They have suggested keypad schematic(Figure 1)
which I can't understand! I've uploaded the datasheet here
http://www.geocities.com/nospam4u_jack/UM95089.pdf , will you please
have a look at this problem?

Thanks again
 
L

Lord Garth

Jan 1, 1970
0
Jack// ani said:
Thanks all. Actually DTMF chip (UM95089) I'm using is old, discontinued
part. And it was really hard to find the datasheet around, lucky enough
here, I got one :). They have suggested keypad schematic(Figure 1)
which I can't understand! I've uploaded the datasheet here
http://www.geocities.com/nospam4u_jack/UM95089.pdf , will you please
have a look at this problem?

Thanks again

Excellent, this chip is a clone of our late '70's MK5089. You may ground
any row and any column to produce DTMF which is perfect for electronic
control of the dialer. You say your 2 of 8 keypad has internal pull-ups,
Have you any idea of the value? You may be able to short the keypad pull-up
resistors You're datasheet states that Vil has to be below .2 volts for it
to be
recognized as a low. If not, as John pointed out, you can fix this keypad
with
external logic in one of several ways. I would use an EPROM to fix this or
buy a replacement keypad. This vendor has some hanging in his store:

http://www.tannerelectronics.com/

Jim Tanner can help you if you choose to call the store.
 
J

Jack// ani

Jan 1, 1970
0
Lord thanks a lot for reply. I'm very sorry I didn't stated the problem
clearly. Pullup resistors (20K -10K) are internal to the chip and are
*not* on my keypad. Please refer to page 5 of the datasheet. Keypad is
just a simple arrangement of switches in 4x4 matrix, which is shorting
the corresponding row and column. Problem here is after pressing the
switch I've to connect the shorted terminal to ground, in order to
generate a tone. I want to get the tones only by pressing switches
itself. I know there are many chips around which can easily solve my
problem, but I'm interested to do with this one.

Thanks again
 
J

John Fields

Jan 1, 1970
0
Lord thanks a lot for reply. I'm very sorry I didn't stated the problem
clearly. Pullup resistors (20K -10K) are internal to the chip and are
*not* on my keypad. Please refer to page 5 of the datasheet. Keypad is
just a simple arrangement of switches in 4x4 matrix, which is shorting
the corresponding row and column. Problem here is after pressing the
switch I've to connect the shorted terminal to ground, in order to
generate a tone. I want to get the tones only by pressing switches
itself. I know there are many chips around which can easily solve my
problem, but I'm interested to do with this one.
 
L

Larry Brasfield

Jan 1, 1970
0
Jack// ani said:
Lord thanks a lot for reply. I'm very sorry I didn't stated the problem
clearly. Pullup resistors (20K -10K) are internal to the chip and are
*not* on my keypad. Please refer to page 5 of the datasheet. Keypad is
just a simple arrangement of switches in 4x4 matrix, which is shorting
the corresponding row and column. Problem here is after pressing the
switch I've to connect the shorted terminal to ground, in order to
generate a tone. I want to get the tones only by pressing switches
itself. I know there are many chips around which can easily solve my
problem, but I'm interested to do with this one.

Thanks again


You can do it like this:

Connect the keypad row lines to the UM95089 row inputs.
Connect each of the keypad column lines to the base of
an NPN switch (such as 2N3904), and ground each emitter.
Connect each collector to one of the UM95089 column inputs.
This circuit is shown for a 2x2 switch array below, where
R1 and R2 are row inputs and C1 and C2 are column inputs.

.-----------o----------- R1
| |
| |
o | o
|=|> |=|>
| o | o
| |
'---. '---.
| |
.---)-------o---)------- R2
| | | |
| | | |
| o | | o |
|=|> | |=|> |
| o | | o |
| | | |
'---o '---o
| |
| |
| |
--- ---
.-v \-. .-v \--.
| | | |
GND------o-----)-----' |
| '--- C2
|
|
'---------------- C1
(created by AACircuit v1.28.4 beta 13/12/04 www.tech-chat.de)

This circuit gives up a little noise margin, but as long
as it is operated at room temperature or above and
the keypad is close to the IC, this degradation should
not cause a problem.
 
J

John Fields

Jan 1, 1970
0
You can do it like this:

Connect the keypad row lines to the UM95089 row inputs.
Connect each of the keypad column lines to the base of
an NPN switch (such as 2N3904), and ground each emitter.
Connect each collector to one of the UM95089 column inputs.
This circuit is shown for a 2x2 switch array below, where
R1 and R2 are row inputs and C1 and C2 are column inputs.

.-----------o----------- R1
| |
| |
o | o
|=|> |=|>
| o | o
| |
'---. '---.
| |
.---)-------o---)------- R2
| | | |
| | | |
| o | | o |
|=|> | |=|> |
| o | | o |
| | | |
'---o '---o
| |
| |
| |
--- ---
.-v \-. .-v \--.
| | | |
GND------o-----)-----' |
| '--- C2
|
|
'---------------- C1
(created by AACircuit v1.28.4 beta 13/12/04 www.tech-chat.de)

This circuit gives up a little noise margin, but as long
as it is operated at room temperature or above and
the keypad is close to the IC, this degradation should
not cause a problem.
 
L

Lord Garth

Jan 1, 1970
0
The datasheet specified Vil as .2 volts max. I'd give it a shot though.
Jack// ani, let us know how it does. If you don't get the row tones, you
need to consider John's circuit.

You'd have no problem if you had a MK5087 or MK5092 tone dialer, these
use a 2 of 8 keypad. Would you want me to look for one?
 
L

Larry Brasfield

Jan 1, 1970
0
Lord Garth said:
Thanks, John.

The datasheet specified Vil as .2 volts max. I'd give it a shot though.

The datasheet specifies Vil as .2 VDD, meaning VDD/5. This is
comfortably above the 0.65V to be expected at a biased base
as long as VDD is 5V.

....
 
L

Lord Garth

Jan 1, 1970
0
Larry Brasfield said:
The datasheet specifies Vil as .2 VDD, meaning VDD/5. This is
comfortably above the 0.65V to be expected at a biased base
as long as VDD is 5V.

I guess I misinterpreted that Larry. Are you saying Vil is .2*5 or 1 volt
or less
for a 5 volt supply to be a logical low? 20% of Vdd. That would be easy to
reach.

Thanks.
 
L

Larry Brasfield

Jan 1, 1970
0
Lord Garth said:
I guess I misinterpreted that Larry. Are you saying Vil is .2*5 or
1 volt or less for a 5 volt supply to be a logical low? 20% of Vdd.
That would be easy to reach.

They give the value as 0.2 and the units as VDD. This is unusual,
so I relied on the Vih spec, which ranges from 0.8 VDD to 1 VDD,
to help make sense of that Vil spec. Also, a MOSFET threshold
as low as 0.2V would be most unusual.

Welcome.
 
J

Jack// ani

Jan 1, 1970
0
I earlier also posted it but never appeared on the board, so posting
again.....

Million thanks Larry. It is working so fine, better then I expected.

Thanks a lot again.
 
Top