GPS - A/V- LED - MONITOR (Assembler) Software USART ATtiny12

OP #371960
Lesenswert?

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
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren