Searching \ for 'DTMF etc. tone generation' in subject line. ()
Help us get a faster server
FAQ page: www.piclist.com/techref/pots/dtmf.htm?key=dtmf
Search entire site for: 'DTMF etc. tone generation'.

Truncated match.
'DTMF etc. tone generation'
1996\06\11@030145 by

Microchip's AN616 describes DTMF generation using PIC code.  I have been
further researching this and have come up with improved code.

If you are interested in PIC code and/or table of coefficients, email me
DIRECT (_not_ the PICLIST) and I will post you a copy (about 206K for
the table, 12K for the code).

For those not familiar with AN616, it describes (amongst other things)
how to generate discrete sine wave approximations without using table
lookups.  Sample 'n' is generated from the previous two outputs, using
coefficients A and B to determine the amplitude and frequency respectively.
Refer to AN616 for theory.

Two tones (as for DTMF signalling) may be generated in 202 cycles using
my code.  Given the ingenuity with which people have been coming up with
sqrt routines, I am sure further improvements are possible.  The code
has been verified using MPSIM only.

The research is fairly complete however I need to know the DTMF frequencies
to complete the demo code!

===> Can somebody help? <===

Regards,
SJH
Canberra, Australia

PS: here is the first part of the 4700-line table:

Table sorted in descending B and A.  Output amplitude selected to be
within 200..255 pk-pk (1dB variation).

Fout:  Output frequency given sample generation rate of 10KHz.
A, B:  Generation coefficients.  A primarily affects amplitude and
B primarily affects frequency.
Min,
Max:   Minimum and maximum output samples after 'settling'.  For offset
binary output, add 128 to both these figures.
Cyc:   Number of Fout cycles embodied in the complete pattern cycle 'Per'.
Per:   Per is the number of samples output before the pattern repeats.
Fout = 10000 * Cyc / Per
M:     Applicable multiplication algorithm (see code) -
blank - true multiply
*     - negative result decremented
+     - both techniques give same result

Note: smaller values of A may be used for a given B, but the output
amplitude will be below 200 pk-pk.  Larger values of A will cause
internal overflow and non-sinusoidal output.

Fout     A    B    Min  Max    Cyc   Per  M
--------  ---  ---   ---- ---   ----- ----- -
151.515   11  255   -121 121       1    66 +

200.000   15  254   -125 125       1    50 +
208.333   14  254   -113 113       1    48 +
204.082   13  254   -105 108       1    49
192.308   12  254   -100 100       1    52 *

247.525   18  253   -120 120       5   202 +
238.095   16  253   -109 109       1    42 +

284.091   22  252   -127 127       5   176 *
284.553   21  252   -119 120       7   246
279.503   21  252   -119 119       9   322 *
277.778   20  252   -113 113       1    36 +
281.690   19  252   -104 104       4   142
280.899   19  252   -104 104       5   178 *
Steve Hardy <PICLISTMITVMA.MIT.EDU> wrote:

> The research is fairly complete however I need to know the DTMF
> frequencies to complete the demo code!
>
> ===> Can somebody help? <===

Sure, Steve...

High
Group

| 1209 Hz | 1336 Hz | 1477 Hz | 1633 Hz
_______|_________|_________|_________|________
|         |         |         |
697 Hz |   1     |    2    |    3    |   A
_______|_________|_________|_________|________
|         |         |         |
770 Hz |   4     |    5    |    6    |   B
Low    _______|_________|_________|_________|________
Group          |         |         |         |
852 Hz |   7     |   8     |    9    |   C
_______|_________|_________|_________|________
|         |         |         |
941 Hz |   *     |   0     |    #    |   D
|         |         |         |

-Andy

Andrew Warren - fastfwdix.netcom.com
Fast Forward Engineering, Vista, California
http://www.geocities.com/SiliconValley/2499

More... (looser matching)
- Last day of these posts
- In 1996 , 1997 only
- Today
- New search...