*GPS mit TTL-UART

(2008) – Gängige GPS Bluetooth-Maus M-1000 liefert Daten an UART im TTL-Pegel (z.B. für AVR)

Holux M-1000 geöffnet

Ich habe mir mal vor einiger Zeit eine Bluetooth-GPS-Maus von Holux (M-1000, SirfStar III, 17Std. Standby, Nokia-kompatibler Akku) besorgt und nutze diese für das Ö-Navi mit dem Handy und für Geocaching-Programme. Schon immer wollte ich die GPS-Daten auch mal mit dem AVR auswerten. Dazu bräuchte es aber einen seriellen GPS-Empfänger und noch einen Wandler auf TTL-Pegel für den AVR. Und wie der Zufall es will, geht das sogar ohne größere Umwege mit eben genau dieser GPS-Maus die eigentlich nur für Bluetooth-Verbindungen gedacht ist !! Man kann direkt Leitungen vom mini-USB-Anschluss auf die UART des Microcontrollers führen und es ist keine Pegelwandlung o.ä. nötig! Der Empfäner sendet immer auf dieser Leitung und man kann ihn gleichzeitig über Bluetooth verwenden und die Auswertung auf Korrektheit prüfen.

Anfangs wunderte ich mich immer, warum Windows einen Fehler ausspuckt, wenn ich die GPS-Maus zum aufladen an den USB-Anschluss hänge. Schließlich dürfte der PC die Anwesenheit des GPS-Empfängers gar nicht merken, da dieser sich nur über die Stromversorgung des USB auflädt und auf den Datenleitungen nichts sendet. Ich fand es zu verlockend mal nachzuschauen und habe ein mini-USB-Kabel geopfert und mir am Oszilloskop das ganze mal angeschaut (s.u.).

Aus den Beobachtungen geht hervor, dass es ein 2,9V-Pegel ist und vom AVR an der UART-Schnittstelle sicher akzeptiert werden würde. Außerdem konnte ich an der Impulsbreite die Datenübertragungsgeschwindigkeit abschätzen und sie liegt bei 38,4 Kbit/s (war auch hilfreich um im Hyperterminal nicht alle Modi durchprobieren zu müssen).

Daher hab ich kurzerhand meine UART-USB-Schnittstelle, die normalerweise gedacht ist um mit dem AVR Microcontroller an der UART-Schnittstelle zu kommunizieren, an die Anschlüsse der GPS-Maus gehängt. Anschließend habe ich mich über das Hyperterminal mit der UART-Bridge verbunden und mir flogen die GPS-Rohdaten über den Schirm (s.u.). Ein langer String den man auch am AVR bequem in seine Bestandteile zerlegen könnte !

Man muß nur die Masse-Leitung(schwarz, Pin5) und die Daten+-Leitung (grün, Pin3) abgreifen und auf die Masse und den Rx-Pin des Microcontrollers führen. Die Übertragung findet statt bei: – 38,4 Kbit/s – 8 Datenbits – keine Parität, – 1 Stopbit Wenn man schon dabei ist, könnte man natürlich auch gleich noch den Akku aus der GPS-Maus schmeißen und die Stromversorgung auch über die 5V-Leitung laufen lassen, da man sein Microcontroller-Board ja bereits mit Strom versorgt.

Das GPS-Modul kann man auch ganz einfach in seine Bestandteile zerlegen. Dazu muss man nur den schwarzen Deckel mit der Aufschrift und den LED-Fenstern nach oben abheben (ggf. Schraubenzieher nehmen. Falls Widerhaken abbrechen muss man das Modul mit ein wenig Sekundenkleber wieder zusammendrücken).

Auf einer einzigen Platine ist alles nötige. Man kann sich ganz einfach über den beschriebenen mini-USB dranhängen und auch das Modul mit Strom versorgen (5V USB). Die kompakten Abmessungen können mit den käuflich zu erwerbenden GPS-Modulen mithalten. Die Abmessungen betragen nur 60x38x4mm !

Bemerkung

Das GPS-Modul findet in einer Erweiterung für den Lego Mindstorms NXT Verwendung. Für diesen habe ich eine kleine AVR-Platine entwickelt, welche die GPS-Daten an der UART entgegen nimmt, auswertet und aufbereitet an der I²C-Schnittstelle dem NXT-Brick zur Verfügung stellt. Wenn ich Zeit habe, stelle ich die Erweiterungsplatine mal hier vor.

Schreibe einen Kommentar