Introduction to the MT8870
The MT8870 is a DTMF receiver IC manufactured by Mitel Semiconductor (now part of Microchip Technology). It is designed to decode DTMF tones, which are the tones generated when pressing keys on a telephone keypad. The IC can detect and decode all 16 DTMF tone pairs, making it suitable for a wide range of applications.
Key Features of the MT8870
- DTMF reception and decoding
- Low power consumption
- Adjustable guard time
- Binary or 4-bit output
- Built-in dial tone rejection
- Operates on a single 5V power supply
MT8870 Pin Configuration and Description
The MT8870 comes in a 18-pin DIP (Dual Inline Package) or SOIC (Small Outline Integrated Circuit) package. The following table describes the function of each pin:
Pin Number | Pin Name | Description |
---|---|---|
1 | IN+ | Non-inverting input |
2 | IN- | Inverting input |
3 | GS | Gain select |
4 | VRef | Voltage reference |
5 | ESt | Early steering output |
6 | St/GT | Steering input/guard time adjust |
7 | TOE | Three-state output enable |
8 | VSS | Negative power supply (Ground) |
9 | Q4 | 4-bit binary output (MSB) |
10 | Q3 | 4-bit binary output |
11 | Q2 | 4-bit binary output |
12 | Q1 | 4-bit binary output (LSB) |
13 | StD | Delayed steering output |
14 | VDD | Positive power supply (+5V) |
15 | OSC1 | Oscillator input |
16 | OSC2 | Oscillator output |
17 | StD | Delayed steering output |
18 | TOE | Three-state output enable |
MT8870 Block Diagram
(Insert a block diagram of the MT8870 here, showing the internal components and their interconnections)
How the MT8870 Works
The MT8870 works by receiving an analog DTMF signal at its input pins (IN+ and IN-) and converting it into a 4-bit binary output. The IC uses a switched capacitor filter to separate the high and low group tones, followed by a digital decoder to determine the corresponding key pressed.
DTMF Tone Detection
DTMF tones consist of two sine waves, one from a low frequency group (697 Hz, 770 Hz, 852 Hz, 941 Hz) and one from a high frequency group (1209 Hz, 1336 Hz, 1477 Hz, 1633 Hz). The combination of these tones represents the key pressed on a telephone keypad.
Decoding Process
- The input signal is passed through a band-split filter, separating the high and low group tones.
- The separated tones are then applied to a digital counting circuit, which determines the frequency of each tone.
- The decoded frequencies are then passed to a code converter, which generates the corresponding 4-bit binary output.
Output Modes
The MT8870 can provide the decoded DTMF signal in two output modes:
- 4-bit binary output (Q1 to Q4)
- Strobe output (StD)
The binary output is available on pins Q1 to Q4, with Q1 being the least significant bit (LSB) and Q4 being the most significant bit (MSB). The strobe output (StD) goes high when a valid DTMF tone is detected and remains high until the tone ends.
Interfacing the MT8870 with a Microcontroller
To use the MT8870 in a microcontroller-based project, you need to connect the IC to the microcontroller and configure the necessary pins. The following steps outline the process:
- Connect the VDD pin to a +5V power supply and the VSS pin to ground.
- Connect the OSC1 and OSC2 pins to a 3.579545 MHz crystal oscillator and appropriate capacitors.
- Connect the IN+ and IN- pins to the DTMF signal source, typically through a coupling capacitor and a voltage divider network.
- Connect the Q1 to Q4 pins to the microcontroller’s input pins, either directly or through pull-up resistors.
- (Optional) Connect the StD pin to an interrupt pin on the microcontroller for real-time detection of valid DTMF tones.
Example Circuit Diagram
(Insert a circuit diagram showing the MT8870 interfaced with a microcontroller, including the necessary components and connections)
Sample Code (Arduino)
#include <stdio.h>
const int Q1 = 2;
const int Q2 = 3;
const int Q3 = 4;
const int Q4 = 5;
const int StD = 6;
void setup() {
pinMode(Q1, INPUT);
pinMode(Q2, INPUT);
pinMode(Q3, INPUT);
pinMode(Q4, INPUT);
pinMode(StD, INPUT);
Serial.begin(9600);
}
void loop() {
if (digitalRead(StD) == HIGH) {
int value = digitalRead(Q1) | (digitalRead(Q2) << 1) | (digitalRead(Q3) << 2) | (digitalRead(Q4) << 3);
Serial.print("Decoded DTMF value: ");
Serial.println(value, HEX);
delay(100);
}
}
This sample code reads the 4-bit binary output from the MT8870 when a valid DTMF tone is detected (StD pin goes high) and prints the decoded value to the serial monitor.
Applications of the MT8870
The MT8870 finds use in various applications that require DTMF decoding, such as:
- Telephone systems
- Caller ID
- Automated menu navigation
-
Remote control of answering machines
-
Home automation
- Remote control of appliances
- Security systems
-
Lighting control
-
Industrial control
- Remote monitoring and control of equipment
- Data logging and transmission
-
Alarm systems
-
Robotics
- Remote control of robots
- Communication between robots and control stations
Troubleshooting Common Issues
Incorrect Decoding
If the MT8870 is not decoding DTMF tones correctly, check the following:
- Ensure that the input signal level is within the specified range (30 mV to 1.2 V peak-to-peak).
- Check the coupling capacitor and voltage divider network for proper values.
- Verify that the crystal oscillator is connected correctly and functioning properly.
No Output
If there is no output from the MT8870, consider the following:
- Check the power supply connections (VDD and VSS) for proper voltage levels.
- Verify that the input signal is present and of sufficient amplitude.
- Ensure that the output pins (Q1 to Q4, StD) are connected correctly to the microcontroller or other circuitry.
Frequently Asked Questions (FAQ)
- What is the maximum input signal level for the MT8870?
-
The maximum input signal level for the MT8870 is 1.2 V peak-to-peak.
-
Can the MT8870 decode DTMF tones from a mobile phone?
-
Yes, the MT8870 can decode DTMF tones from any device that generates standard DTMF tones, including mobile phones.
-
What is the purpose of the guard time adjustment (St/GT) pin?
-
The guard time adjustment pin allows you to set the minimum time between valid DTMF tones, helping to prevent false detections due to noise or voice.
-
Can the MT8870 be used with a microcontroller other than Arduino?
-
Yes, the MT8870 can be interfaced with any microcontroller that has compatible input/output pins and can provide the necessary power supply.
-
How can I improve the reliability of DTMF decoding in noisy environments?
- To improve the reliability of DTMF decoding in noisy environments, you can use additional filtering on the input signal, adjust the guard time, and ensure that the input signal level is within the specified range.
Conclusion
The MT8870 is a versatile and reliable DTMF receiver IC that finds use in a wide range of applications. By understanding its features, interfacing requirements, and decoding process, you can effectively integrate the MT8870 into your projects. This comprehensive guide has provided an in-depth look at the MT8870, including its pin configuration, working principles, interfacing with microcontrollers, and troubleshooting common issues.
0 Comments