Impulswahl (IWV) nach Mehrfrequenzwahl (MFV) konvertieren (Vorsatzgerät)

Zum Betrieb von 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).

Alternativen:

Vorüberlegung

Ein CLIP-Dekoder ist überaus nützlich um Rückrufe zu ermöglichen. Zumindest sollte ein Klingeldetektor entgangene Anrufe zählen.

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. Dieser Zustand ist von außen (vom Vorsatzkonverter) detektierbar, weil dann die Spannung über dem Telefon von rund 4 V auf 0 V zusammenbricht (Kurzschluss).

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 bekannt gegeben werden. Der Piepton kann nur aus dem Vorsatzkonverter kommen; dort ist ein geeigneter Lautsprecher anzuordnen.

Das Wählen bei aufgelegtem Telefonhörer ist hiermit durch einen „Schaltungsfehler“ des W28, W38 oder W48 über den Zweitweckeranschluss möglich. Bei moderneren Telefonen geht das nicht.

Komfortfunktionen sind nicht mit einem Tastentelefon mit Impulswahl erreichbar. Es geht nur mit echten Nummernscheiben. Oder mit der Flash-Taste.

Vor- und Nachteile

Abgesenen vom Vorteil, das Telefon unverändert lassen zu können, handelt man sich mit dem Vorsatzkonverter gegenüber dem Festeinbau folgende Nachteile ein:

Schaltung für W38 „mfv3c“

Ausgangspunkt war Atmels Application Note AVR314. Nur 1 Eingang für die Überwachung der Telefonspannung wird benötigt. Dadurch reicht der 8-beinige ATtiny45.

Für die Tonerzeugung ist zwingend ein externer Resonator oder Quarz erforderlich; der interne Oszillator erwies sich als zu instabil.

Die Mikrocontrollerschaltung liegt in Reihe zum Telefon. Siehe FAQ. Das vereinfacht die Stromversorgung erheblich, denn eine 5,6-V-Zener-Diode D1 parallel zu den Betriebsspannunganschlüssen des ATtiny45 begrenzt die auftretende Spannung. Die (bei mir neu eingeführte) Einweggleichrichtung aus D2 und D3 macht die Klingelwechselspannung für die CLIP-Dekodierung nutzbar.

Ü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 überhaupt nicht.

IWV-MFV-Vorsatzkonverter

Der Vorschlag, das Telefon an W2 und b zu betreiben, wie von HolgerK angegeben, wurde aufgegriffen. Dadurch wird der Nummernschaltkontakt vom Signalweg abgetrennt, und man muss sich nicht mehr um die Unterdrückung der Wählimpulse kümmern. Das Telefon wurde umgepolt, um die Pullup-Widerstände des Mikrocontrollers nutzen zu können.

Wegen des Kurzschlusses im Telefon bei aufgezogener Wählscheibe ist keine Kontrolltonausgabe hörbar. Man muss die nötige Haltezeit selbst abschätzen oder beobachtet die optionale LED D4, die bei Überschreitung der Haltezeit aufleuchtet. Die Reduktion auf nur 1 „Shift-Ebene“ ermöglicht dann nur noch 8 Kurzwahlspeicher, und die Bedienungsanleitung von HolgerK (allerdings ohne Display und mit Rückruf statt Wahlwiederholung bei entgangenem Anruf) gilt.

Wie auch im vorangegangenen Konzept werden Kurzwahl und Wahlwiederholung unterstützt! Bei vorhandenem Anschluss des Telefons an einer TAE-Dose mit 2 oder 3 Buchsen kann der gesamte Konverter an einer der N-Buchsen betrieben werden.

Im Gegensatz zur Firmware von HolgerK benutzt diese die Speicherplätze 11 und 21 als gewöhnliche Kurzwahlspeicher, die man bei Bedarf mit * und # belegen kann, damit's gleich wird. Die Eingabe von * und # sowie A bis D erfolgt dann beim Einspeichern der Kurzwahlen durch langes Festhalten bestimmter Ziffern. Eine Direktwahl von * und # ist mittels 01, 9 und 01, 0 möglich, da es keine Kurzwahlspeicher 9 oder 0 zu befüllen gibt. Die Funktion 91 macht Rückruf, wenn CLIP-Daten empfangen wurden, sonst macht diese wie bei HolgerK Wahlwiederholung.
Die optionale Erdtaste macht dasselbe wie 91, also Rückruf bzw. Wahlwiederholung. Wird die Erdtaste während des Wählvorgang gedrückt, erspart das das Innehalten am Fingeranschlag.

Alle Pins des Mikrocontrollers haben Mehrfachfunktionen!

Signalverlauf

Über den Analogeingang an PB2 kann der Mikrocontroller CLIP dekodieren und so einen Rückruf ermöglichen. Da eine permanente Stromversorgung notwendig ist, wurde die Stromaufnahme durch eine deutlich verringerte Oszillatorfrequenz von 4 MHz auf unter 100 µA gesetzt. Der Dauerstrom wird von R2 geliefert (und verheizt: 90 µA × 55 V = 5 mW). Die Dekodierung von CLIP erfolgt über den A/D-Wandler, dessen Eingang vom Spannungsteiler aus internen Pull-Up und R2 bei halber Betriebsspannung gehalten wird.

													nsa: Wählscheibe aufziehen: -5V
														 ------------
abgehoben: -10V										Gespräch		|            |
--------------                          ---				  ---          ---/\/\/\---	     ---              -----
             |			       /   \				 /   \        |	  ≤ ±1V
	     |                        /     \				/     \       |
	     |                        |     |				|     |       |
	     |                        |     |				|     |       |
	     | 			      |     |				|     |       |
	     | aufgelegt: -60V        |     |            CLIP		|     |       |abheben
	     -------------------      |     |      ------/\/\/\/\-      |     |      --
				|     |     |     |      ≤ ±1V    |     |     |     |
				|     |     |     |               |     |     |     |
				|     |     |     |               |     |     |     |
				|     |     |     |               |     |     |     |
				\     /     \     /               \     /     \     /
				 \   /       \   /                 \   /       \   /
			   -120V  ---         ---                   ---         ---
				  Klingeln			    2. Klingeln
 
Spannung La gegenüber Lb; damit muss die Schaltung zurechtkommen

Die Klingelwechselspannung kann sowohl auf die 60 V Schleifenspannung aufaddiert sein (gesehen: Telekom-Anschluss Nieschütz), wie hier dargestellt, als auch an Stelle der Schleifenspannung anliegen (gesehen: Thomson-Kabelmodem). Die Umpolung darf keine Seiteneffekte auslösen oder gar Schaden machen.

Aufbau

Die Bastellösung mit Durchsteck-Bauelementen könnte so aussehen:

Board-Layout der o.a. Schaltung

Die wenigen Bauelemente passen auf ein Stück Lochrasterplatine mit Kupferstreifen. Die Kreise im Bild sollen Kupferfräsungen andeuten, d.h. dort wird der Kupferstreifen unterbrochen.

Hier wurde der Konverter in eine runde Postdose eingebaut. Die Platine hält sich über die Zentralschraube.

Aufbau-Foto

Firmware

Die Firmware ist halbfertig. Ich benutze nur noch (mein) avrpp zum Programmieren der Firmware. Als Neuerung verwendet die Firmware PB1 digital zur Klingeldetektion, das erweist sich als funktionssicherer als an PB2. Das funktioniert weil C3 nicht mehr am Mikrofon hängt. Der Hochlauf wurde überarbeitet und funktioniert nun nach einigen 10 Sekunden auch bei aufgelegtem Hörer. Das hatte früher nie geklappt, man musste (nach Stromausfall) den Hörer abnehmen.
Funktionsverteilung mfv3c zum Ausschneiden, Ausfüllen und Aufkleben
Ebene
Ziffer
NormalmodusSpeichermodus 01
n0n1 (1 = 1 s am Fingeranschlag halten)1. FolgezifferWeitere Ziffern
n0n1n0n1
1Ziffer wählen 11 = Kurzwahl-SpeicherplatzZiffer speichernA speichern
221 = B speichern
331 = C speichern
441 = D speichern
551 = 5 speichern
661 = 6 speichern
771 = 7 speichern
881 = 8 speichern
991 = Rückruf / Wahlwiederholung* wählen* speichern
001 = Speichermodus siehe rechts# wählen# speichern

Inbetriebnahme

Da dieser Schaltung die Polarität nicht egal ist, muss man's ausmessen und ggf. die Installation(!) korrigieren. Denn die Polarität ist (in Deutschland) genormt, Falschpolung kann daher nur durch fehlerhafte Eigen-Installation herrühren.

Vor der Inbetriebnahme ist zu prüfen:

Nach Anschluss ist zu prüfen:

Zweidraht-Lösung „mfv3“

Die Auswertung von nsi und nsa erfolgt hier mit nur einem Eingang mittels A/D-Wandler. Der Spannungsteiler für den Analogeingang PB2 an IC1 wird durch den internen Pullup von ≈35 kΩ komplettiert. Der neu hinzu gekommene pnp-Transistor T1 begrenzt die Spannung über's Telefon auf 12 V und übernimmt den Schleifenstrom, um für das Amt bzw. die Fritzbox die Wähl- und Flashimpulse zu unterdrücken. Dieser muss mindestens -120 V Sperrspannung vertragen. Ein genügend spannungsfester p-Kanal-MOSFET tut's hier auch und erspart R4. Die Wählimpulse bleiben als Donnergeräusch für den Gesprächspartner erhalten.

Einfacher IWV-MFV-Vorsatzkonverter (Konzept, Platinenvorschlag)

Schade ist, dass während des Wähl- oder Flash-Impulses der Stromfluss am Mikrocontroller vorbei über T1 erfolgt. Ideal wäre an dieser Stelle ein p-Kanal-Verarmungs-MOSFET oder ein p-Kanal-SFET mit ausreichender Sperrspannung mit dem Sourceanschluss an GND. Gibt's aber nicht zu kaufen: Gar keine p-Kanal-Verarmungs-MOSFETs und p-Kanal-SFETs bis maximal 30 V. Eine Kombination aus 2 Transistoren (bipolar oder MOSFET) ginge zwar auch, aber das wäre zu viel Aufwand für die vergleichsweise kurzen Impulse.
Das Umkehren der Schaltung zur Nutzung eines n-Kanal-Verarmungs-MOSFETs geht nicht, weil die mikrocontroller-internen, zu- und abschaltbaren Pullup-Widerstände entscheidend für die Funktion sind; AVR-Controller haben keine Pulldown-Widerstände.

Die Leuchtdiode D4 mitsamt Widerstand R3 ist optional und zeigt die aktivierte Zusatzebene an. Außerdem ist der Erdanschluss zur Detektierung der Erdtaste optional. Beides kann gemeinsam verwendet werden; dass dann beim Drücken der Erdtaste die LED leuchtet ist nicht schlimm. Verzichtet man auf D4 und die Erdtaste und hält so den RESET-Eingang frei, lässt sich der Mikrocontroller mit ISP wiederbefüllen. Bei den Reihenschaltungen aus R1+C3, R3+D4 und D5+D6 lassen sich selbstverständlich die Bauelemente vertauschen. Für D2+D3 lässt sich eine geeignete Doppeldiode verwenden, etwa SAL41 oder BAV99 (da gibt's heutzutage nichts im Durchsteckgehäuse).

Eagle-Dateien

Festnummern-Wahl „mfv3b“

🍌 Auf Wunsch eines einzelnen Herrn ein Vorsatzgerät mit 2 Tasten, das 2 feste Nummern per Tonwahl wählt. Das Telefon braucht dazu weder Wählscheibe noch Tasten.

Firmware zum Download. Ohne hier angegebenen Schaltplan. Dieser entspricht jenem mit 2 Tastern statt der Wählscheiben-Kontakte. Der Kondensator C5 geht an La. Ohne Foto; der Funktionsnachweis wurde auf Steckbrett erbracht, in Verbindung mit einem Thomson-Kabelmodem von TeleColumbus. C5 und R1 scheint das Klingeln nicht zu stören; es ist genauso laut. Auch 100 nF statt 1 µF für C5 funktionierte mit etwa gleicher Lautstärke. Größeres R1 macht Probleme mit Speedport-Modems (Telekom), bei mir nicht. Bei Verwendung eines Quarzes oder (billigeren) Resonators mit weniger als 10 MHz darf die Z-Diode D1 ein 3-V-Typ sein, sonst sind 4,7 V angeraten. Ungetestet läuft die Firmware ab 2,7 V, mit einem ATtiny25V und 4 MHz ab 1,8 V. CLIP erfordert mindestens 5,6 V, aber das nur weil Z-Dioden kleinerer Spannung so schlecht sind. Dreibeinige Resonatoren ersparen die lästigen 22-pF-Ballastkondensatoren.

Die beiden Nummern werden in ASCII in den EEPROM geschrieben. Siehe Quelltext. Dieser wird gemeinsam mit dem Flash-Speicher geschrieben. Das Anpassen des Makefiles an den Mikrocontroller, Quarz- oder Resonatorfrequenz und die Änderung der Rufnummern muss der Anwender übernehmen. Erstellt und getestet mit WinAVR 2010.

Konzept mit p-Kanal-Verarmungs-MOSFET

So würde ein p-Kanal-Verarmungs-MOSFET die Wählimpulse unterdrücken und dabei sicherstellen, dass der Schleifenstrom weiterhin den Mikrocontroller in Betrieb hält und nicht um diesen herumfließt. Schade dass es keinen zu kaufen gibt, und dass ersatzweise p-Kanal-SFETs zu geringe Spannungen und Ströme haben. Das gilt gleichermaßen auch für n-Kanal-SFETs, die allesamt nur im Kleinleistungsbereich angesiedelt sind.

IWV-MFV-Vorsatzkonverter (Konzept)

Die übrige Beschaltung orientiert sich an bereits erprobten Werten.

Sonstiges

Kalkulation der Spannung am Pin 7 = PB2 = ADC1

Ui = UCC – (UCCULa) / (1 + Ra / Ri))
Spannungswerte
ULaZustandUiA/D-Wert
0 Vnsa betätigt
-3 VGespräch
-8 V
-12 Vnsi unterbrochen
-48 Vaufgelegt und
Relais abgefallen
-60 V
= V
= V
= kΩ
= kΩ

Ergebnis: Siehe da! Entscheidend für Ra ist der Ruhestromverbrauch bei aufgelegtem Hörer sowie mit Ri ein Analogwert größer 0 V für den gesamten Betriebsspannungsbereich, der während der CLIP-Dekodierung fallend durchlaufen wird. Die Ruhestromaufnahme bei 680 kΩ liegt bei (60 V - 5 V) / 680 kΩ = 81 µA. Beim Modem mit -48 V bei (48 V - 5 V) / 680 kΩ = 63 µA. Einen „höchstzulässigen Grenzwert“ gibt es nicht. Beim „üblichen“ Schwellenwert 1 mA verbrät Ra immerhin bis zu 60 mW und wird spürbar warm. Bei 80 µA sind es nur 5 mW, vernachlässigbar. Info.

Praktisches Ergebnis

Nunmehr (Mai 2019) wurde das Problem der CLIP-Dekodierung ohne zusätzliche Stromversorgung gelöst! Dazu waren folgende Vorkehrungen erforderlich:

Oszillogramm am Pin 7 im aufgelegten Zustand

330 µF für C1 ist ein guter Wert, um eine bei nahezu Volllast laufende CPU für eine halbe Sekunde zu speisen. Auf der sicheren Seite ist man mit ebenfalls handelsüblichen 470 µF. Ein Superkondensator ist somit nicht erforderlich. Ausprobiert wurde außerdem:

Weiterhin ausprobiert (190529)

R2 mit 1 MΩ, in Verbindung mit Schaltschwelle bei 7/8 UCC, könnte Elko C2 drastisch verkleinern helfen (Ziel: 1000 µF wie ursprünglich anvisiert)
Verringerung des Elko-Ladestroms, lädt zu langsam nach. Verringerung der Signalamplitude führte zu CLIP-Fehlerkennungen. Elko mit 1000 µF führte zu Nichterkennung von CLIP. Möglicherweise geht es besser mit Graetzbrücke, da dann der Elko nicht vom Klingeln teilentladen wird. Ein Widerstandswert von 680 kΩ funktionierte ohne Software-Änderung, aber wegen Verringerung der Wechselspannungsamplitude leicht unsicherere CLIP-Erkennung. Ein versuchsweiser Hochpass brachte rätselhafterweise keine Verbesserung, ist aber möglicherweise ein Dimensionierungsproblem (C war viel zu groß). Möglicherweise muss genau so ein Hochpass bei anderen Kabelmodems benutzt werden.
Aktivierung des Brown-Out-Detektors (bei 1,8 V für ATtiny45V)
Keinerlei funktionale Veränderung, egal ob aus, 1,8 V oder 2,7 V: Geht alles gleichermaßen. In keinem Fall funktioniert ein Selbsthochlauf im aufgelegten Zustand (470 kΩ, 2200 µF), zum Startup muss der Elko geladen sein oder der Hörer kurz abgenommen werden.
Da der Hochlauf nur bei „Durchströmung“ der Schaltung (bei abgenommenem Hörer und intaktem Mikrofon) funktioniert, sollte sich neuere Firmware gegen Parallelschaltung von Telefonen absichern, um wenigstens einige Minuten durchzuhalten. TODO: Zurzeit fällt die Firmware in den abgehobenen Modus und zieht sehr schnell den Elko leer.
Alles bei voller CPU-Frequenz (aber max. 4 MHz wegen 1,8 V) — Es hat sich gezeigt, dass in Verbindung mit sleep_cpu() das Drosseln der CPU-Taktfrequenz nichts bringt
Habe ich nicht zur Funktion bekommen: Rätselhafte höhere Stromaufnahme im abgehobenen Zustand, CLIP funktionierte nicht mehr. Daher zurückgestellt und belassen.
Variable Resonatorfrequenz (nicht auf 4 oder 8 MHz fixiert)
Wurde implementiert aber nicht getestet. Der heruntergeteilte CPU-Takt liegt nun stets im Bereich 1 MHz ≤ fCPU < 2 MHz. Als Zeitbasis für alles außer der Frequenzsynthese fungiert der davon unabhängige Watchdog-Oszillator.

Nochmal ausprobiert (190605)

Zunächst wurde für C1 ein Minimum bei 2200 µF gefunden. Das ist immer noch ein ziemlicher Batzen. Bei kleinerem Kondensator C1 konnte kein Wegdriften von UPin7 unter 0 V beobachtet werden. Also muss die Ursache woanders liegen. Das Reduzieren der Glättungszeitkonstante TAU_SH von 8 auf 4 brachte dann den Durchbruch: Es sind für C1 gar nur 330 µF erforderlich! Auch ließ sich R2 von 470 kΩ auf 680 kΩ erhöhen, ohne dass die CLIP-Detektion leidet. 1 MΩ ist aber zuviel.

Am Telekom-Anschluss probiert (190608)

Spannung auf La rund -60 V, mit überlagerter Brummspannung von 20 VSS 50 Hz, die bei Anschluss des Schnurlostelefons etwas zurückging und „oben“ abgeplattet wurde. Spannung UPin7 bei R2 = 680 kΩ im erlaubten Bereich. Keine Funktion der CLIP-Detektion. CLIP-Wechselspannung deutlich kleiner, daher Hochpass aus Kondensator C4 und Schutzwiderstand R3 erforderlich. Das probeweise hinzugefügt brachte immer noch nichts, vermutlich setzt CLIP etwas früher ein als beim Thomson-Kabelmodem.

Um bei Hochpass zu funktionieren, muss die Firmware etwas geändert werden: Der Betriebsmodus zwischen den 16-ms-Schlafpausen muss etwas verlängert werden, um die Abtastzeitpunkte für UPin7 nach hinten zu verlagern. Denn C4 bewirkt Tiefpassverhalten beim Detektieren der Spannung an La. Es steht trotzdem genug Energie über R2 zur Verfügung.

Am Telekom-Anschluss probiert (190615)

Hochpass eingebaut, Firmware für längere Abtastung des Ruhepegels am Pin 7 entsprechend angepasst. (Vergleiche Bild 6 mit Bild 7!) Wieder nichts. Jetzt weiß ich nicht mehr weiter. Watchdog-Timeout verlängern? Digital-Speicheroszi beschaffen?

Langzeitbelichtungen; Pin 7; 2 ms/div, 1 V/div

Im übrigen wird das erste Klingeln nicht sicher detektiert. Müsste man dazu die Abtastrate erhöhen? Mit dem Watchdog geht das dann leider nicht.

Flash und Hook-Flash?

Um einen Flash zu generieren fehlt dem Mikrocontroller ein Pin. Ein Flash wäre ungefähr genauso wie die Impulswahl einer „1“. Daher kann es Flash nur mit Tonwahl geben. Deswegen gibt es das längere Hook-Flash, das man bequem durch Antippen der Hörergabel auslösen kann. So gut wie alle Modems unterstützen Hook-Flash dergestalt, dass man zum Auflegen eine deutliche Mindestzeit auf die Gabel drücken muss.

Zeiten
Was?PulslängePausenlänge
Wählimpuls62 ms38 ms
Flash80 ±30 ms
Hook-Flash170..310 ms

Alternativen

Optionen für mehr Komfort
WunschErfordernisse
DauerstromversorgungEingriff ins TelefonLC-AnzeigeTastenFlash
Wählen bei aufgelegtem Hörer50 µA (Vorwiderstand)ja, außer W28, W38, W48nein-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.