Umschalten zwischen SIRF und NMEA Protokoll

OP #861946
Lesenswert?

Hallo,

ich habe im Forum gelesen, dass ich mit dem Problem der Umschaltung 
zwischen SIRF und NMEA bzw. umgekehrt zwar nicht alleine bin, eine 
Lösung habe ich aber noch nicht gefunden.

Ich habe folgendes Problem:
Ich habe einen Datenlogger gebaut, mit dem ich NMEA Daten auf SD Karte 
schreiben kann. Der Datenlogger besteht im groben aus einem ATmega128 
und einem NL SIRF III GPS Modul und ist mit WinAVR programmiert.

Beim Loggen der Daten ist mir aufgefallen, dass die mitgeschriebene 
Strecke um ca 100m von der tatsächlichen Strecke verschoben ist. Im NMEA 
GGA Datensatz konnte ich sehen, dass kein DGPS eingeschalten war.

Meine Idee ist also, von NMEA auf SIRF umzuschalten, das DGPS oder SBAS 
einzuschalten und dann auf NMEA zurück zu gehen.

Das Umschalten in Sirf scheint funktioniert zu haben, das Rückschalten 
jedoch nicht mehr.

Die NMEA Befehle funktionieren alle.
Beispielzeile aus Quellcode:
ser_puts("$PSRF100,0,9600,8,1,0*0C\n");

Wie muss denn z.B. eine Befehlszeile im SIRF Format aussehen?
So gehts auf jeden Fall nicht:
ser_puts("A0A20000785030004BAF0C80202FEB0B3");

Was genau mache ich falsch?

Hat jemand schon mal DGPS an einem SIRF III über einen Controler 
eingeschaltet?

Ich hoffe, ihr könnt mir helfen, ich komme gerade nicht mehr weiter.

Fourstroker
Gast #861968
Lesenswert?

Dein GPS liefert dir eine Koordinate

           4807.038,N   Latitude 48 deg 07.038' N

Die 038 sind keine Sekunden sondern Bruchteile von Minuten.
Die musst du noch in Sekunden umrechnen.
Wenn du das nicht machst hast du einen Versatz von mehreren 100m.
Gast #862106
Lesenswert?

Haben SIRF Empfänger keinen eigene Korrektureinrichtung? Ich dachte das 
sei im Chipsatz integriert.
Einen Rechenfehler mache ich nicht, da ich die empfangenen 
Positionsdaten auch schon direkt in ein externes Programm gespielt habe 
und auch da den Versatz erhalte.
Ich kapier das ehrlich gesagt nicht. Eine Abweichung von 10m hätte ich 
ja verstanden aber doch nicht 100m :-(
#862632
Lesenswert?

Was du meinst ist vermutlich die Korrektur mittels EGNOS. Einem 
Korrektursignal, welches innerhalb von Europa zur Verfügung steht um die 
Genauigkeit des GPS Signals etwas zu verbessern. Diese Funktion 
beherrscht der SIRF III selbst und benötigt keinen externen DGPS 
Empfänger dafür.

Aber eine Abweichung von 100m ohne Korrektursignal ist ziemlich viel. 
Ich könnte mir das nur bei sehr schlechten Empfangsbedingungen 
vorstellen. Denn selbst ohne EGNOS hast du schon eine reproduzierbare 
Genauigkeit von ca 10m bei halbwegs gutem Empfang.

Ciao,
     Rainer
Gast #3197187
Lesenswert?

Guten Abend,

ich habe auch eine Frage zu SIRF <-> NMEA. Vielleicht kann mir wer 
weiterhelfen. Ich habe ein GPS-Modul. Dieses habe ich ausversehen auf 
den SIRF Mode gesetzt. Im Tool GPS-NMEA-Monitor sehe ich folgende Daten;


? SiRF-bin.

Beim Scan, ob ein GPS-Modul angeschlossen ist erkennt er diesen:

"Found GPS receiver 9600 baud (SiRF-Binary)"

Das Modul ist nicht "fix". Es blickt öfter als 1 mal/ sek.

Hat eine den Befehl, wie ich das Modul in den Werkszustand bringe? 
Versuch ich es mit dem Tool von Binär wieder auf NMEA zu bringen tut 
sich nichts. (brauch das NMEA Format).

Vielen Dank für Anregungen im Voraus.
Gast #3197299
Lesenswert?

Habe das Problem gelöst. NMEA Daten nun wieder vorhanden. Bekomme bloß 
noch kein Signal. Er findet keinen einzigen Sat. . Muss ich bei den 
gängigen GPS-Modulen einen Code senden, damit sie sich einen Sat. 
suchen, oder reicht es aus zu warten?
Gast #3197347
Lesenswert?

Wie muss denn z.B. eine Befehlszeile im SIRF Format aussehen?
So gehts auf jeden Fall nicht:
ser_puts("A0A20000785030004BAF0C80202FEB0B3");


Die muss so aussehen

ser_puts("\xA0\xA2\x00\x00\x78\x50\x30\x00\x4B\xAF\x0C\x80\x20\x2F\xE\xB 
0\xB3");

also du must die Daten als binary senden, nicht als String
Gast #3197381
Lesenswert?

also vielen Dank erstmal euch.

1. Antenne ist dran
2. Antenne ist korrekt ausgerichtet
3. die Uhrzeit stimmt gar nicht
4. Das Format ist schon erkenntbar (Position und so fehlt natürlich)

Eine Idee, was man da setzen muss, damit er was findet?
(Firma: matzetronics) #3197554
Lesenswert?

Fang doch mal einige NMEA Strings ein und poste sie hier. Vllt. können 
wir dann schon sehen, was los ist. Ein brauchbarer Empfänger sollte 
selbst unter (nicht metallischen) Dach zumindest den einen oder anderen 
Satelliten nahe des Zenith finden, wenn da nicht noch Stockwerke 
dazwischen sind. Ist zumindest bei meinem Drecks-Medion mit SiRF II so. 
Der TomTom mit SiRF III rastet sofort auf wesentlich mehr ein.
Gast #3197632
Lesenswert?

Vielen Dank. Der eine GPS-Empfänger liefert:
  ...
  00:00:39.040 $GPGGA,000039.040,,,,,0,00,,,M,0.0,M,,0000*58
  00:00:39.040 $GPGLL,,,,,000039.040,V,N*74
  00:00:39.040 $GPGSA,A,1,,,,,,,,,,,,,,,*1E
  00:00:39.040 $GPGSV,1,1,00*79
  00:00:39.040 $GPRMC,000039.040,V,,,,,,,150209,,,N*4C
  00:00:39.040 $GPVTG,,T,,M,,N,,K,N*2C
  ...

Bei dem zweiten Modul schaffe ich es nicht die Baudrate umzustellen. 
Hierzu eine Frage: Muss ich irgendwie beim Programmieren einen 
Jumper/Spannung etc. setzen, oder kann ich die Befehle einfach an den 
Chip senden?

Danke
(Firma: matzetronics) #3197655
Lesenswert?

Da du leider noch nicht genau gesagt hast, welches Navilock Modul du 
genau benutzt, gehe ich einfach mal von einem NL-501ETTL aus. Ab Seite 7 
des Datenblattes findest du die Einstellungen für Baudrate etc. sowie 
auf Seite 7 dann die Kommandos zur Freigabe des Receivers 
($PSRF101....), bzw. auf Seite 8 das gleiche dann mit Längen- und 
Breitengrad. Die genauen Werte sind dabei nicht entscheidend, aber die 
Freigabe der Empfangskanäle.

Kommando $PSRF105 ist sehr interessant - Freigabe der Debug Infos.

Fox Mulder schrieb:
> Was du meinst ist vermutlich die Korrektur mittels EGNOS

Zumindest diese Navilock Firmware scheint keine Unterstützung für EGNOS 
zu bieten, die der Sirf Star III ja eigentlich hat.
Gast #3197692
Lesenswert?

Danke. Ich habe nun zur Freigabe den Befehl genommen:
$PSRF101,-2686700,-4304200,3851624,96000,497260,921,12,3*24.

Die Anwort vom System:

< $PSRF101,-2686700,-4304200,3851624,96000,497260,921,12,8*24
N $PSRFTXT,Version:  GSW3.5.0_3.5.00.00-SDK-3EP2.01A *07
N $PSRFTXT,TOW:  0*25
N $PSRFTXT,WK:   1519*69
N $PSRFTXT,POS:  6378137 0 0*2A
N $PSRFTXT,CLK:  96250*25
N $PSRFTXT,CHNL: 12*73
N $PSRFTXT,Baud rate: 9600*66


Scheint ja alles richtig eingestellt zu sein.

Die Datenausgabe sieht so aus:

$GPGGA,000016.055,,,,,0,00,,,M,0.0,M,,0000*51
$GPGLL,,,,,000016.055,V,N*7D
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,000016.055,V,,,,,,,150209,,,N*45
$GPVTG,,T,,M,,N,,K,N*2C
Gast #3197771
Lesenswert?

Mir ist gerad was aufgefallen:
Ich habe zum Test einmal die Baudrate auf 4800 gesetzt (Befehl 
$PSRF102,4800,8,1,0). Als Antwort erhalte ich:

< $PSRF102,4800,8,1,0*11
N $PSRFTXT,Version:  GSW3.5.0_3.5.00.00-SDK-3EP2.01A *07
N $PSRFTXT,TOW:  0*25
N $PSRFTXT,WK:   1519*69
N $PSRFTXT,POS:  6378137 0 0*2A
N $PSRFTXT,CLK:  96250*25
N $PSRFTXT,CHNL: 12*73
N $PSRFTXT,Baud rate: 9600*66.

Also werden die Befehle nicht richtig gesetzt,oder?
Gast #3197825
Lesenswert?

Hi

>also ich denke mal, es liegt daran, dass ich die Befehle nicht wirklich
>setze (wie man am 9600 -> 4800 beispiel sieht). Wer eine Idee, wie ich
>das korrekt durchführe?

Warum willst du eigentlich an irgend welchen Einstellungen 
herumschrauben. Die Module von Navilock, die ich bisher in den Fingern 
hatte, haben auf Anhieb funktioniert. Sorge lieber für einen anständigen 
Empfang.

Wenn du das Modul an deinen Rechner koppeln kannst ist das Programm 
SirfDemo ganz hilfreich.

MfG Spess
Gast #3198605
Lesenswert?

>Die Datenausgabe sieht so aus:

Und sagt Null Empfang.

Ist die Spannungsversorgung von deinem GPS Modul in Ordnung?
Selbst mit nur ein oder zwei Satelliten kommt nach kurzer
Zeit wenigstens die Uhrzeit richtig rüber.
Gast #3198738
Lesenswert?

>Ich habe ein zweites baugleiches Modul. Das tausche Ich nur aus. D.h.
>die Spannungsversorgung sowie andere Randbedingungen sind identisch.

Und das zweite funktioniert? Naja vermutlich.
Such mal nach sirfdemo und stell dein GPS damit
noch mal ein.

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