DTMF Generator/Decoder

The photo depicts a DTMF generator/decoder pair you can build
in an afternoon or two. Dual-tone-multi-frequency (DTMF,
also known as touch-tone) are the audible sounds you hear
when you press keys on your phone.

The tone generator (top) uses the 5589 chip and a DIP
switch. You can actually hear the tones through the speaker.
The bottom circuit uses the 8870 to decode a tone and
display its associated number on the 7-segment LED.

Touch-tone is familiar to many (telephone), it is a mature
technology, and readily available with off-the-shelf,
single-chip, low-cost components. For these reasons
DTMF is often used in remote control applications that
typically use telephones (e.g. accessing your messages
from an answering machine, retrieving your account balance
info from your bank's database).

This tutorial will not discuss telephone interfacing. Rather
it will give you a basic working foundation which you can
build upon. The generator/decoder above are tethered together
by a single wire. But you can expand upon this foundation for
wireless remote control using a microphone. For longer
distances maybe you can add a pair of walkie-talkies, generating
audible tones into one, and decoding with the other.

Another possibility is to use infrared (IR). Since tones are
just electrical pulses, you can replace the speaker with an
IR emitter and add an IR detector to the decoder.

Yet another experiment is to interface either the generator or the emitter
or both to a PC or embedded microprocessor (e.g. 8051, PIC or
Stamp). In this scenario, the PC or a peripheral, through
touch-tones, can respond and control.

If you are familiar with how telephones work, the basic
circuit might also help you to build devices the respond
to your call. For example, you can build upon the decoder
and add relays to control household devices that respond when
you call your home.

Well hopefully I got you motivated. The bottom line is
that DTMF was designed for optimal performance with each tone
being very distinct. This makes decoding the tone very
easy even in surrouding noise. It is this performance
that makes DTMF ideal for clear transmission and
reception in remote control (wireless or through phone lines)
applications.

Parts List and Potential Vendor Source

Below are parts I used for constructing my DTMF generator/decoding
pair. Additionally, I list the source from which I bought it from, along with the vendor part
number and cost (in 1998). Note: I have no association
with these vendors. I tend to buy parts from these US-based
electronic mail-order companies. They usually have items
in stock. When Jameco (reasonable prices)
doesn't have a part, I then look at Digikey and JDR and Radio
Shack. Additionally, I used a combination of soldering
and wirewrapping on a prototyping board (Radio Shack).
Part placement is not critical.

TABLE 1: DTMF Generator

PART DESCRIPTION

VENDOR PART

PRICE (1998)

QUANTITY

TCM5589N TONE GENERATOR 16-PIN DIP

JAMECO #32803

3.95

1

3.579545 MHZ CRYSTAL

JAMECO #14533

1.05

1

8 OHM SPEAKER

JAMECO #88410

1.95

1

16-PIN WIREWRAP SOCKET

JAMECO #37479

1.35

2

8-POSITION DIP SWITCH

JAMECO #38842

0.79

3

TIP31 NPN TRANSISTOR

JAMECO #33048

0.49

1

TABLE 2: DTMF Decoder

PART DESCRIPTION

VENDOR PART

PRICE (1998)

QUANTITY

8870 DTMF DECODER 18-PIN DIP

see below

1

3.579545 MHZ CRYSTAL

JAMECO #14533

1.05

1

7-SEG DISPLAY COMMON CATHODE

JAMECO #24782

0.99

1

74LS48 7-SEG DRIVER 16-PIN DIP

JAMECO #47811

0.89

1

16-PIN WIREWRAP SOCKET

JAMECO #37479

1.35

1

18-PIN WIREWRAP SOCKET

JAMECO #38148

1.35

1

0.1 uF CAPACITOR

JAMECO #151116

0.15

2

100 KOHM RESISTOR

2

300 KOHM RESISTOR

1

Teltone
offers the 8870 chip. This part can be ordered from
Component Distributors, Inc.
They sell Teltone's M-8870-01 (18-pin DIP package) unit for about $1.50 in
single quantities and can ship internationally. They have local offices
around the US. Check out their webpage for locations. (Added the
following 08/13/99) One visitor alerted me to
B.G. Micro.
This mail-order house sells the 8870 for $2.25 and the 5089 for $1.25.
They are based in Dallas, Texas: Telephone: 1-800-276-2206.

It has also come to my attention that
there are similar DTMF decoding chips. Namely
Harris Semiconductor's CD22202.
JDR Microdevices offers this chip. It is not pin-compatiable with the 8870
but functions in the same way. The JDR part number is CD22202E and costs $3.99.
Please note that I have not used the CD22202E. I imagine that if you wire it up
taking into account that the pin-numbers differ with those of the 8870, your decoder
should still work.

Theory of Operation

So what are these tones?

In DTMF there are 16 distinct tones. Each tone is the sum
of two frequencies: one from a low and one from a high
frequency group. There are four different frequencies in
each group.

Your phone only uses 12 of the possible 16 tones. If you
look at your phone, there are only 4 rows (R1, R2, R3 and R4)
and 3 columns (C1, C2 and C3). The rows and columns select
frequencies from the low and high frequency group
respectively. The exact value of the frequencies are
listed in Table 3 below:

TABLE 3: DTMF Row/Column Frequencies

LOW-FREQUENCIES

ROW #

FREQUENCY (HZ)

R1: ROW 0

697

R2: ROW 1

770

R3: ROW 2

852

R4: ROW 3

941

HIGH-FREQUENCIES

COL #

FREQUENCY (HZ)

C1: COL 0

1209

C2: COL 1

1336

C3: COL 2

1477

C4: COL 3

1633

C4 not used in phones

Thus to decipher what tone frequency is associated with a
particular key, look at your phone again. Each key is
specified by its row and column locations. For example
the "2" key is row 0 (R1) and column 1 (C2). Thus using
the above table, "2" has a frequency of 770 + 1336 = 2106 Hz
The "9" is row 2 (R3) and column 2 (C3) and has a frequency
of 852 + 1477 = 2329 Hz.

The following graph is a captured screen from an oscilloscope. It is
a plot of the tone frequency for the "1" key:

You can see that the DTMF generated signal is very distinct
and clear. The horizontal axis is in samples. The frequency
of the tone is about 1900 Hz - close to the 1906 Hz predicted
by Table 3 (697+1209).

Construction Highlights

Tone Generator

The DTMF generator circuit is straight forward to construct.
Only 3 of the 5089's 4 column pins (3,4,5) and all 4 row pins
(11 to 14) were used. Thus it uses only 12 of the 16 touch
tones (just like your phone).
In this schematic you'll note the "/" in front of column and
row pin labels (e.g. /C1). This means that these pins are
active low. In other words, a pin is enabled when
it is grounded. When the circuit is powered on, these
pins normally high (+5V).
C1-C3 and R1-R4 are wired to an 8-position DIP switch. In a
single-package this DIP contains 8 single-pole-single-throw
(SPST) switches. It is much cheaper to use than 8 real SPST
switches. You slide a DIP position to open or close its switch.
When closed that particular switch connects its associated
column or row pin to ground and makes it active.

You could use a 12-key keypad available from many surplus or
electronics mail-order companies. But you must be aware of
what you buy. Not all keypads can be used with the 5089.
I think the proper keypad will have 9 pins: 8 (for 4 rows
plus 4 columns) plus 1 for a common which you'd connect to ground.
Often surplus keypads do not come with techsheets, and you will have to
manually figure out which pin is associated with which
row or column. I found to my surprise that my particular
surplus 12-key keypad (from Electronic Goldmine) did not have this
common pin and so I resorted to using a DIP.

In this photo DIP positions 1 and 4 (C1 and R1 respectively)
are in their ON positions. C1 and R1 is "1" on your phone's
keypad. The speaker will emit the touch-tone associated with
the "1" key (see Table 4)

The speaker is driven through the TIP31 transistor.
Note: the labels 1, 2 and 3 that refer to the base,
collector and emitter pins respectively in the schematic
are not standard. Be sure to check your spec sheet for your TIP31.

TABLE 4: DIP SWITCH POSITIONS

(1) DIP: 1+4

(2) DIP: 2+4

(3) DIP: 3+4

(4) DIP: 1+5

(5) DIP: 2+5

(6) DIP: 3+5

(7) DIP: 1+6

(8) DIP: 2+6

(9) DIP: 3+6

(*) DIP: 1+7

(0) DIP: 2+7

(#) DIP: 3+7

Table 4 shows the DIP positions that will activate the tone
associated with the key. The numbers in bold and parenthesis
are your desired key tone (like your phone). Thus if you wanted to dial
a "0", you would slide only positions 2 and 7 on the DIP switch.

Tone Decoder

The decoder circuit is also easy to construct. You will have
to physically wire (using alligator clips for instance) the
TONE OUT pinout from the generator to the TONE IN pinout
of the decoder.

Once physically wired together, the 7-segment display will
light up the number associated with the touch-tone you activate
with the DIP switch.

Note: A "0" tone lights up as "[" and not zero. This is
because, "0" key's tone is actually a ten in binary (1010).
Because the 7-segment displays only a single digit, ten is displayed
as a "[". Similarly, the "*" (binary 1011) and "#" (binary 1100) light up as "]" and "U" respectively.

Final Words

Well hopefully you got your DTMF generator and emitter working
in an afternoon or two. You might have some fun trying to
put the tone generator's speaker next to the mouthpiece of
your phone, and try dialing a phone number! This might actually
work since the emitted tone is loud enough. I haven't tried it yet.
Setting the DIP switches to dial a phone number will a bit of a pain
though.

There are some obvious "build-upons" you might wish to attempt,
which I haven't tried. The first would be to replace the DIP
switch with a 12-key keypad. I think Jameco has one (Jameco # 153488
$6.95 each) that might work. The second would be to add
a microphone to the TONE IN line of the tone decoder. This
would eliminate the need to physically wire the two circuits.
You might have to put the speaker rather close to the microphone
though.

You could also make the two circuits portable by using batterys
(say a 9V) and a +5V regulator (e.g. 7805). Perhaps you can also
amplify the speaker. This would be a neat/cheap pocket dialer.

Like I mentioned earlier, tones are just electrical pulses.
Thus instead of driving a speaker, you can drive an infrared (IR)
emitter. You would place a IR detector in the TONE IN line
of the decoder. The tutorial on
Long Range IR might help you with this endeavor.

Interfacing a PC with the tone generator is relatively simple.
Here, the DIP switch lines would be replaced by digital output
lines from the computer. Decoding is also easy. You would just
replace the 74LS48 and 7-segment display with the digital input lines
of your computer. The
parallel port or a dedicated
PC interface card tutorials might help you with such an experiment.

As for me, I hope to build a RF circuit and use my tone
generator/decoder to remotely control devices. Wish me luck.
I want to write up a tutorial on simple/cheap/long-range RF circuits.
I am thinking of using Mitel's chips. If you have any leads, please
email me.

Let me know (email) if you succeed in any of these attempts!
Happy building.