Ein kleiner 8-PIN µC ATtiny12 (1MHz) liest die Daten einer seriellen GPS-Mouse ein und gibt den "A" bzw "V" -Zustand des GPS Empfängers an zwei LESs aus. Mich hatte es geärgert, dass bei einem µ-BLOX (u-BLOX) GPS-MS1E Modul dieser Zustand nicht angezeigt wird, daher suchte ich nach einer ganz einfachen Lösung. Die grüne LED leuchtet, wenn sich der Empfänger im Aktiv-Zustand befindet und die rote Lede blinkt (ca. 1...3s Takt), wenn der Empfänger ein Warnung signalisiert. Die Software sucht nach dem "GPRMC-String und wertet das Zeichen A bzw V aus. $GPRMC,213926.206,V,0000.0000,N,00000.0000,E,,,140606,,*18 ^ Eingestellt habe ich 4800Bd (8N1). Das größte Problem habe ich mit dem Software USART gehabt, der der ATtiny12 kein Harware-USART besitzt. Man kann diese Schaltung auch ohne Quarz betreiben. Bei Programmstart wird der interne RC-Oszillator (Register OSCCAL) auf den niedrigsten Wert eingestellt. Die ersten empfangen Zeichen verursachen natürlich einen Empfangs-Error, da die Abtastung der einzelnen Bits überhaupt nicht plausibel ist. Bei jedem Empfangs-Error wird die Oszillator-Frequenz leicht nach oben korrigiert, bis kein Empfangs-Error mehr auftritt. Diese Syncronisation ist nach wenigen ms..s abgeschlossen. Man erkennt es am gleichzeitigen leuchten der beiden LEDs. Wird ein Quarztakt gewünscht, die erforderlichen PINS habe ich mit freigehalten. Bei 9600Bd muss nur der Takt auf 2MHz hochgesetzt werden Anmerkungen zum Software USART: Ein externer Interrupt wird im µC ausgelöst, wenn sich der PEGEL am PIN PB1 von HIGH auf LOW ändert. Dieser Interrupt aktiviert den Timer0 und deaktiviert den externen Interrupt. Nun ist für 10 Timer-Interrupts nur der TIMER0 aktiv und tastet nach 104ms (Start-BIT), nach jeweils 208ms die Datenbits und das STOP-Bit ab und setzt daraus das Empfangszeichen zusammen. Eine Fehlerprüfung wird beim Start- und STOP-Bit vorgenommen. Angefügt habe ich: - Schaltplan - FUSE-BITS - Assembler-Code - hex-File Bernhard
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.