µC-Bastelei: Eine DSL-“FlapBox”

Ich wollt’ schon lange mal wieder was mit einem Microcontroller basteln, am liebsten mal mit einem Atmel AVR. Und nun findet sich auch eine Anwendung: Ich benötige dienstlich ein Gerät, das für Endgeräte-Stabilitätstests eine DSL-Anbindung periodisch unterbricht und wieder durchschaltet, das ganze mit veränderbaren Zeiten und Intervallen. Ein Name schwirrt mir auch schon im Kopf rum: DSL-FlapBox.

Erste Ideen mit NE555 verwerfe ich schnell wieder: Zu hoch ist der Aufwand, alle nötigen Timingparameter verlässlich einstellbar zu realisieren.

Also muss ein Mikrocontroller her, ein Atmel AVR scheint hier auch eine gute Wahl zu sein. Und weil ich ein bequemer Mensch bin ;), mache ich um Assembler und C einen Bogen und gebe Bascom AVR (http://www NULL.mcselec NULL.com/) (einer Basic-Implementierung für µC) den Vorzug; die “freie” Variante ist für dieses Mini-Projekt ausreichend.

Fehlt noch ein “User Interface”, also ein paar Taster und eine Anzeige. Da ich aber keinen größeren Aufwand treiben möchte, entscheide ich mich für eine Standard-PS/2-Tastatur zur Steuerung und eine Duo-LED zur Statusanzeige. Die Tastatur ist etwas “oversized” und die LED etwas minimalistisch, beides stellt aber einen brauchbaren Kompromiss dar. Und praktischerweise bietet Bascom AVR schon integrierte Funktionen, um eine PS/2-Tastatur abzufragen…

Auswahl des µC

Welcher Controller genau zum Einsatz kommt, hängt primär von der Anzahl benötigter I/O Pins ab. Auf dem Zettel habe ich:

  • Einen Pin für das Relais, das die DSL Strecke auf Wunsch trennt (via Transistor)
  • Zwei Pins für eine Duo-LED, um den Status anzuzeigen
  • Zwei Pins für die PS/2 Tastaturschnittstelle

Macht in Summe 5 I/O Pins, dazu noch Betriebsspannung, Masse und der obligatorische (hier ungenutzte) Reset-Pin: Perfekt für einen 8-poligen ATtiny! Zum Einsatz kommt die Version mit 4 kB Flash-Speicher (ATtiny45/V), welcher auch quasi bis zum letzten Byte genutzt wird. Als Flash-Programmer dient mir der mySmartUSB light (http://www NULL.myavr NULL.de/).

Ein externes Steckernetzteil mit 5 V / 2 A (stabilisiert) steht zur Verfügung, so dass ich mir um die Stromversorgung keine Gedanken machen muss.

Das ganze müsste sich dann doch recht klein auf einer Lochrasterplatine aufbauen und direkt in einer Aufputz-Dose mit zwei RJ-45-Buchsen einbauen lassen…? Die Verbindung der zwei mittleren Pins (4 & 5) der zwei RJ-45-Buchsen wird dann über das Relais geführt, die sonstigen Pins sind direkt durchverbunden. Eine der RJ-45 Buchsen wird dann mit dem DSL-Anschluss verbunden, die andere mit dem zu testenden Gerät — und schon kann die FlapBox eine instabile Leitung simulieren.

Stückliste

Die Stückliste ist kurz und überschaubar:

  • 1x ATMEL ATtiny45/V
  • 1x IC-Fassung 8-pol.
  • 1x Widerstand 150 Ω (Vorwiderstand für LED)
  • 1x Widerstand 330 Ω (Vorwiderstand für LED)
  • 1x Duo-LED (rot/grün, gemeinsame Kathode)
  • 1x Widerstand 10 kΩ (Basiswiderstand Relais-Treiberstufe)
  • 1x Transistor BC 547B o.ä. (NPN-Universaltyp; Relais-Treiberstufe)
  • 1x Diode 1N4148 (Freilaufdiode für Relais)
  • 1x Relais (monostabil; 5V; 2x Ein)
  • 1x PS/2 Einbaubuchse (Tastaturanschluss Mini-DIN 6-pol.)
  • 1x Niederspannungs-Hohlstecker-Einbaubuchse 5,5 mm /2,1 mm (Spannungsversorgung)
  • 1x UAE- oder Netzwerkdose Aufputz mit 2x RJ-45 Buchse (nicht intern parallelgeschaltet!)
  • 1x Lochrasterplatine
  • Lötnägel und Federstecker nach Bedarf
  • Montagematerial (Schrauben, Schraubenmuttern, Abstandsröllchen, Schrumpfschlauch usw.) nach Bedarf
  • Netzteil 5V / 200 mA

Bedienung

Nachdem das ganze auf einem Steckbrett (Breadboard) testweise aufgebaut ist, stürze ich mich auf die Software. Bascom AVR ist leicht zu lernen und nach wenigen Minuten klackert das Relais freudig vor sich hin, begleitet von einer blinkenden LED. Aber da war doch noch was mit Tastatursteuerung…? Das ganze ohne echtes Display intuitiv steuerbar zu machen, gestaltet sich doch schwieriger als gedacht. Heraus kommt eine Liste an halbwegs einprägsamen Tastaturkommandos wie z.B.

  • c für connect
  • d für disconnect
  • f für flap (also periodisch trennen und verbinden)
  • und einigen weiteren zum Einstellen der Timer

Der FlapBox Quellcode enthält eine vollständige Liste der Tastaturkommandos und zeigt auch die Pinbelegung des µC (auch für die Typen ATtiny44 und ATmega48, die ich zeitweise auf dem Steckbrett verwendet habe).

Mittlerweile ist das ganze fertig aufgebaut und hat sich auch schon in der Praxis nützlich gemacht. Mir erleichtert das ganze stark die Arbeit — die Hersteller der zu testenden DSL-Komponenten haben nun allerdings einige offene Fehlertickets mehr und werden sich darüber gar nicht freuen… 😉

Übrigens: Wer gerne mit Mikrocontrollern bastelt, aber an der einen oder anderen Stelle noch Hilfe benötigt oder sich gerne mit anderen Bastlern austauschen möchte, ist in der Offenen µC Werkstatt des Hackerspace Bremen e.V. (https://www NULL.hackerspace-bremen NULL.de/regelmaessige-veranstaltungen/) genau richtig.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.