Truncated match.
PICList
Thread
'DTMF etc. tone generation'
1996\06\11@030145
by
Steve Hardy
|
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 *
1996\06\11@045602
by
fastfwd
Steve Hardy <spam_OUTPICLISTTakeThisOuT
MITVMA.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 - .....fastfwdKILLspam
@spam@ix.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...