Schon vor einigen Jahren ist der Wunsch nach dem kabellosen SX-Handgerät
aufgetaucht. Nach dem Motto, So schwierig kann das ja nicht sein, habe ich von
Pollin zwei Bausätze für die Hope RF12 Module beschafft. Leider ohne das
gewünschte Erfolgserlebnis. Gescheitert bin ich vor allem an dem Problem, das
man hat, wenn keine Test und Messmittel zur Verfügung stehen um zu entscheiden,
ob Sender oder Empfänger, oder gar beide, den Dienst verweigern.
Jetzt hatte ich wieder Anlass über eine "Funklösung" nachzudenken, den Messwagen
für die Länge von Blockstrecken. Ich wusste auch von Anwendungen in Mikrokoptern
und Bastelrobotern unter Verwendung der Bluetooth-Technik. Als absoluter
Anfänger in Sachen Blauzahn kommt man am Studium der zahlreichen
Basisinformationen nicht vorbei. Unter den diversen BT-Profilen befindet sich
auch SPP, das SerialPortProfile, für die Übertragung serieller Daten. Ich gehe
davon aus, dass die verwendeten BT-Protokolle (RFCOMM, L2CAP,...)für sichere
Datenübertragung sorgen und dass man sich quasi um nichts weiter kümmern muss.
Bei der Suche nach Anwendungsbeispielen bin ich rasch fündig geworden, wobei
stets das Modul BTM-222 der Fa. Rayson verwendet ist. Neben dem "nackten" Modul
bietet Herr Loska in seinem Shop rf-store.com auch quasi anwendungsfertige
Platinen an. Das erschien mir wichtig um erste Erfahrungen zu sammeln mit
möglichst wenig Chancen auf hausgemachte Fehler. Ergo habe ich ein BCA8-BT222
gekauft, das neben dem BT-Baustein samt Chipantenne, einen Atmel Mega328
enthält, den 3.3 V Spannungsregler und die level shifter 3.3 / 5V für die
wichtigen Signale, einschließlich der Atmel ISP-Schnittstelle, fast
pinkompatibel zu meinem STK500. Leider wird der Mega nur mit 3,3V betrieben und
die Pins für den Quarz (XTAL) sind belegt, sodass nur 8Mhz aus dem internen
RC-Oscillator verwendet werden können. Für meine Tests ist das aber ausreichend.
Die Stiftleiste einlöten und schon ist das Modul betriebs- und programmierbereit.
Gelesen hatte ich im Datenblatt des BTM222, dass das Modul eine default
Konfiguration hat, als Slave mit 19200 Bd. Deshalb sollte sofort die Verbindung
zum PC via BT-Dongle zu Win7 möglich sein. Auf der 10plg. ISP Stiftleiste des
BCA8 liegen auf Pin 8 und 6 die Signale TXD und RXD, die im STK500 GND-Potential
haben. Deshalb habe ich im Flachbandkabel die Adern 10, 8, 6 getrennt. Die
Versorgungsspannung 5V auf Pin2, GND auf Pin4.
Am PC ist ein ältlicher Belkin BT-Dongle angesteckt, dem ich die Win7 Treiber
spendiert habe. In der Statuszeile erscheint das Bluetooth-Icon und nach Click
hat man diese Auswahl:
Modul an Spannung legen, und schon kann man "Gerät hinzufügen":
und "Weiter":
Den default Gerätenamen habe ich geändert, den Pincode belassen:
kommt die erfreuliche Meldung:
Nun sollte auch die Kommunikation möglich sein. Welchen virtuellen COM-Port
Windows bereitgestellt hat erfährt man mit "Einstellungen öffnen":
So einfach habe ich mir das gewünscht! Wenn man den virtuellen seriellen Port geöffnet hat, geht das Modul in den Status "verbunden" und im einfachsten Fall kann man per Terminalprogramm, z.B. TeraTerm, Daten senden und empfangen. Programmtechnisch ist kein Unterschied ob bei der Datenübertragung eine Kabelverbindung oder die BT-Module verwendet werden.
Gelernt habe ich auch, dass die Konfiguration des BTM222 relativ einfach,
aber nur wenn das Modul nicht verbunden ist, via Terminalprogramm und der
"AT-Kommandos" zu erledigen ist. Allerdings setzt das voraus, dass die Baudrate
des Moduls bekannt ist.(default 19200, 8Bit, 1 Stop, no Par., kein handshake)
Die Kommandos sind im Datenblatt ausführlich beschrieben, einen Hinweis auf ein
Timing im Kommandmode habe ich nicht gefunden. Für den Betrieb sind nur 5
Anschlüsse notwendig, es ist aber zweckmäßig auch die beiden Ausgänge für die
Statusanzeigen zu benutzen. Das Fertigmodul BCA8 und der baugleiche, aber nur
teilbestückte BTM222-Adapter, verwendet eine Chipantenne mit 2 Induktivitäten
(2,2 nH und 2,7 nH) zur Anpassung. Ich begnüge mich (noch) mit einem ca. 3cm
langen Draht als Lambda/4 Antenne ohne die damit mögliche Reichweite zu kennnen.
Das eigene Layout war nötig, weil ich eine Breite von max. 17mm haben wollte.
Das BT-Modul ist zum Sandwich aufsteckbar, 5plg. RM 2,54mm.
Die Schaltung ist denkbar einfach:
Die benötigten geringen Abmessungen sind nur mit beidseitig bestückten
SMD-Bauteilen zu erreichen. Das größere Problem bei der Herstellung ist das
kleine Rastermaß des BTM222 mit 1,25 mm und der fehlende Lötstoplack.
Das Platinchen hat mein Freund Dieter Sekunde angefertigt, zu dessen Werkstatt
auch ein Bungard-Nietwerkzeug gehört mit dem er die Vias realisiert hat. Gelötet
hat mein Sohn, mit Lupe, Weller Lötnadel, Geduld und ruhiger Hand! Malen konnte
ich den Winzling selbst.
Funktioniert hat die Erstanwendung "Spur-N Funk-Messwagen" auf Anhieb wie
geplant. Auf der Basisplatine ist neben dem Mega48 ein Recom Schaltregler 0.5A
der aus der gleichgerichteten Selectrix Gleisspannung 5V bei ca. 130 mA erzeugt.
Erstaunt bin ich über die zahlreichen Anbieter von BT-Modulen und deren
Vielfalt. Beim Stöbern habe ich bei data-sphere das RN41 Modul gefunden, das mit
integrierter Antenne geliefert wird und noch etwas kleiner als das BTM222 ist.
Ein wesentlicher Unterschied ist, dass die Konfiguration über die Bluetooth
Verbindung möglich ist. Nach dem Verbinden hat man 1 Minute Zeit per
Terminalemulation den Kommandomode mit "$$$" zu aktivieren. Das Modul quittiert
mit "CMD". Die Befehlsliste ist inhaltlich vergleichbar mit dem BTM222. RN41
liefert aber sehr einfach eine übersichtliche Auflistung der aktuellen Parameter
und aller Kommandos. Obwohl es mit 20€ fast doppelten Preis des BTM222 hat, habe
ich eine einseitige Platine dazu gebaut, 16x45mm, und simpler zu bauen.
Wissen muss man, dass im RN41 die handshake-Signale CTS und RTS immer aktiv
sind. Deshalb ist es notwendig die Pins dieser Signale zu verbinden, wenn man
eine 3-Draht Com hat. (Rx,TX,GND)
Im Kommand-Mode brauchen ausser dem "$$$" alle ein abschliessenden "Return",
auch der Ende-
Befehl "---". Das TeraTerm verbunden mit dem RN41-Modul:
Auf "$$$" antwortet das Modul mit "CMD" und die Einstellungen können abgerufen
werden.
Mit "---" wird der Kommando-Mode beendet, und die Quittung erfolgt. Wenn am
Modul TX und RX verbunden sind und im Teraterm das lokale Echo ausgeschaltet
ist, wird das Echo via BT sichtbar:
Ein sehr einfacher Funktionstest ohne zusätzliche Hardware.
Im Mega sind nur wenige Zeilen Pogramm notwendig, Schnittstellen
Initialisierung, Sendefunktionen, Interrupt Serviceroutine und ein Array mit
Testdaten:
Für den Kommunikationstest habe ich ein C# Programm getippt, für den Abbruf des
Teststrings, Zeichenecho und ein Bytearray das einem kompletten SX-Busabbild mit
112 Bytes entspricht:
Wenn Win7 das BTM Modul bereits erkannt hat, ist der ComPort bereitgestellt und
kann vom Programm geöffnet und verwendet werden. So einfach ist es, drahtlos
serielle Datenübertragung zu benutzen!
Mit diesen Erkenntnissen sollte auch eine Anwendung mit 2 BT-Modulen (Master und
Slave) leicht zu realisieren sein. Eine Übung wird ein Funk-Handgerät für SX1
sein, zum Schalten und Fahren ohne "Kabelschlepp".
Jonathan Bohmer, im März 2013