Wird es funktionieren, wenn mehrere DTMF-Schaltungen an einen Mikrocontroller angeschlossen sind?

Ich habe diese Schaltung bereits mit nur einer Modifikation getestet, ich habe den R2 auf 300 kOhm geändert, was in meinem Fall funktioniert hat.DTMF-Schaltung

Ich habe diese Schaltung an einen Mikrocontroller angeschlossen, wo sie eine gemeinsame Masse teilten. Ich habe erfolgreich die Telefonnummer des Anrufers gelesen, wie in dieser Abbildung gezeigt. Anscheinend habe ich die Codenummer (10 2) und die 7-stellige Telefonnummer erhalten. Der Frame wurde mit Byte 0 und Byte 15 gekapselt.

Geben Sie hier die Bildbeschreibung einJetzt wollte ich eine Schaltung erstellen, die 3 Kanäle für 3 verschiedene Telefonleitungen enthält, die dann an einen Mikrocontroller angeschlossen werden sollen.

Wenn ich für sie alle eine gemeinsame Basis habe (3 DTMF-Schaltungen und eine Mikrocontroller-Schaltung), wird das funktionieren?

Nebenbei bemerkt, basierend auf dem Datenblatt, ist die Schaltung in Single-Ended-Konfiguration.

BEARBEITEN: Ich habe die gesamte unten gezeigte Schaltung hinzugefügt.Geben Sie hier die Bildbeschreibung ein

Zeigen Sie alle Ihre Schaltungen einschließlich 3x DTMF-Decoder, Telefonleitungsschnittstellenverbindungen und der MCU. Ohne diese Angaben ist Ihre Frage kaum zu beantworten.
@MichaelKaras, ich habe gerade die gesamte Schaltung hinzugefügt.
Ok gut. Jetzt können wir viel mehr von dem sehen, was Sie beabsichtigen. Es ist wahrscheinlich am besten, alle drei DTMF-Decoder an separate E / A-Pins an der MCU anzuschließen, wie Sie es zeigen. Es gibt jedoch eine vernünftige Möglichkeit, insgesamt 7 I/O-Pins einzusparen. Sie würden die Ausgänge Q1 -> Q4 aller drei Decoderchips zusammen mit einem 4-Bit-Bus verbinden, der zu einem Satz von vier Pins auf der MCU führt. Dann würden drei weitere individuelle E/A-Pins von der MCU mit dem TOE-Pin jedes einzelnen Decoders verbunden. Die STD-Pins würden auch einzeln mit der MCU verbunden, ähnlich wie es jetzt gezeigt wird. (Fortsetzung)
(Fortsetzung von oben) Die Software in der MCU würde alle drei TOE-Pins auf Low initialisieren, um die Q1-4-Ausgänge jedes Decoders abzuschalten. Dann würde die Software auf eine Signalerkennung an einem der STD-Pins überwachen. Wenn einer gesehen wird, der einen hohen Ausgang zeigt, der eine Erkennung anzeigt, dann würde die Software den entsprechenden TOE-Stift vorübergehend hoch treiben und dann den Code von diesem Chip über den 4-Bit-Eingangsbus einlesen. Nach dem Einlesen des Codes geht der TOE-Pin über die Software wieder auf Low. Die MCU nimmt dann wieder die Überwachung der STD-Pins wieder auf. (Fortsetzung)
(Fortsetzung von oben). Dieses alternative Schema erfordert insgesamt 10 I/O-Pins an der MCU. Dies steht im Gegensatz zu den insgesamt 15 E / A, die in Ihrem Schaltplan für eine Einsparung von 5 Pins angezeigt werden. (Bitte ignorieren Sie den vorherigen Kommentar, dass das Schema 7 Pins sparen könnte).
Ich muss hinzufügen, dass Sie dem Kommentar folgen müssen, den ich unter @DaveTweed gemacht habe
(Fortsetzung von oben) 's Antwort. Um kein Ungleichgewicht in den Telefonleitungen zu verursachen, müssen Sie die Verbindung jeder Telefonleitung mit GND beseitigen. Sie könnten für jede Leitung einen kleinen Signaltransformator verwenden, der jedoch mit einer Seite seiner Primärseite verbunden werden müsste, die mit einem Kondensator isoliert ist, um Gleichstrom im Transformator zu verhindern. Alternativ können Sie versuchen, Ihre Abgriffsimpedanz in zwei Teile aufzuteilen. Behalten Sie die Schaltung sehr ähnlich wie jetzt, aber ändern Sie Ihre 100K-Widerstände auf 50K und setzen Sie dann 50K ein (Fortsetzung)
(Fortsetzung von oben) Reihe mit dem Telefonleitungsabgriff, der mit GND verbunden ist. Dies ist jedoch nicht ideal, da es Telefonleitungen mit 100 kOhm verbindet und dies ein Problem sein kann (testen und sehen). Andererseits bietet der MT8870 mit seinen IN+ und IN- Pins die ideale Lösung dafür. Beide Seiten der Leitung können mit Kondensatoren (es müssen übrigens Hochspannungsgeräte sein) und dann mit Vorwiderständen an diese Pins angeschlossen werden. Siehe das Schema hier: electronic-lab.com/blog/wp-content/uploads/2011/01/…
Für die zweite Lösung schlagen Sie vor, einen Widerstand zwischen einem Anschluss der Telefonleitung und Masse zu platzieren. Und dadurch werden die Telefonleitungen nicht über dieselbe Masse miteinander gekoppelt? (Nur verfying..) Sieht so aus, als würde ich mit der Verwendung des differentiellen Konfigurationsmodus von MT8870 als Alternative zum Transformator fortfahren.
Die differentielle Lösung ist eigentlich der beste Weg. Die Idee, die ich erwähnt habe, den Widerstand zwischen die Rückleitung der Telefonleitung und den GND der Detektorschaltung zu legen, ist nur ein Vorschlag zum Ausprobieren. Am Ende werden immer noch zwei Telefonleitungen mit dem 2-fachen Vorwiderstand gekoppelt, was möglicherweise nicht akzeptabel ist.

Antworten (2)

Ja, Sie können sicherlich drei Ihrer DTMF-Decoderschaltungen an Ihren Mikrocontroller anschließen.

Obwohl sich die drei Telefonleitungen nominell (irgendwo) die gleiche Masse teilen, sollten Sie sie in Bezug auf Ihre Decoder wirklich als "schwebend" behandeln und einen Transformator verwenden, um das Audio von jeder Leitung an den entsprechenden Decoder zu koppeln.

Wenn ich für die Decoder eine differenzielle Eingangskonfiguration verwenden würde, würde dies den gleichen Zweck erfüllen?
Nein. Ein Differenzeingang ist nicht dasselbe wie ein potenzialfreier Eingang. Der Unterschied liegt im Bereich des verarbeitbaren Gleichtaktsignals.
Ich verstehe. Das Ziel besteht also darin, die Telefonleitung vom Stromkreis zu isolieren, damit sie nicht dieselbe Masse teilen? Was würde passieren, wenn ich sie nicht als schwebend behandeln und mit den Eingangssignalen fortfahren würde, die eine gemeinsame Masse teilen? Werden die Daten kollidieren, da nicht sichergestellt ist, dass die Telefonleitungen in Phase sind?
Tut mir leid, du hast mich verloren. Zu "Datenkollisionen" kann ich nichts sagen, da Sie uns nicht genau gesagt haben, wie Sie den Decoder an den Mikrocontroller angeschlossen haben. Und ich sehe nicht, wie die "Phase" der Telefonleitung (was auch immer das bedeutet) überhaupt relevant ist.
Es tut mir Leid. Die digitalen Ausgänge einer DTMF-Schaltung sind mit den I/O-Pins des Mikrocontrollers verbunden. Sie haben eine gemeinsame Basis.
Ich nehme an, wenn Sie drei DTMF-Decoder haben, würde jeder an seinen eigenen Satz von I/O-Pins angeschlossen werden. Warum sollte etwas "kollidieren"?
Ich bin mir aber bei meiner Aussage nicht sicher. Entschuldigung, aber ich denke, es würde ein Problem geben, wenn die 3 Telefonleitungen eine gemeinsame Basis haben würden. Und hier habe ich die Hypothese aufgestellt, dass es zu einer Datenkollision kommen würde. Korrigieren Sie mich, wenn ich falsch liege.
Der Decoder ist im Schaltplan bereits über einen Kondensator isoliert dargestellt. Die Notwendigkeit von Transformatoren, wie von David Tweed vorgeschlagen, hängt also vollständig davon ab, wie die andere Seite der Telefonleitung an diesen Stromkreis angeschlossen ist. Wenn es einfach mit GND verbunden ist, sind Transformatoren erforderlich. Sie möchten nicht die gemeinsamen Leitungen von drei Telefonleitungen miteinander verbinden. Der Grund dafür ist, dass Telefonleitungen nicht unsymmetrisch sind und der Versuch, mehrere Leitungen miteinander zu verbinden, ein AC-Leitungsfrequenzsignal in alle Leitungen einführt, wenn sie unsymmetrisch werden.
Muss ich in Bezug auf die Gesamtschaltung noch einen Transformator hinzufügen? Oder wird es einfach so funktionieren?
@Xegara Sie benötigen die Transformatoren aus den bereits genannten Gründen: Sie können die drei Telefonleitungen nicht so behandeln, als hätten sie dieselbe Erdung.

Gemäß dem Datenblatt für den MT8870D sind die Ausgänge Q1-Q4 des DTMF-Decoderchips normalerweise dreistufig, sodass Sie die Leitungen von jedem der MT8807D miteinander verbinden und in vier Eingänge des Mikrocontrollers einspeisen können.

Die Ausgänge werden dann als Ausgänge aktiviert, indem Sie die TOE-Leitung aktivieren, die Sie derzeit an Vcc angeschlossen haben. Stattdessen möchten Sie es mit einem Ausgang des Mikrocontrollers verbinden. Da es drei Decoder gibt, benötigen Sie für jeden Chip einen Enable-Ausgang.

Da die Ausgänge normalerweise drei Zustände haben, wie kann man feststellen, wann ein Ton vorhanden ist? Das ist die Funktion der Early Steering und Delayed Steering Ausgänge des Decoders. Das Early Steering geht hoch, wenn ein Ton anfangs vom Decoder erkannt wurde, und das Delay Steering geht hoch, wenn der Ton decodiert und in die Ausgangslatches eingespeist wurde. Sie möchten wahrscheinlich letzteres verwenden, um die Tri-State-Ausgänge zu aktivieren. Sie benötigen drei separate Eingänge am Mikrocontroller, um dies zu handhaben.

Sie haben also insgesamt vier Eingänge für die Ziffer, drei Freigabeausgänge und drei Steuereingänge, also insgesamt zehn, im Vergleich zu den 12 Eingängen für die Ziffern von drei Decodern und drei Steuereingängen für insgesamt 15 Leitungen für Ihren Stromkreis.

Das Hinzufügen eines zusätzlichen Decoders kostet in meinem Schema eine Eingangs- und eine Ausgangsleitung und fünf Eingangsleitungen für die ursprüngliche Schaltung.