Serielle Konsole
| AVM Wiki >> Zubehör >> Serielle Konsole | @ whmf - IRC-Chat - hu nl it English |
| Community | Modelle | Zubehör | Environment | Konfiguration | Shell-Befehle | Software | Freetz | Lexikon | Tipps+Tricks | Bilder |
| Telefone+Anlagen | WLAN-Zubehör | ISDN+DSL-Karten | Externe Modems | Sonstiges Zubehör | Bauanleitungen | Todo |
|
![]() Serielle Konsole jeder FRITZ!Box |
Begriff
| Begriff: | Serielle Konsole - Wikipedia | Wiki | Freetz | IPPF | whmf | AVM | Web |
| Kurz für: | - | ||||||
| Bedeutung: | Hier: Serieller Anschluss zum Debugging mit einem Terminal (-Programm) und der ADAM2 Shell | ||||||
Einführung
Nahezu jeder Microcontroller und jeder SoC verfügt heute über (mindestens) eine integrierte UART-Baugruppe mit der eine minimalistische RS232-Schnittstelle ohne Zusatzkosten realisiert werden kann. Diese wird meist zur Ausgabe von Logs und zum Empfang von Diaggnosebefehlen genutzt. Im Gegensatz zum seriellen Port am PC werden nicht die in der RS232-Norm definierten Pegel verwendet, sondern die niedrigen Spannungen mit der das jeweilige System betrieben wird. Obwohl die Signalform voll kompatibel ist benötigt man zum Anschluss an einen PC einen Pegelwandler.
Da ein Pegelwandler Zusatzkosten darstellt wird er idR. nicht auf der Platine eines Gerätes implementiert sondern bei Bedarf vorgeschaltet. Dies erspart auch unnötigen Platz- und Energieverbrauch. Die minimalistischte RS232-Lösung besteht aus 3 Leitungen, der Masse (Gnd), den Empfangsdaten (RxD) und den Sendedaten (TxD). Zur Speisung eines Pegelwandlers oder als Referenzspannung wird meist zusätzlich die Betriebsspannung (z.B. 3.3V) herausgeführt.
Ein solcher 4-Draht-Anschluss befindet sich auch in jeder FRITZ!Box, in Form von 4 meist gebohrten Pins im Rastermaß 2.54mm. Um Verpolung auszuschliessen sind die 3 für den Minimalbetrieb notwendigen Pins rund ausgeführt, der optionale 3.3V Pin dagegen quadtratisch.
Anschlussmethoden
Je nachdem ob man seinen Pegelwandler selbst speist oder ihn aus der Schaltung speist benötigt man eine 3- oder 4-polige Verbindung. Bei Modellen mit gebohrtem Anschluss bietet sich das Einlöten einer einreihigen Pfostenleiste im üblichen 2,54mm-Raster an. Den Pegelwandler kann man dort bei Bedarf z.B. über den Stecker eines Soundkartenkabels anschliessen. Zudem kann er so für mehrere Geräte genutzt werden.
Die Pinbelegung des Anschlusses ist bei allen Modellen gleich, die Position des Anschlusses variiert jedoch zwischen den Modellen. Wo sich die Anschlüsse beispielhaft bei manchen Modellen befinden sieht man gut in der Galerie weiter unten.
Bei einigen Varianten der Eumex 300 IP, wie bei einigen FRITZ!Box SL, fehlen die Bohrungen für den seriellen Anschluss. Das Durchmessen der Pads zeigte, dass keiner der Pads für TxD und RxD, weder auf der Oberseite noch auf der Unterseite, Signal führen. Das Signal ist in der zweiten Platinenlage von unten (keine Bauteile) angebunden. Man kann die beiden Kupferflächen auf der Unterseite mittels eines heißen Lötkolbens entfernen und sich dann, sehr vorsichtig, zu den signalführenden Pads durchkratzen. Am besten ist es, wenn man mit einem sehr dünnen Bohrer (0.5mm) vorbohrt und dann von Hand mit einem größeren (2-3mm) durchschabt, bis das Kupfer zu sehen ist. Daran sollte ein dünner Fädeldraht gelötet werden, damit die mechanische Belastung auf die Kontakte nicht zu hoch ist. GND und 3,3V sind jedoch angebunden.
Pegelwandler
Um die 3,3V Pegel der Box mit den RS232-Standardpegeln (-3 bis -12V / +3 bis +12V) zu verbinden benötigt man also einen Pegelwandler. Da viele PCs heute nicht mehr über eine serielle Schnittstelle verfügen benötigt man dort zusätzlich einen RS232-Adapter fur den USB-Anschluss. Je nach Bedarf gibt es hierfür mehrere Lösungen:
Handykabel
Eine günstige und kompakte Lösung stellen geeignete Handy-Datenkabel dar. Man kann sie für 5-6€ inkl. Versand bei eBay ersteigern und es gibt sie mit RS232- oder USB-Anschluss. Folgende Datenkabel wurden erfolgreich getestet:
- RS232: Siemens-Originalkabel für x45-Serie
- RS232: No-Name-RS232-Kabel für x55-Serie von Siemens.
- USB: No-Name-USB-Kabel für x55-Serie von Siemens
- USB: China-USB-Kabel für Siemens A55, C55 usw. von Reichelt.
Die Steckerbelegung der Handystecker am Kabel findet man z. B. auf nobbi.com.
Die beiden No-Name-Kabel hatten jeweils nur drei Adern: DataIn, DataOut und GND. In dieser Reihenfolge kommen die Adern an Rxd, Txd und GND.
Beim Siemens-Kabel musste noch die UBat-Ader an 3.3V gelegt werden und ein Pull-Up Widerstand (z.B. 4.7kOhm oder 10kOhm) zwischen die Adern UBat und DataOut geschaltet werden. Bei (meinem) Original Siemens RS232 (S25-S45) ist kein Pull-Up Widerstand nötig.
Im No-Name-USB-Kabel als auch im Reichelt-Kabel steckt ein PL2303-USB-seriell-Konverter. Betrieb unter Linux ist 'plug-and-play', ein Treiber für Windows lag auch bei.
MAX3232-Schaltung
Wer zu den bequemeren Elektronikbastlern gehört kann sich einen RS232-Pegelwandler mit einem Spezial-IC von Maxim und 4 zusätzlichen Kondensatoren aufbauen. Dazu verwendet man den MAX3232CPE, die 3.3V Variante des bekannten MAX232 und z.B, ein Stück Lochrasterplatine.
- Selbstbau aus Maxim oder vergleichbarem Chip (ein paar Kondensatoren und ein Stück Lochrasterplatine sowie entsprechende Erfahrung vorrausgesetzt)
Wer diese Variante bevorzugt (hier nur ein Hinweis darauf, keine Anleitung), besorge sich das Datenblatt für den MAX3232CPE (DIL ) auf und löte die Schaltung entsprechend zusammen. Schließlich hat man so einen seriellen Anchluss für den PC. Will man daraus noch einen USB Adapter machen, schaltet man einen entsprechenden USB<->Seriell Chip dazu.
Simple 2-Transistor Lösung
Eine simple Lösung ist auf picprojects.org dokumentiert. Sie erfüllt nicht ganz die RS232 Spezifikation, wurde aber für kurze Leitungen als zuverlässig getestet. Sie besteht komplett aus konventionellen Bauteilen, die fast jeder Bastler umherliegen hat oder aus ausgemusterten Geräten extrahieren kann.
Software
Sowohl der Bootloader ADAM2 mit seiner ADAM2 Shell als auch die AVM-Firmware benutzen die serielle Konsole und sind darüber auch noch erreichbar, wenn man sich die Netzwerkconfig einmal ganz zerschiesst. Für die Benutzung auf einem Windows-PC bietet sich die Terminalsoftware hterm an. Auf Linux basierten Rechnern empfiehlt sich minicom. Wer auch unter Linux nicht auf ein GUI verzichten will, der mag sich cutecom besorgen (dort unbedingt unter Input "CR line end" einstellen).
Anschluss der Box an eine andere Fritzbox
Man kann auch zwei Fritzboxen zusammenschließen und so die seriellen Ports/Konsolen nutzen (Idee: IPPF-Thread). Der große Vorteil liegt darin, dass man keinen Pegelwandler benötigt, weil beide Fritzboxen mit dem gleichen Pegel arbeiten. Dies stellt jedoch zugleich den größten Nachteil dar, da die Geräte galvanisch gekoppelt werden und sich damit Störungen optimal verschleppen können. Außerdem belastet ohne Leitungstreiber die Kapazität des verwendeten Verbindungskabels direkt den SoC und dient zudem als Antenne für Störungen. Daher sollte man diese Idee eher als Hack ansehen oder sich um geeigete Treiber/Entkopplung kümmern.
Generell genügt eine 3-Draht Verbindung (RxD und TxD kreuzen und Gnd verbinden - 3v3 offen lassen!) und das Anpassen der Baudrate beider Geräte. Die notwendigen Treiber sind in der Firmware enthalten und werden auch aktiviert, beide Modelle können dann gegenseitig ihre Logs lesen, was jedoch auch abschaltbar ist.
Für eine intelligentere Nutzung dieses Ansatzes ist es erforderlich, dass man sich recht gut auf der Softwareebene der Fritzbox auskennt. Entweder lädt man sich die entsprechende Software vorkompiliert aus dem Internet auf das temporäte Dateisystem der Box oder man setzt eine modifizierte Firmware ein, die die entsprechende Software integriert.
Im folgenden bezeichnet der "Server" die Box, die beobachtet werden soll, während der "Client" die Box darstellt, von der aus die Terminalsoftware gestartet wird um die Ausgaben des Servers zu sehen und Eingaben auf dem Server zu machen.
Offenbar kann nicht jede Box als Client eingesetzt werden. Erfolgreich eingesetzt werden kann z.B. die 7270 an einer anderen 7270 oder einer 7170. An einer 7390 eignet sie sich auch, jedoch werden ständig Zeichen beim Empfangen verschluckt, was wohl an der erhöhten Datenrate der 7390 liegt, mit der die 7270 nicht so gut klar zu kommen scheint. Sowohl die 7390 als auch die 7170 lassen sich als Client an einer 7270 jedoch nicht nutzen (Grund unbekannt). Also muss hier wieder gesagt sein, dass das Verbinden von zwei Boxen nur ein Hack ist (auch wenn sich diese Methode möglicherweise eignet um eine Box wieder zum Leben zu erwecken).
Verdrahtung der Boxen
Man verbinde die Masse der beiden Boxen und die Datenleitungen zwischen Server und Client überkreuz (Input der einen Box ist schließlich Output der anderen Box):
Server Client GND O-----------O GND TxD O-----\/----O TxD RxD O-----/\----O RxD 3V3 [] [] 3V3
Software
Auf dem Client brauchen wir eine Terminalsoftware, z.B. minicom. Diese kann man sich z.B. mit Hilfe von Freetz in die Firmware bauen (Eine vorkompilierte Version gibt es in diesem IPPF-Thread).
Der Port, der benutzt werden soll ist /dev/ttyS0 (bei der 7320 /dev/ttyS1 !). Bevor man auf diesen Port der Client-Box uneingeschränkt zugreifen kann, muss man die shell, die darauf läuft, von diesem Port lösen. Dazu ist es zunächst erforderlich, die Datei /etc/inittab auf der Client-Box zu patchen. Auf einer 7270 mit Freetz-Firmware sieht diese so aus:
# ::restart:/sbin/init ::sysinit:/etc/init.d/rc.S # Start an "askfirst" shell on the console (whatever that may be) /dev/ttyS0::askfirst:-/bin/sh # Stuff to do before rebooting ::shutdown:/bin/sh -c /etc/inittab.shutdown
Man kopiere diese Datei in das temporäre Dateisystem der Box um sie bearbeiten zu können, hier /var/tmp. Die Zeile "/dev/ttyS0::askfirst:-/bin/sh" muss auskommentiert werden mit einer Raute. Dazu einen Editor benutzen oder wie unten einen passenden sed Befehl ausführen. Anschließend mounten wir die veränderte Datei zurück an ihre eigentliche Stelle im Dateisystem und lösen den Prozess init von seinem Terminal. Das Patchen der Datei /etc/inittab bewirkt dabei, dass auf dem Port nicht sofort wieder eine neue Konsole gestartet wird.
cp /etc/inittab /var/tmp sed -i 's|^/dev/ttyS0|# /dev/ttyS0|' /var/tmp/inittab mount -o bind /var/tmp/inittab /etc/inittab killall -HUP init
Im Anschluss kann man minicom ausführen und den Port /dev/ttyS0 nutzen. Entsprechend konfiguriert (siehe Einstellungen) besitzt man dann Schreib- und Lesezugriff auf die serielle Konsole der Server-Box.
Terminaleinstellungen
Die Konsole ist über ein beliebiges Terminalprogramm zu erreichen. Das Terminalprogramm sollte großzügig puffern können (gerne 10.000 Zeilen), damit man alle durchgeführten Anweisungen, die beim Booten der Box ausgeführt werden, nachverfolgen kann.
Die serielle Geschwindigkeit ist nicht für alle Boxen gleich.
AR7 und UR8 Modelle (wie 7170, 7270 usw.) brauchen folgende Einstellung (38400 8N1):
- 38400 Baud - 8 Datenbits - 1 Stoppbit - kein Paritätsbit
AR9, VR9 und Fusiv Modelle (wie 7320, 7390) brauchen folgende Einstellung (115200 8N1):
- 115200 Baud - 8 Datenbits - 1 Stoppbit - kein Paritätsbit
Beispiel mit HTerm und Fritz Box Fon WLAN 7050
Weitere Anwendungsmöglichkeiten
Die serielle Konsole lässt sich deaktivieren, um die Schnittstelle anderweitig zu nutzen. Siehe dazu im Abschnitt "Software" unter "Anschluss der Box an eine andere Fritzbox". Dann ergibt sich z.B. folgende Anwendungsmöglichkeit:
- Mit der seriellen Schnittstelle könnte man über AT-Kommandos ein angeschlossenes Handy (z.B. ein Siemens S45) ansteuern (siehe www.nobbi.com). Dadurch würde man die Fritzbox als GSM-Gateway nutzen können. Lediglich die Beschaltung der Audioausgänge (Headsetanschluss) des Handys mit der Fritzbox wären noch zu klären (über Analoge-Telefonanschlüsse?!).
Beispielausgabe beim Booten
- Siehe: 3030_Bootlogs#21.03.97
Galerie
Bitte die Galerie nach Belieben mit eigenen Werken erweitern, auch per E-Mail. Siehe auch die Inspiration zu Bildern.
Serielle Konsole
FBsl ungebohrtSerielle Konsole
FBsl gebohrtSerielle Konsole
3170Serielle Konsole
3170Serielle Konsole
3170Serielle Konsole
7170 V2Serielle Konsole
7170 V2Lumberg Konsole
7170 V1Lumberg Konsole
7170 V1Serielle Konsole
7270 V2Serielle Konsole
W503V- Serielle Konsole-Bild4.jpg
Lade mich hoch
- Serielle Konsole-Bild5.jpg
Lade mich hoch
- Serielle Konsole-Bild6.jpg
Lade mich hoch
- Serielle Konsole-Bild7.jpg
Lade mich hoch
Artikel zum Thema
Siehe auch
Anschlussbelegungen: (69) (im Bau)
- Buchsen: RJ-11, RJ-12, Steckklemme, RJ-45, S0-Bus, Ethernet, USB, USB-Host, USB-Slave, Power-Buchse
- Kabel: Y-Kabel, TAE-DSL-Kabel, RJ-45-DSL-Kabel,
- Adapter: TAE-Adapter-Stecker, TAE-Adapter
- Intern: Serielle Konsole, EJTAG, Mini-PCI, Mini-PCIe, U.FL
- Extern: Netzteil, Hohlstecker
- Schalter: Power-Schalter, Reset-Taster, WLAN-Taster, DECT-Taster
- Todo: RJ-Stecker
- 8.45VA: 311POW042
- 4.0VA: 311POW055
- 6.0VA: 311POW051
- 8.4VA: 311POW039
- 12.0VA: AVM01047, 311POW029, 311POW047, W101B-Netzteil
- 12.0VA: W503V-Netzteil, C503V-Netzteil, W701V-Netzteil, C701V-Netzteil
- 14.4VA: AVM04047
- 16.8VA: 311POW044, 311POW067, 311POW068, W920V-Netzteil
- 18.0VA: 311POW001, 311POW037, 311POW046, W900V-Netzteil
- 24.0VA: 311POW062, 311POW077
- AVM01035 (FBF)
- 311POW002, 311POW030, 311POW035, 311POW040, 311POW061
- 311POW065, 311POW066, 311POW072, 311POW075, 311P0W085, 311P0W088
- AVM01012 (TODO: 8V 500mA 4VA 2: 22V 220mA 4.84VA, UK)
- AVM01014 (8V AC, 5.2VA + 22V AC, 5.3VA)
- AVM01019 (6.7V AC, 3VA + 22V AC, 2.4VA)
- AVM01022 (TODO: Vermutlich 8V AC + 22V AC)
- AVM01023 (TODO: 5V 480mA + 22V 171mA)
- AVM01026 (5V AC, 3.9VA + 22V AC, 3.7VA)
- AVM01028 (TODO: FRITZ!X USB v3.0 int)
- AVM01029 (TODO: Teledat X130 DSL)
- AVM01031 (5.2V AC, 4VA + 22V AC, 3.7VA)
- AVM01034 (TODO: BlueFRITZ! DSL?)
Bilder
Pinbelegung der seriellen Schnittstelle:
Illustration serieller Anschluss FBF WLAN
Bei der FRITZ!Box Fon WLAN 7050 liegt der Anschluss an einer anderen Stelle und zwar quer zur Platine. 3.3 V liegt dabei in Richtung der hinteren Anschlussleiste:
Illustration serieller Anschluss FBF 7050
Position des Anschlusses bei der FRITZ!Box Fon WLAN 7141 (direkt neben dem Quartz; die 3,3 V liegen dabei in Richtung der vorderen Anschlussleiste):
Illustration serieller Anschluss FBF 7141
Position des Anschlusses bei der FRITZ!Box Fon WLAN 7170, links Mitte:
Illustration serieller Anschluss FBF 7170 (externer Link)
Illustration serieller Anschluss FBF 7170
Bei einigen Varianten der FRITZ!Box SL ist die serielle Konsole nicht mit Bohrungen durch die Platine geführt, so dass sich die Kontakte an der Unterseite der Platine befinden:
Illustration serieller Anschluss FB SL (Unterseite)
Andere Varianten der FRITZ!Box SL besitzen die üblichen Löcher:
Noch eine Variante FRITZ!Box 7170SL
Es gibt von der FRITZ!Box SL mehrere Varianten. Bei einer habe ich die Kontakte noch nicht gefunden, bei der anderen sind die üblichen Löcher vorhanden.
