Shop OBEX P1 Docs P2 Docs Learn Events
CM8880 DTMF decoding:How to "zero" memory after tone turns off — Parallax Forums

CM8880 DTMF decoding:How to "zero" memory after tone turns off

FlyingFishFingerFlyingFishFinger Posts: 461
edited 2005-12-27 13:04 in General Discussion
Hello!
My application depends on the length of the DTMF tone for duration timings. However, it seems like the CM8880 always "remembers" the last tone recieved instead of showing a zero when no tone is present. I could always send a zero at the end of a transmission, but since these are most likely going to come from a human operator, he might forget, and also an extra tone messes up my timing scheme a bit.
Is there any way to tell the chip to show a zero when there is no tone instead of the last one?
Thanks
Rafael

Post Edited (flyingfishfinger) : 12/26/2005 10:47:46 PM GMT

Comments

  • PJAllenPJAllen Banned Posts: 5,065
    edited 2005-12-26 21:33
    flyingfishfinger said...
    Is there any way to tell the chip to show a zero when there is no tone instead of the last one?
    By having "the chip show a zero", I assume you mean that you'd like the data outputs to = "0000".·Unfortunately, fff,·that is the result of detecting the tone pair for "D" (or key "D".)

    The datasheet states that pin 18, "ESt", goes HI with detection of a valid tone pair.· Can you modify your program to poll the status (i.e. monitor and make use) of ESt?

    ESt var bit
     
    ToneTest:
      IF ESt = 0 THEN ToneTest
      GOTO GotTone
    

    -- PJA --
  • FlyingFishFingerFlyingFishFinger Posts: 461
    edited 2005-12-26 21:48
    Yes, I can, but that means I'll need an extra pin, which could be a bit trick with my setup. I'll have a look to see of it'll work and then I'll get back.
    What I'm doing now is actually monitoring the data lines in a loop (how stupid, but then I'm new to the world of chip control). My application is remote control which checks for the lenght of the tone and activates corresponding equipement for the lenght of the tone.
    Thanks
    Rafael
  • FlyingFishFingerFlyingFishFinger Posts: 461
    edited 2005-12-26 22:47
    Hm, I have slight pin trouble. I would like to connect the following (first two already installed):

    -H-bridge: 2 pins (speed,dir)
    -LCD driver: 1 pin (serial)
    -CM8880: 8 pins with ESt, 7 pins without
    -2x ACD0831: 4 pins (sharing DO and CLK)
    -24LC256 EEPROM: 2 pins (I2C)

    If anyone has any suggestion as to how to decrease pin usage, I'd be glad to hear it.
    Or, back to my question, to keep the CM8880 at 7 pins.
    Thanks
    Rafael
  • Robert KubichekRobert Kubichek Posts: 343
    edited 2005-12-26 22:56
    flyingfishfinger said...
    Hm, I have slight pin trouble. I would like to connect the following (first two already installed):

    -H-bridge: 2 pins (speed,dir)
    -LCD driver: 1 pin (serial)
    -CM8880: 8 pins with ESt, 7 pins without
    -2x ACD0831: 4 pins (sharing DO and CLK)
    -24LC256 EEPROM: 2 pins (I2C)

    If anyone has any suggestion as to how to decrease pin usage, I'd be glad to hear it.
    Or, back to my question, to keep the CM8880 at 7 pins.
    Thanks
    Rafael

    Couldn't you combine the 4 bit address with a serial to parallel chip??? Would it be possible to do the same for all 8 lines
    of the CM8800 ????

    Bob N9LVU scool.gif
  • FlyingFishFingerFlyingFishFinger Posts: 461
    edited 2005-12-26 23:07
    Hm, I might combine the 4 bit data I/O from the CM8880. The rest of them are control pins etc, so I don't think I can do anything with those. What's a good bidirectional 4-bit converter, then?

    Never mind that. I checked, the 4-bit ones need more than 4 pins anyway.
    Also, I'm running low on board space, and my programming knowledge is very limited, too.
    Rafael

    Post Edited (flyingfishfinger) : 12/26/2005 11:12:27 PM GMT
  • Chris SavageChris Savage Parallax Engineering Posts: 14,406
    edited 2005-12-26 23:31
    Unless I am missing something, wouldn't switching to zero (0) be a bad idea, since zero (0) is a valid number?· Wouldn't that just as easily indicate a zero was detected?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Chris Savage
    Parallax Tech Support
    csavage@parallax.com
  • PJAllenPJAllen Banned Posts: 5,065
    edited 2005-12-27 00:17
    Actually, DTMF0 = 1010, DTMFD = 0000.

    So, fff, how many buttons/DTMFs are you using?· If you are using 8 or less, then just use D0,1,2 and then you can use "ESt".· Of course, you'll have to modify your polling routine to disqualify 0000, 1000-1111.

    attachment.php?attachmentid=39920


    Post Edited (PJ Allen) : 12/27/2005 12:20:32 AM GMT
    310 x 380 - 32K
  • Robert KubichekRobert Kubichek Posts: 343
    edited 2005-12-27 01:20
    flyingfishfinger said...
    Hm, I might combine the 4 bit data I/O from the CM8880. The rest of them are control pins etc, so I don't think I can do anything with those. What's a good bidirectional 4-bit converter, then?

    Never mind that. I checked, the 4-bit ones need more than 4 pins anyway.
    Also, I'm running low on board space, and my programming knowledge is very limited, too.
    Rafael

    Could you use 1-wire???

    www.maxim-ic.com/quick_view2.cfm/qv_pk/3818/ln/

    Bob N9LVU scool.gif
  • Chris SavageChris Savage Parallax Engineering Posts: 14,406
    edited 2005-12-27 02:24
    PJ, thank you for the correction, which still makes my point.· A zero would still be a valid other digit, which wouldn't be what you'd want.· The method of checking the valid data line was the better way to go, I thought.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Chris Savage
    Parallax Tech Support
    csavage@parallax.com
  • FlyingFishFingerFlyingFishFinger Posts: 461
    edited 2005-12-27 03:31
    Ah, well thanks for the input, but as I said, I really don't have much board space.
    So what I'll do is move the EEPROM to AUXIO, I noticed I do have a few pins free over there (I hadn't noticed) that are not connected to the board expansion header, then I'll use the ESt.
    Thanks everyone
    Rafael
  • Mike CookMike Cook Posts: 829
    edited 2005-12-27 03:43
    Rafael,

    I have worked with the CM8880 in the past, this link might be helpful:

    http://forums.parallax.com/showthread.php?p=466523

    Mike

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    "OEM NMEA GPS Module" Now available on ebay for only $19.99, FREE shipping until 2006!

    Product web site: http://www.allsurplus.net/Axiom/
  • PJAllenPJAllen Banned Posts: 5,065
    edited 2005-12-27 13:04
    You could make this "data gate" easily with a quad, 2-input AND gate IC.

    With it you would not have to monitor "ESt", and the output would always be 0000 when "ESt" is LO.· [noparse][[/noparse] But detection of DTMF-D would be in doubt. ]
    132 x 216 - 5K
Sign In or Register to comment.