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:
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.
Abgesenen vom Vorteil, das Telefon unverändert lassen zu können, handelt man sich mit dem Vorsatzkonverter gegenüber dem Festeinbau folgende Nachteile ein:
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.
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!
Ü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.
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.
Die Bastellösung mit Durchsteck-Bauelementen könnte so aussehen:
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.
Ebene Ziffer | Normalmodus | Speichermodus 01 | |||||||
---|---|---|---|---|---|---|---|---|---|
n0n1 (1 = 1 s am Fingeranschlag halten) | 1. Folgeziffer | Weitere Ziffern
| n0 | n1 | n0 | n1 | | ||
1 | Ziffer wählen | 11 = | Kurzwahl-Speicherplatz | Ziffer speichern | A speichern | ||||
2 | 21 = | B speichern | |||||||
3 | 31 = | C speichern | |||||||
4 | 41 = | D speichern | |||||||
5 | 51 = | 5 speichern | |||||||
6 | 61 = | 6 speichern | |||||||
7 | 71 = | 7 speichern | |||||||
8 | 81 = | 8 speichern | |||||||
9 | 91 = Rückruf / Wahlwiederholung | * wählen | * speichern | ||||||
0 | 01 = Speichermodus siehe rechts# wählen | # speichern
| |
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:
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.
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).
🍌 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.
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.
Die übrige Beschaltung orientiert sich an bereits erprobten Werten.
| ⇐ |
|
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.
Nunmehr (Mai 2019) wurde das Problem der CLIP-Dekodierung ohne zusätzliche Stromversorgung gelöst! Dazu waren folgende Vorkehrungen erforderlich:
ret
,
nicht reti
!) sorgt für bestes Laufzeitverhalten
bei geringster Stromaufnahme ohne Polling.
Zugehöriger Schlafmodus „ADC-Störunterdrückung“.
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:
acHisto()
zur Findung der Schaltschwelle:
Unsichere Einsattelung zwischen den beiden Peaks,
keine Verbesserung gegenüber acMean()
= Mittelwertbildung
sleep_cpu()
das Drosseln der CPU-Taktfrequenz nichts bringt
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.
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.
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?
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.
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.
Was? | Pulslänge | Pausenlänge |
---|---|---|
Wählimpuls | 62 ms | 38 ms |
Flash | 80 ±30 ms | — |
Hook-Flash | 170..310 ms | — |
Wunsch | Erfordernisse | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dauerstromversorgung | Eingriff ins Telefon | LC-Anzeige | Tasten | Flash | |||||||||||||||||||||||||||||||||||||
Wählen bei aufgelegtem Hörer | 50 µA (Vorwiderstand) | ja, außer W28, W38, W48 | nein | - | 0 | ||||||||||||||||||||||||||||||||||||
Anzeige der gewählten Rufnummer | * | nein | numerisch | - | 0 | ||||||||||||||||||||||||||||||||||||
Empfang der eingehenden Rufnummer (CLIP) | 500 µA (Vorwiderstand) | nein | nein | - | 0 | ||||||||||||||||||||||||||||||||||||
Anzeige der eingehenden Rufnummer (CLIP) | 2 mA vom Inverter | nein | numerisch | - | 0 | ||||||||||||||||||||||||||||||||||||
Anzeige von Namen zur Rufnummer (Telefonbuch) | * | nein | alphanumerisch | 3 | + 2..20 KByte | ||||||||||||||||||||||||||||||||||||
Anzeige von Ländern und Orten je nach Vorwahl (D+A)* | nein | alphanumerisch | - | + 150 KByte
| Durchblättern von Listen | * | nein | (alpha)numerisch | 3 | 0
| Eingehende DTMF-Signale dekodieren | (falls die Gegenstelle Tasten drückt) - | nein | numerisch | - | 0
| Ein Handy anklingeln nach entgangenem Anruf | 50 µA (Vorwiderstand) | nein | nein | 1 | 0
| Freisprechen bei aufgelegtem Hörer | Netzteil (500 mA) | ja | nein | 1 | 0
| Anrufbeantworter | Netzteil (40 mA) | ja | nein | 3 | + einige MByte
| * = 2 mA vom Inverter bei aufgelegtem Hörer, sonst kein Strom.
LED-Anzeigen erfordern Netzteil. | |