Impulswahl (IWV) nach Mehrfrequenzwahl (MFV) konvertieren

Zum Betrieb von alten oder Retro-Telefonen (oftmals Wandtelefon) mit Wählscheibe, also IWV = Impulswahlverfahren auf MFV = Mehrfrequenzverfahren (auch denglisch DTMF genannt), zum Betrieb an einer zu einfachen Telekommunikationsanlage (TK-Anlage, Haustelefon, Internet-Router).

Hinweis: Fritzboxen, aber auch mein Thomson-Kabelmodem, können mit Impulswahl umgehen. Wer einen solchen Internet-Router hat, braucht das nicht unbedingt, aber der zusätzliche Kurzwahl-Komfort ist ziemlich praktisch. Die Wählbarkeit von „*“ und „#“ erlaubt bei Fritzboxen einen Internruf: „**1“ wählt Fon1, „**2“ wählt Fon2 usw., „**9“ lässt alle internen Telefone klingeln.

Im folgenden geht es um den Einbau einer Schaltung zur Tonwahl in das Telefon. Im Gegensatz zu anderen Vorsatzkonvertern gibt es Komfortfunktionen wie Wahlwiederholung und Kurzwahl. Ohne Stützbatterie und mit minimalem Bastelaufwand. Die aktuelle Implementierung wertet das Festhalten der Wählscheibe am Fingeranschlag aus und benötigt keine Erdtaste.
Lösung mit Erdtaste.
Lösung als Vorsatzgerät.
Unabhängig von der Art der Implementierung, verzichtet man als Anwender auf die Extras, wird das Telefon unverändert bedient.

Es werden folgende Zusatzfunktionen realisiert:

Der grundsätzliche Schaltplan von Telefonen mit Wählscheibe ist stets gleich; hier ist es hervorragend erklärt: Fernsprecher W611. Das Mikrofon ist normalerweise ein Kohlegrieß-Mikrofon.

Vorüberlegung

Die einzig denkbare „Bediengestik“ zum Erreichen von Komfortfunktionen ist das „Innehalten“ mit dem Finger in der Wählscheibe am Fingeranschlag. Denn im Normalfall wählt der Bediener zügig.

Softwaretechnisch wird der zweite Kontakt des Nummernschalters „nsa“ ausgewertet und eine Zeitüberschreitung detektiert. Da zwei Ebenen Komfortfunktionen erforderlich sind, habe ich zwei Timeouts implementiert, deren Ablauf durch unterschiedliche akustische Signale im Hörer bekannt gegeben werden.

Mikrocontroller-Schaltung

Ausgangspunkt war Atmels Application Note AVR314. Es wurde auf einen ATtiny25 umgesetzt und der High-Speed-PWM-Generator im Zeitgeber 1 (mit 64 MHz Taktfrequenz und ≈250 kHz resultierender Trägerfrequenz) benutzt. Nur 1 Eingang für den Nummernschaltkontakt wird benötigt. Dadurch reicht der 8-beinige ATtiny25, und der RESET-Eingang kann zur In-System-Programmierung frei bleiben (= kein Hochvolt-Programmiergerät erforderlich).

Schaltplan, zur Reihenschaltung. Die Bauelemente-Werte sind weitgehend unkritisch

Für die Tonerzeugung ist zwingend ein externer Resonator oder Quarz erforderlich; der interne Oszillator erwies sich als zu instabil. Der Firmware-Quelltext ohne CLIP läuft mit allem zwischen 8 und 20 MHz, mit CLIP muss die Quarzfrequenz niedriger sein. Das erledigt Timer0, an dessen Interruptservice die DDS-Kurvenerzeugung „hängt“ sowie die gesamte Eingangsdatenverarbeitung. Das Hauptprogramm (main()) schließlich schickt den Prozessor in den Schlafmodus oder schubst die nächste Tonausgabe an.

Die Mikrocontrollerschaltung liegt in Reihe zum Telefon. Siehe FAQ. Das vereinfacht die Stromversorgung erheblich, denn eine 3,9-V-Zener-Diode D1 parallel zu den Betriebsspannunganschlüssen des ATtiny45 begrenzt die auftretende Spannung und sorgt für Verpolschutz sowie Sicherheit vor der Rufwechselspannung.

Die Anschlüsse für den Nummernschalter wurden freigemacht und zum Mikrocontroller verdrahtet. So gibt es keine Probleme mit irgendwelchen Potenzialverhältnissen.

Über den Widerstand R1 und den Kondensator C3 wird schließlich das Tonwahlsignal als PWM auf die Telefonleitung gegeben. Solange keine Tonausgabe läuft ist der Mikrocontroller-Anschluss hochohmig und stört das Gespräch nicht. Sade dass für das Erkennen von CLIP ein anderes Portpin erforderlich ist (mit Analogfunktion) als für die PWM-Ausgabe. Zu diesem Zweck sind Pin 6 und 7 verbunden.

Der Eingriff in das Telefon und der direkte Anschluss der Nummernscheibe an den Mikrocontroller erspart die Notwendigkeit, die Wählimpulse zum Amt hin „wegbügeln“ zu müssen. Denn die Telefonanlage kann diese Wählimpulse als Flash-Impulse missverstehen, wie sie von der Flash-Taste stammen. Das ergibt zumeist Besetzt. Oder das Amt kann doch Impulswahl, und bekommt jede Ziffer 2×, einmal als Pulsfolge, einmal als Ton: Ergebnis = Verwählt.

Ganz nebenbei stört das Herumspielen an der Nummernscheibe nicht das laufende Gespräch.

Ein vorsetzbarer Konverter ist komplizierter, erspart nur den Eingriff. Siehe da.

Firmware

Die Abkopplung des Nummernschaltkontaktes von der Amtsleitung ermöglicht eine komplette Neuzuweisung von Funktionen. Man könnte allen möglichen Blödsinn damit realisieren, etwa das Abspielen einer Tonfolge („Melodieklingel“) oder gar Sprache („Sie Vollidiot haben sich verwählt!“ wenn Flash-Speicher des Controllers groß genug) beim Wählen einer bestimmten Nummer oder so. Auch das Sperren von teuren Auslands- und Sonder­rufnummern fällt darunter. Auch ein Least-Cost-Router, den man allerdings von Hand aktualisieren müsste. Heutige (2015) Telefonverträge machen sowas allerdings kaum noch attraktiv.

Die Stromaufnahme der Testschaltung (bei 5 V aus dem Labornetzteil) lag bei lastabhängigen 18 mA bei Tonerzeugung sowie bei unter 500 µA in Ruhe.

Die minimale Speisespannung für den verwendeten Firmware-Quelltext beträgt 2,7 V wegen der Verwendung des Zeitgebers 1 im High-Speed-Modus (64 MHz). Bei entsprechend abgesenkter Speise­spannung sinkt seine Strom­aufnahme sowie die Lautstärke der Pieptöne.
Noch kleinere Speisespannungen bis herab zu 1,8 V erfordern Änderungen:

Die Firmware ist wie immer quelloffen und Freeware. Zudem deutsch kommentiert. Sie passt auch mühelos in den ATtiny25 (Füllgrad rund 60 %), da ist noch Platz für eigene Erweiterungen. Assembler-Routinen wurde nur für den geschwindigkeits-relevanten DDS-Generator verwendet, der Rest ist in C programmiert.

Aufbau

Die wenigen Bauelemente passen auf ein Stück Lochrasterplatine. Nur beim Verdrahten muss man aufpassen, dass man nichts falsch anschließt oder mit dem Lötkolben das Telefongehäuse anschmurgelt. Leider hatte ich keine passenden Steckschuhe …
Ansicht der Platine (C3 ist hier ein Elko, C2 habe ich weggelassen.)
Ich hatte gerade keine passende Steckfassung, sondern Goldstaub aus DDR-Zeiten (passend zum Telefon eben).

Vor der Inbetriebnahme ist zu prüfen:

Beim Einbau ist der Nummernschaltkontakt nsi (parallel nsr) für S1 zu verwenden! Also die beiden Leitungen von der Wählscheibe vom Telefon trennen und mit der Schaltung verbinden. Dieser normalerweise geschlossene Schalter muss daraufhin im Telefon gebrückt werden. Sonst funktioniert gar nichts auf Grund der dauerhaften Unterbrechung der Stromschleife.

Der Stummschaltkontakt nsa wird in Reihe zu nsi gelegt. Bei dreidrähtigen Nummernscheiben (DDR-Telefone ab den 70ern) ist dies bereits schaltungstechnich der Fall. Er ist normalerweise offen und schließt nur während Aufzug und Ablauf der Wählscheibe und erzeugt so das typische „Geräusch“ im Telefonhörer, dass das Rauschen vom Amt verstummt.

Für die Erdtaste — falls vorhanden — habe ich hier keine Verwendung. Moderne Telefonanlagen und VOIP-Modems können damit nichts anfangen, wohl aber mit einer Flash-Funktion. Dazu sollte die Erdtaste zu einer Flash-Taste umgebaut werden. Den gleichen Effekt erreicht man aber auch durch kurzes Antippen der Hörergabel.

Bedienungsanleitung

Folgende Symbolik verdeutlicht die Tastendrücke:

Kurzbedienungsanleitung
Standard
Wählen Rufnummer 0..9 (wie gehabt)
Erste Ebene
Kurzwahl Kurzwahlziffer 0..9 : Ausgabe gespeicherte Rufnummer
Zweite Ebene
Wahlwiederholung 1 : Ausgabe letzte Rufnummer
Zuletzt gewählte Nummer
als Kurzwahl speichern
2 Kurzwahlziffer 0..9
Neue Kurzwahl speichern 3 Rufnummer 0..9 Kurwahlziffer 0..9
A..D wählen 4..7 (kaum eine Telefonanlage kennt das)
* wählen 8
# wählen 9
Letzte Rufnummer löschen 0
Im Gegensatz zu „normalen“ analogen Tastentelefonen vergisst diese Schaltung die eingespeicherten Nummern nicht bei Stromausfall oder Abziehen der Telefonleitung! Eine Batteriestütze o. ä. ist daher nicht erforderlich.

Kapazität des Kurzwahl-Speichers

Diese ist an die EEPROM-Größe von 128 Byte eines ATtiny25 optimal angepasst: Wahlwiederholungs- und Kurzwahlspeicher sind für 22 Ziffern ausgelegt. Beim ATtiny25 (statt ATtiny45) stehen für die Kurzwahl auf Ziffer "0" nur 14 Ziffern zur Verfügung; bei mehr gibt es eine (unabgefangene) Kollision mit dem Speicher für Wahlwiederholung.

Fragen am Rande

Der Quarz ist beliebig?
Ja, in Grenzen, 4..20 MHz;
Kann ich einen programmierten Controller bekommen?
Ja, per Briefpost. Sie müssen mir allerdings mitteilen: Kosten = (Reichelt oder Pollin) + Versand, Vorkasse. Programmierung gratis, auch bei SO8. Und es kann etwas dauern.
Weitere Fragen verschoben nach dort.

Einsatzerfahrung

Ich benutze eigentlich nur den Kurzwahlspeicher. Damit macht das Telefonieren, genauer das Wählen so richtig Spaß. Während ich bei jedem anderen Telefon schon x-mal die Nummern neu eingeben musste (nach Stromausfall), halten die Nummern bei diesem Telefon länger als die Nummern der Angerufenen.

Berichtet wurde von einem Problem bei der Direktwahl mit einigen Kabelmodems: Durch die lange Pause zwischen den Wähltönen kommt das Modem durcheinander und meldet „besetzt“. Besonders bei langen Nummern. Lösung: Die Nummer zu Ende wählen, dann die Funktion „Wahlwiederholung“ + 1 verwenden.

Implementierung auf Kundenwunsch

Firmware für Quarzfrequenz 17,28 MHz sowie 14,xxx MHz wie oben und ohne Rufnummernsperre. (Der Quarz lag gerade herum.)

W48 von innen

In diesem Fall ist die Einbauanleitung folgende:

positive Spannung an b gegenüber a (regulär) negative Spannung an b gegenüber a (invers)
  • b (braun) abtrennen (wegen Gabelumschalter an a) und Schaltung in Reihe einbauen:
    • X2 an b des Telefons
    • X1 an die braune Ader zum Amt bzw. Modem (weil das „positiver“ ist als X2)
  • b (braun) abtrennen (wegen Gabelumschalter an a) und Schaltung in Reihe einbauen:
    • X1 an b des Telefons
    • X2 an die braune Ader zum Amt bzw. Modem (weil das „negativer“ ist als X1)
  • X3 an M' (leise MFV-Töne) oder M (laute MFV-Töne) dazu klemmen.
X3 an M' (leise MFV-Töne) oder M (laute MFV-Töne) dazu klemmen.

Aufbauerfahrung

Achtung! Der Mikrocontroller funktioniert nicht, wenn das Mikrofon kaputt ist! Dann ist die Stromaufnahme des Telefons zu gering.

Sollte das Amt oder das Kabelmodem während des Einspeicherns von Kurzwahlen auf Besetztton umschalten: Ignorieren und Weitermachen! Alles was der Mikrocontroller vom Amt erwartet ist Strom. Klar, von dem nächsten Rauswählen muss man den Hörer kurz auflegen.

Zur Funktionsanzeige im Bastellabor bietet es sich an, D1 durch 2 parallel geschaltete, weiße LED zu ersetzen. Da einfache LED maximal 20 mA vertragen, wird der max. 40 mA Schleifenstrom auf beide LEDs verteilt. Da LEDs gern mal kaputt gehen, ist trotzdem eine Z-Diode zur Absicherung gegen Überspannung notwendig, dann mit 5,6 V. Außerdem als Verpolschutz. Da diese LEDs sehr hell leuchten, kann man damit bspw. die Nummernscheibe beleuchten.

Nach Meldung eines Nachnutzers funktionierte der Konverter nicht mit Telekom Speedport und auch nicht mit einer Auerswald-Telefonanlage. Nach seiner Untersuchung ist das MFV-Signal für diese „Analoganschlüsse“ zu leise: USS = 100 mV. Laut ETSI-Standard sollen es Ueff ≈ 500 mV sein, für jeden einzelnen Sinuston. Die Verringerung des Widerstandes R1 von 10 kΩ auf 1 kΩ brachte die erwünschte Funktion. Dazu muss C5 von 100 nF auf 330 nF erhöht werden. Im Schaltplan ist's entsprechend aktualisiert worden.

Da dann die Hörerlautstärke unerträglich laut sein kann, sollte dann am Mikrofon eingespeist werden, nicht auf der a-Ader. Außerdem bringt die Spannungsbelastung an C5 und die höheren Ströme in das Mikrocontroller-Pin beim Klingeln Probleme, wenn man an der a-Ader einspeist. Daher verändert man die Schaltung am besten zur Version wie in der FAQ, Frage 2 angegeben: „Hinter“ dem Gabelumschalter, so wie ich es selbst zunächst gemacht hatte.

Umstricken des Telefons

Für die Einkopplung des Tonsignals ist es am besten, wenn der Gabelumschalter GU an der abgewandten Seite vom Mikrofonanschluss sitzt. Beim W28, W38 und W48 ist das gerade nicht der Fall! Weiterhin ist es günstig, wenn die Erdtaste am Mikrofon-Potenzial sitzt. Das ist der Fall bei W38 und W48. Daher ist es für den Einbau der Schaltung am besten, den Gabelumschalter (der kein Um- sondern nur ein Einschalter ist) wie in der folgenden Schaltung zu sehen umzubauen. Die Erdtaste, die so auch bei aufgelegtem Hörer funktioniert(!), ist vom in Reihe geschalteten Gabelumschalter zu trennen oder dieser zu überbrücken. Für bessere Kontaktsicherheit schaltet man beide Gabelumschaltkontakte parallel. Inzwischen ausgelaufene 1-µF-Kondensatoren für die Klingel (Wecker) kann man getrost durch einen klitzekleinen Elko 1 µF / 63 V ersetzen, da heutzutage (am DSL-Router) die Polarität bekannt und nicht tauschbar ist.

Letzter Schrei des Schaltplans, noch ohne Firmware

Alternativen

Optionen für mehr Komfort
WunschErfordernisse
DauerstromversorgungEingriff ins TelefonLC-AnzeigeTastenFlash
Wählen bei aufgelegtem Hörer50 µA (Vorwiderstand)janein-0
Anzeige der gewählten Rufnummer*neinnumerisch-0
Empfang der eingehenden Rufnummer (CLIP)500 µA (Vorwiderstand)neinnein-0
Anzeige der eingehenden Rufnummer (CLIP)2 mA vom Inverterneinnumerisch-0
Anzeige von Namen zur Rufnummer (Telefonbuch)*neinalphanumerisch3+ 2..20 KByte
Anzeige von Ländern und Orten je nach Vorwahl (D+A)*neinalphanumerisch-+ 150 KByte
Durchblättern von Listen*nein(alpha)numerisch30
Eingehende DTMF-Signale dekodieren
(falls die Gegenstelle Tasten drückt)
-neinnumerisch-0
Ein Handy anklingeln nach entgangenem Anruf50 µA (Vorwiderstand)neinnein10
Freisprechen bei aufgelegtem HörerNetzteil (500 mA)janein10
AnrufbeantworterNetzteil (40 mA)janein3+ einige MByte
* = 2 mA vom Inverter bei aufgelegtem Hörer, sonst kein Strom. LED-Anzeigen erfordern Netzteil.

Für ein Retro-Telefon geht das bestimmt zu weit … Wenn nicht, dann siehe CLIP-Dekoder. Aber erst mal ohne Freisprechen, Anrufbeantworter und Apothekerschaltung.