[Lui's homepage] [DSP homepage]
Lab Exercise:
A DTMF Tone Generator
This exercise requires use of the 'C542 kits in the lab along with the C54x Code Explorer software. You will also need to use the dskplasm assembler to generate .obj files that could be downloaded to the 'C542 kit thru Code Explorer.
DTMF Tones
A DTMF tone is the sum of two tones:
- one tone of a low frequency f1, and
- one tone of a high frequency f2
DTMF Tone = tone of frequency f1 + tone of frequency f2.
The low frequency f1 is one of 697 Hz, 770 Hz, 852 Hz, and 941 Hz.
The high frequency f2 is one of 1209 Hz, 1336 Hz, 1477 Hz, and 1633 Hz.Hence, there are 16 possible DTMF tones. One DTMF tone each is associated with the 10 digits, the symbols * and #, and the letters A, B, C, D as follows:
f1
(Hz)f2
(Hz)1 697 1209 2 697 1336 3 697 1477 4 770 1209 5 770 1336 6 770 1477 7 852 1209 8 852 1336 9 852 1477 0 941 1336 * 941 1209 # 941 1477 A 697 1633 B 770 1633 C 852 1633 D 941 1633 DTMF tones are extensively used in the telephone system.
Tone Generation Exercise
For this lab exercise, you are to use the 'C542 kits in the lab to generate the DTMF tone assigned to you [tone assignments].
Use the analog interface settings as provided by the delay example in c:\dskplus\demos\delay. In particular, assume an operating frequency of 5787 Hz for the analog interface. Use circular buffers to store tone samples that will still be needed in subsequent computations. You may choose whatever phase you find convenient; and you may choose whatever amplitude you find convenient.
Be able to show that the tone samples generated are really those required. Do this by simulating in Excel the computations involved, and by inserting code somewhere before interrupts are enabled, and before your firmware goes into an infinite loop. The inserted code fragment must generate at least the first 10 tone samples using the same computations that will be used later in the actual tone generation. It should be possible, by stepping thru this code fragment, to compare the samples generated by this code fragment with the results of a simulation of the same computations in Excel.
NOTE: The code in dly_ac01.asm in the delay demo apparently sets the analog interface to operate at 5787 Hz.
This page has been accessed
times since August 12, 2003.