I neeed to detect DTMF tones with a 16C61, I saw a design using this PIC.
The tone was applied to A/D conversor.
There was digital filters at 1380, 1500, 1620, 1740, 1860 e 1980 Hz.
I need to identify the combination of any two of this frequencies, all did in
software, any idea?

> Date: Thu, 26 Sep 1996 09:20:43 -0400
> Subject: DTMF
>
> Hi everybody:
>
> I need to locate part numbers for chips for a reasonable cost
> which will accomplish the following functions:
>
> 1. Generator for DTMF, the entry of data can parallel or in
> serial.
>
> 2. Receiver for DTMF, the output of the data can be parallel or
> in serial.
>

I haven't my databooks handy, but I hope I remember some part numbers:
check out the motorola MC141536; mittel 8870, 8880; toshiba TP53089? or so...
I'll look at my books and give more details...

Philips makes DTMF generators with an I2C interface PCD 3311 and
PCD 3312, but I don't know about availability. They are listed in the
current Philips I2C data book, but I couldn't find them on the web
site.

Someone posted an URL with it. I have the files here if you can`t find
it. I have not tested the routines but I think the author has. The only
limitation is that it needs more time to decode the tones then the
stantard.

> Does anyone know of any ap-notes or examples using a PIC to read DTMF tones?
> Or would I be better off using a tone decoder chip such as the 75T204?

I have done DTMF decoding using just a zero-cross detector and a 20MHz
PIC. Depending upon whether tone generation is required as well, the
routine uses about 40-70% CPU time [it has two parts: an interrupt routine
that uses about 40-50% CPU, and a calculation routine that needs to be
called about 60 times/sec].

Unfortunately, because I developed the routine for my employer I cannot
release it on the net, at least not presently. On the other hand, I will
say that it is possible to do a good job of detecting DTMF or other such
tones, using a PIC, even in the presence of other audio (such as dial
tone). My routine looks for eight tones simultaneously, and is selectable
between two groups of eight (one set up for DTMF, one for call-progress
and special tones).

>I have done DTMF decoding using just a zero-cross detector and a 20MHz
>PIC. Depending upon whether tone generation is required as well, the
>routine uses about 40-70% CPU time [it has two parts: an interrupt
>routine
>that uses about 40-50% CPU, and a calculation routine that needs to be
>called about 60 times/sec].
>
>Unfortunately, because I developed the routine for my employer I
>cannot
>release it on the net, at least not presently. On the other hand, I
>will
>say that it is possible to do a good job of detecting DTMF or other
>such
>tones, using a PIC, even in the presence of other audio (such as dial
>tone). My routine looks for eight tones simultaneously, and is
>selectable
>between two groups of eight (one set up for DTMF, one for
>call-progress
>and special tones).
>

Interesting! You're detecting simultaneous tones! I'd always
thought of splitting the tones into high and low groups, then timing the
period of each. Are you doing this with no band splitting? Just a
comparator or schmitt driving a port?

> Interesting! You're detecting simultaneous tones! I'd always
> thought of splitting the tones into high and low groups, then timing the
> period of each. Are you doing this with no band splitting? Just a
> comparator or schmitt driving a port?

Ah-yupper. The way the algorithm works, in simple terms, is that I
generate three phases each of the different tones (120 degrees apart) and
count how often the comparator is high during each of the three phases.
Then after doing that for 240/14400's of a second, I do some other strange
and mysterious (but actually pretty simple) maths to filter out DC and
third harmonics. Then I take the absolute value of each of the three
buckets. If a bucket is large-positive or large-negative, then the tone
exists in abundance. If all of the buckets for a tone are nearly zero
then it doesn't.

DTMF means: Dual Tone Multi-Frequency, There is no baseband
multiplexing done on DTMF signals. The signal generated by a DTMF
encoder is a direct algebraic summation, in real time, of the
amplitudes of two sine (cosine) waves of different frequencies. i.e.
pressing '1' will send a tone made by adding 1209 Hz and 697 Hz to the
other end of the line.

(From the Editor)

Here's a more detailed explanation of what DTMF is:

Q: What frequencies do touch tones use for which numbers?

A: The touch tone system uses pairs of tones to represent the various
keys. There is a "low tone" and a "high tone" associated with each
button (0 through 9, plus * (star) and # (octothorpe or pound symbol).
The low tones vary according to what horizontal row the tone button is
in, while the high tones correspond to the vertical column of the tone
button.

When the 4 button is pressed, the 770 Hz and 1209 Hz tones are sent
together. The telephone central office will then decode the number
from this pair of tones.

The tone frequencies were designed to avoid harmonics and other
problems that could arise when two tones are sent and received.
Accurate transmission from the phone and accurate decoding on the
telephone company end are important. They may sound rather musical
when dialed (and representations of many popular tunes are possible),
but they are not intended to be so.

The tones should all be +/- 1.5% of nominal. The high frequency tone
should be at least as loud, and preferably louder than the low
frequency. It may be as much as 4 db louder. This factor is referred
to as "twist." If a Touchtone signal has +3db of twist, then the high
frequency is 3 db louder than the low frequency. Negative twist is
when the low frequency is louder.

> Can anyone furnish me with a list of the frequencies which correspond to
> those used in 'tone' dialling; 0-9, #, * ?

Someone else has provided the frequencies, presumably correctly.
To go just one better though, download:
www.semicon.mitel.com/cgi-bin/doclist?bk1/dtmf/mt8870d
.. which gives the frequencies, as well as the data on a suitable
decoder
and other odds and ends.

Hello friends:
I need to generate tones of multifrequency DTMF and not with himself to
find circuits specialized in stores (of the references that I have),
reason why I have thought to generate them with pic 16F84.
Somebody knows like?
They have some routine that can facilitate or knows to me where to
obtain it? They have bought some in stores that make international
shipments and they can give the data me of integrated and the direction
of the store?