Forum: Mikrocontroller und Digitale Elektronik GPS-Modul Konfigurieren- Anfängerfehler?


von Berthold von Sackdorf (Gast)


Lesenswert?

Hallo,

ich habe hier seit Ewigkeiten ein Navilock EM-411 liegen. Jetzt habe ich 
endlich das Kabel gebastelt und kann auch per Terminal wunderbar Daten 
empfangen, aber nix einstellen.

Ich habe z.B. versucht VTG abzuschalten. Per Microcontroller und weils 
nicht klappte im Bascom Terminal habe ich folgende Codes gesendet:

$PSRF103,05,00,00,01*21\r\n
$PSRF103,05,00,00,01*21
$PSRF103,05,00,00,00
$PSRF103,05,00,00,00\r\n

Erfolglos. Auch der Versuch einen Warm- oder Kaltstart zu provuzieren 
schlug fehl.

Was kann man denn bei funktionierender Kommunikation hier noch falsch 
machen?

Bin dankbar für Hilfe!

von Oldie (Gast)


Lesenswert?

Die erste Zeile ist (so habe ich es mal für meinen EM-401)
herausgefunden, korrekt. Wird beim EM-411 gleich sein.
Probiert habe ich es aber nie...

Siehe unter dem Punkt "Datenblätter":

http://mic.hit-karlsruhe.de/projekte/SS05-GPS-Navigator/anhang.html

Ansonsten bietet Globalsat auch ein GPS-Info Programm für
den EM-411 an, mit dem man vom PC aus u.a. VTG schalten kann.

- Das Kommando ließe sich ja am Port "ablauschen".

von Wolfgang A. (Gast)


Lesenswert?

Berthold von Sackdorf schrieb:
> Bin dankbar für Hilfe!
Hast du mal ein
1
$PSRF105,1*3E\r\n
(Debug on) an das Modul geschickt?

von Berthold von Sackdorf (Gast)


Lesenswert?

So, war Anfängerfehler!
Im Bascom-Terminal habe ich immer munter die ganze NMEA-Message gesende 
und ignoriert, dass da steht "ASCII-Zeichen" senden.

Im Mikrokontroller hatte ich dagegen einen Frame Overflow und die 
Nachricht war vor dem Senden zerstört.

Sendet man per print, werden CL/LF angehängt, muss man also weglassen.

Funktionieren tut z.B. dies: (Aufruf mit 4 Parametern, z.B. Call 
Set_nmea_parameter(0 , 0 , 15 , 1))

Dim Nmea_buf(2) As String * 79
Dim Temp_byte As Byte

Sub Set_nmea_parameter(byval Msg As Byte , Byval Ratemode As Byte , 
Byval Rate As Byte , Byval Chksumenable As Byte)
   Nmea_buf(1) = "PSRF103," + Str(msg) + "," + Str(ratemode) + "," + 
Str(rate) + "," + Str(chksumenable)
   If Chksumenable = 1 Then
      Temp_byte = Checksumxor(nmea_buf(1))
   End If
   Nmea_buf(1) = Nmea_buf(1) + "*" + Hex(temp_byte)
   Print "$" ; Nmea_buf(1)
   Nmea_buf(1) = ""
End Sub

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
Noch kein Account? Hier anmelden.