Das XBee Funkmodul

XBee Modul XBee Modul


In diesem Projekt ging es darum, eine UART-Datenverbindung über eine größere Strecke zu realisieren. In der Hauptverwendung sollen Telemetriedaten von einem Oktokopter zu einem PC übertragen werden. Durch die bidirektionale Datenverbindung wären am Boden aber auch diverse Einstellungen am Oktokopter möglich.

Anforderungen:

  • Reichweite: min 1000m
  • Datenverbindung: bidirektionales UART
  • Datenrate: 57600 Baud (vom Oktokopter vorgegeben)
  • Schnittstelle:
    - PC-seitig: USB
    - Oktokopter-seitig: 5V TTL
  • Spannungsversorgung:
    - PC-seitig über USB
    - Oktokopter-seitig über Flugakku

Umsetzung:

Zunächst wurden die XBee Module(XBee Pro) beschafft. Diese hatte ich bei der Firma Mouser Electronics erworben. Nach viel Ärger und diversen Emails habe ich die Ware dann doch noch bekommen. Ergo, ist diese Bezugsquelle nicht weiterzuempfehlen. Die Module gibt es in verschiedenen Ausführungen in Bezug auf die Antennen. Wenn es um hohe Reichweiten geht, sollte unbedingt die Version mit dem mini-Koax-Verbinder(XBP24-AUI-001) gewählt werden. Die Versionen mit Chip Antenne oder der angelöteten Drahtantenne erziehlen nicht so gute Ergebnisse!!! Für die Umsetzung des XBee-UARTs zu USB habe ich das FTDI Modul "MM232R" eingesetzt. Da die Module (2x XBee und 1xFTDI) schon recht teuer waren, wollte ich zumindest bei der Trägerplatine etwas Geld einsparen. So entstand nur eine Platine mit drei verschiedenen Bestückungsvarianten. In der ersten Variante, mit FTDI-Modul für die PC-Anbindung. In der zweiten Variante, mit "Pegeladapter" auf 5V TTL. In der dritten Bestückungsvariante werden lediglich die Pins des XBee-Moduls auf das Standardrastermaß von 2,54mm gebracht und ein Schaltregler für die Betriebsspannung bereit gestellt. Diese Variante wird hier nicht näher beschrieben.

Schaltplan und Schaltungsbeschreibung:

Der unten zu sehende Schaltplan zeigt die Komplettbestückung. Je nach Einsatzzweck dürfen/müssen jedoch nicht alle Bauteile bestückt werden!!!
Welche Bauteile weggelassen werden können/müssen, ist im Schaltplan beschrieben.

Schaltplan

Die XBee Module haben eine Betriebsspannung von 3,3Volt. Im oberen Bereich ist die Bereitstellung der Betriebsspannung zu sehen. Bei Verwendung des MM232R wird der Schaltregler direkt vom US-Bus versorgt (Einstellung im FTDI-Modul s.u. nötig). Für die Oktokopter-Variante(ohne MM232R) ist eine maximale Betriebsspannung von 20V möglich. Laut USB-Spezifikationen darf ein USB-Device wärend des so genannten "Suspend-Modes" lediglich 500μA aufehmen. Daher ist der Schaltregler wärend dieser Zeit abgeschaltet(über PWREN# des FTDI-Moduls). Wird das FTDI-Modul nicht verwendet, muss anstatt des Widerstandes R7 der Widerstand R6 aufgelötet werden. Die Datenschnittstelle und ihre Peripherie zum Oktokopter(SV3) wird ebenfalls nur aufgelötet, wenn das MM232R-Modul nicht verwendet wird. Die Widerstandskombination R8/R9 passt die 5V TTL-Pegel des Oktokopters auf 3,3V Pegel für das XBee-Modul an. Ein 3,3Volt Pegel des XBee Moduls wird vom Oktokopter ohne Probleme als "High" erkannt, daher war hier keine Anpassung nötig. Das FTDI-Modul kann von Haus aus auf 3,3Volt Pegel eingestellt werden (Verbindung von Pin 3 und 4).


Bauteilliste

(Preise Stand: 02.08.2008)

FTDI-Variante

BauteilBestellnummerMengeEinzelpreisGesamtpreis
Reichelt
Buchsenleiste 1x10 2mmBL 1X10G 2,0020,230 €0,460 €
Widerstand 180R 0805SMD-0805 18040,026 €0,104 €
Widerstand 10k 0805SMD-0805 10,0K20,026 €0,052 €
Kerko 100n 0805X7R_G0805 100N40,050 €0,200 €
Elko Tantal 22μSMD TAN.22/1010,170 €0,170 €
Elko Tantal 220μTANTAL 220/2011,100 €1,100 €
Drossel 330μL-PIS2816 330μ10,750 €0,750 €
Schaltregler 3,3VLM 2574 N3,311,100 €1,100 €
Schottky DiodeMBRS 120 SMD10,140 €0,140 €
Conrad
LED blau 120615631610,830 €0,830 €
LED grün 120615631510,170 €0,170 €
LED rot 120615631410,170 €0,170 €
LED gelb 120615631710,170 €0,170 €
Summe:5,416 €


TTL-UART Variante

BauteilBestellnummerMengeEinzelpreisGesamtpreis
Reichelt
Buchsenleiste 1x10 2mmBL 1X10G 2,0020,230 €0,460 €
Buchsenleiste 1x4 2,54mmBL 1X20G 2,5410,840 €0,840 €
Widerstand 180R 0805SMD-0805 18040,026 €0,104 €
Widerstand 1k5 0805SMD-0805 1,50K10,026 €0,026 €
Widerstand 2k7 0805SMD-0805 2,70K10,026 €0,026 €
Widerstand 10k 0805SMD-0805 10,0K20,026 €0,052 €
Kerko 100n 0805X7R_G0805 100N40,050 €0,200 €
Elko Tantal 22μSMD TAN.22/1010,170 €0,170 €
Elko Tantal 220μTANTAL 220/2011,100 €1,100 €
Drossel 330μL-PIS2816 330μ10,750 €0,750 €
Schaltregler 3,3VLM 2574 N3,311,100 €1,100 €
Schottky DiodeMBRS 120 SMD10,140 €0,140 €
Conrad
LED blau 120615631610,830 €0,830 €
LED grün 120615631510,170 €0,170 €
LED rot 120615631410,170 €0,170 €
LED gelb 120615631710,170 €0,170 €
Summe:6,308 €

Bei beiden Varianten kommen natürlich noch die Kosten für jeweils ein XBee Modul (ca. 40 €; pro Stück) und für je eine Platine hinzu.
Bei der FTDI Variante wird zusätzlich das Modul MM232R (ca. 20 €; bei Farnell) benötigt.

fertiges Platinenpaar

Bestückung oben Bestückung unten
links: FTDI-Bestückung; rechts: TTL-Bestückung links: FTDI-Bestückung; rechts: TTL-Bestückung


Konfiguration des FTDI-Moduls:

Möchte ein USB-Device mehr als 100mA nutzen, muss es sich als "Hochstromgerät" anmelden. Dann sind Stöme bis maximal 500mA zulässig. Diese Einstellung muss bei den FTDI-Modulen angepasst werden (Default ist glaube ich 90mA). FTDI bietet dazu das Freeware-Programm "MProg 3.5" an. Alternativ kann das Programm "FT Prog" (ebenfalls von FTDI) genutzt werden. Aus meiner Sicht ist das zweite Tool jedoch recht unübersichtlich aufgebaut, da alle Einstellugen in Untermenüs versteckt sind.

Vorgehensweise:
  • Platine ohne XBee-Modul mit dem Rechner verbinden.
  • Wenn noch nicht geschehen, FTDI-Treiber installieren (2x ?!)
  • MProg starten und in der Menüleiste "Device/Scan" ausführen.
    Unbedingt prüfen, ob nur ein FTDI-Device gefunden wurde!!!
    Wenn mehr als ein Device angezeigt wird, die anderen entfernen und erneut scannen.
    Ansonsten werden alle angeschlossenen FTDI-Geräte umprogrammiert!!!
  • Mit "Tools/Read and Parse" die aktuellen Einstellungen einlesen.
  • Einstellungen gemäß Screenshot unten verändern.
  • Bevor man die Einstellungen in das Modul flashen kann, muss die Konfiguration gespeichert werden("File/Save As ...").
  • Anschließend kann das Modul geflasht werden("Device/Program").

Einstellung FTDI


Konfiguration des XBee-Moduls:

Die XBee Module müssen ebenfalls konfiguriert werden. Dazu habe ich das Freeware-Tool "X-CTU" genutzt. Zum Konfigurieren beider XBee-Module wird jeweils die Platine mit FTDI-Adapter verwendet.

Vorgehensweise:
  • Die zuvor programmierte Platine mit dem FTDI-Modul vom Rechner trennen.
  • XBee-Modul aufstecken und erneut mit dem Rechner verbinden
  • X-CTU starten - im Reiter "PC Settings" sollte jetzt der COM-Port, an welchem sich die Platine befindet, auftauchen.
  • Entsprechenden COM-Port anklicken.
  • Im Reiter "Modem Configuration" auf die Schaltfläche "Read" klicken.
  • Jetzt werden die Einstellungen des XBee-Moduls angezeigt.
  • Folgende Einstellungen sind zu tätigen (siehe auch Screenshot unten):
    - Beide Module müssen die gleiche "PAN ID" besitzen z.B. 8888.
    - Jedes Modul muss eine eigene "MY ID" besitzen z.B. 1001 und 1002.
    - Jedem Modul muss in DL (Destination Address Low) sein Ziel zugewiesen werden (die MY ID des jeweils andern Moduls).
    (Bei langen MY IDs kann es nötig werden auch DH setzen zu müssen.)
    - Eines der beiden Module sollte als Coordinator konfiguriert werden (CE Coordinator Enable auf "1" setzen).
    - Die Baudrate kann mit BD (Interface Data Rate) eingestellt werden - hier ist BD="6" also 57600 Baud.
  • In Deutschland ist meines Wissens eine Sendeleistung von maximal 10mW erlaubt,
    diese kann/muss natürlich mit PL (Power Level) angepasst werden. ☺
  • Sind alle Einstellungen getätigt, kann das Modul mit der Schaltfläche "Write" programmiert werden.
  • Sollte die Baudrate verändert worden sein, so muss im Reiter "PC Settings" die neue Baudrate eingestellt werden, bevor man das Modul erneut ansprechen kann.
  • Folgende Einstellungen sind optional möglich:
    - 128Bit AES-Verschlüsselung aktivieren (AES Encruption Enable auf "1" setzen)
    - Wenn die AES-Verschlüsselung aktiviert ist, muss sich in beiden Modulen der gleiche Key befinden. (KY AES Encryption Key)
    - Wird die AES-Verschlüsselung verwendet, ist die Baudrate 115200 nicht mehr zu empfehlen.

    - Application Programming Interface Einschalten (AP API Enable auf "1" setzen)

Einstellung XBee


Reichweitentest:

Den Reichweitentest habe ich nicht persönlich ausgeführt. Mein Bekannter, für den ich die Platine entwickelt habe, teile mir aber mit, dass mit der maximalen Sendeleistung sagenhafte 2km zu erreichen waren. Und da war nicht die Sendeleistung, sondern das Gelände am Ende (Maschendrahtzaun)!!!