ECE 4760: Laboratory 2

DTMF generator with speech feedback.


You will construct a standard Dual Tone Multi-Frequency (DTMF) generator like those used on any tonch-tone or cell phone. As you press the buttons, the system will speak the digits. The system will record up to 12 digits, then play them back to simulate redial. To do this you will have to use Direct Digital Synthesis sampling at a fairly high rate to a DAC, then to speakers.


You will use a keypad to make a DTMF dialer with audio output to a speaker. Analog output will be through a SPI controlled DAC. The analog signal will be DTMF sine wave bursts generated using Direct Digital Synthesis (DDS) technique one one channel of the DAC and speech on the other channel. An example on the DSP page (example 1 or 2) shows how you might implement a DDS, with the SPI DAC. Your DDS unit must resolve 256 table entries. For this lab, you will need to modulate the amplitude, and you will need to run two simultaneous DDS units and sum them. The sine wave table will need to be scaled to prevent overflow.

There are two ways of doing the speech feedback. Choose one:


In this lab and every lab, make sure you are running Protothreads 1_2_1.
I suggest organizing the code as:


  1. Write a Protothreads C program which implements a DTMF generator with the following specifcations:
  2. Connect the circuit to a speaker audio input (green phone plug) and listen the output. This will aid in debugging and is required for the demo.
  3. Demo this program to a staff member. Show that all specifications are met by verifying frequencies with an oscilloscope.
  4. At no time during the demo should you need to press RESET.
  5. Your written lab report should include the sections mentioned in the policy page, and :


Copyright Cornell University October 6, 2016