Connect with us

Trouble with 4x4 Telephone Keypad

Discussion in 'Electronic Basics' started by Jack// ani, Apr 17, 2005.

Scroll to continue with content
  1. Jack// ani

    Jack// ani Guest

    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
     
  2. Rich Webb

    Rich Webb Guest

    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.
     
  3. Lord Garth

    Lord Garth Guest

    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?
     
  4. John Fields

    John Fields Guest

    ---
    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.
     
  5. John Fields

    John Fields Guest

    ---
    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.
     
  6. Jack// ani

    Jack// ani Guest

    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
     
  7. Lord Garth

    Lord Garth Guest

    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.
     
  8. Jack// ani

    Jack// ani Guest

    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
     
  9. John Fields

    John Fields Guest

     

  10. 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.
     
    Daniel Wolff likes this.
  11. John Fields

    John Fields Guest

     
  12. Lord Garth

    Lord Garth Guest

    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?
     
  13. 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.

    ....
     
  14. Lord Garth

    Lord Garth Guest

    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.
     
  15. 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.
     
  16. Jack// ani

    Jack// ani Guest

    Thanks all for your valuable input.
     
  17. Jack// ani

    Jack// ani Guest

    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.
     
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day

-