Forum: Mikrocontroller und Digitale Elektronik ublox CR4 - Empfang: wirres Zeug


von dap by MAT (Gast)


Lesenswert?

Hi Leute,

habe nun so ziemlich alles versucht um von der ublox-Applikation von 
CONRAD (Artikel-Nr.: 989777) reines NMEA-Protokoll zu erhalten. Weder 
mit HyperTerminal, noch mit meiem Atmega128 board bekomme ich 
ordentliche Daten. Habe eine "Kalibrierung" mit 
"http://forum.xufo.net/bb/download.php?id=4956&sid=6652b6ec54002acc39b37bb63f761005"; 
vorgenommen. Eigentlich da ganz einfach !?!
Schließe ich ublox-TX an Controller bzw. PC - RX, erhalte ich nur wirres 
Zeug!
Ich bitte euch mir zu helfen da ich das für meine Diplomarbeit sehr 
wichtig brauche ... DANKE !!!

P.S.: programmiere mit BASIC AVR ... viell. habe ich ja da Deklarationen 
vergessen oder so ... viell. hat kan mal jemand gute manuals schreiben, 
wäre echt toll !!!

von dap by MAT (Gast)


Lesenswert?

PLS HEEEEEEEEEELP !!!!!!

von norbi alias superhero12 (Gast)


Lesenswert?

Hoffe Ihr könnt mir einige Fragen beantworten.
Ein Kollege und ich planen ein Projekt das uns einiges abverlangt. Wir 
wollen mit einem GPS gesteuertes Boot Bodenstrukturen über ein Echolot 
ausmessen lassen.
Nun ist die VB-Applikationen und sonstige Steuerungen weitgehend 
fertiggestellt. Ein großes Problem bereitet uns die serielle Übertragung 
(RS232 bzw. UART) von ublox auf unsere VB-Anwendung.
Ich gehe wie folgt vor:
.) u-blox – TX --> Mikrokontroller – RX
.) Über u-center weitgehend Einstellungen vorgenommen
.) Werden Daten im Puffer gefunden, wird ein Interrupt aufgerufen und 
Daten werden über RS-232 ausgegeben

Nun habe ich schon viele Stunden rein in die Datenübertragung von GPS 
auf Computer gesetzt. Das Problem ist nun das ich zwar im Sekundentakt 
(meine Einstellung: 1 Hz) Daten erhalte, jedoch nicht mal annähernd das 
erwartete NMEA-Protokoll. Nachdem ich dieses Problem möglichst schnell 
lösen sollte, bitte ich euch vielmals mir Hilfestellung, egal in welcher 
Form leisten zu können.
Großen Dank im Voraus!

von jjk (Gast)


Lesenswert?

Sorry, aber mit diesen "Angaben" kann man mal grad ebent so garnix 
anfangen:


>.) u-blox – TX --> Mikrokontroller – RX

Was fuer ein Controller?
Welches u-blox Modul?

>.) Über u-center weitgehend Einstellungen vorgenommen

Welche genau und wie?

>.) Werden Daten im Puffer gefunden, wird ein Interrupt aufgerufen und
>Daten werden über RS-232 ausgegeben

Ueber RS-232 wohin ausgegeben?
Mit welchem Programmcode?
Welcher Pegelwandler?
Wie sieht die Hardware/Schaltung aus?
etc....

>Nun habe ich schon viele Stunden rein in die Datenübertragung von GPS
>auf Computer gesetzt. Das Problem ist nun das ich zwar im Sekundentakt
>(meine Einstellung: 1 Hz) Daten erhalte, jedoch nicht mal annähernd das
>erwartete NMEA-Protokoll.

Was genau wird denn ausgegeben?
Wie waers mit einem Screenshot?

Ohne den genauen Hardwareaufbau und die verwendete Software zu kennen 
kann man da garnix zu sagen.

juergen

von norbi alias superhero12 (Gast)


Lesenswert?

Hi,
folgend findest du mal einige Infos...

Controller: Atmega128 Funk 
("http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=76&products_id=158";)

GPS-Modul: ublox CR4 von CONRAD (Art.Nr.: 989777) mit LEA-4H

vorgenommenen Eintsellungen: Grundsätzlich habe ich die Konfigurationen 
laut einer Beschreibung eines Quadrokopters vorgenommen ... Baudrate auf 
9600 (auch andere versucht), USART1/USART2 auf NMEA-Output, Messperioden 
auf alle 1s gestellt, ...

So, nun zum Aufbau:
Den u-blox Ausgang (TX) hänge ich auf einen am Board dafür vorgesehenen 
Pin (RX). Über die RS232-Schnittstelle kommunieziere ich mit einem PC 
bzw. einer VisualBasic-Anwendung.

Programmcode wie beschrieben: Arbeite in BASIC und löse sofern Daten vom 
u-blox - Modul (auf UART) kommen, einen Interrupt aus und schicke die 
kommenden Zeichensätze gleich weiter an den PC.

Die Doku zum genauen Aufbau findet man unter 
"http://www.robotikhardware.de/download/rnmega128funk.pdf";.
Dieses Funk-Modul kann ich übrigens an alle weiterempfehlen!

Zeichensätze gleichen nicht wirklich NMEA gg ...

[
}
Å
Å
õ
—
‘
“
“
§
—
£
›
§
Ÿ
Ÿ


‘
•
§
£
e
«
å
q
w
§
§
§
«
å

Ich bitte Dich, und natürlich auch alle anderen mir zu helfen, da ich 
ich verzweifelt bin und ich das unbedingt schaffen muss.

Großen Dank wieder im Voraus ... bis auf baldiges !!!

von jjk (Gast)


Lesenswert?

>Controller: Atmega128 Funk
>("http://www.shop.robotikhardware.de/shop/catalog/pr...)

Fein, nur hilft das ueberhaupt nicht weiter.
Wie sieht denn das Programm dafuer aus?

>GPS-Modul: ublox CR4 von CONRAD (Art.Nr.: 989777) mit LEA-4H

Ach die Story...
Sicher dass das Teil nach den Umloetaktionen noch funktioniert?

>vorgenommenen Eintsellungen: Grundsätzlich habe ich die Konfigurationen
>laut einer Beschreibung eines Quadrokopters vorgenommen ... Baudrate auf
>9600 (auch andere versucht), USART1/USART2 auf NMEA-Output, Messperioden
>auf alle 1s gestellt, ...

1. Die LEA-4x Module haben nur einen UART...
Der 2. Port ist USB.

Und noch mal:
Was genau hast Du konfiguriert?
Ausser Baudrate und Port bzw. Protokoll kann man ja noch ein wenig mehr 
einstellen.
Hast Du Dir mal die Antaris Protocol Specifications angesehen damit Du 
weisst was Du da einstellst?

2. Ich wuerde es mal systematisch/strukturiert angehen:

Wenn Du das Teil wie Du sagst per u-center konfiguriert hast dann musst 
Du es ja via Pegelwandler (Max 232 o.ae.) an der seriellen Schnittstelle 
des PC gehabt haben.

Also lass mal den Controller weg und haeng das GPS Modul wieder genau so 
an den PC und schau Dir mal mit einem Terminalprogramm an was es tut.

Dann kannst Du wenigstens schon mal festellen ob Deine Konfiguration ok 
ist bzw. das Modul ueberhaupt arbeitet. Bevor das nicht geht brauchst Du 
gar nicht erst weiter zu suchen.

juergen

juergen

von norbi alias superhero12 (Gast)


Angehängte Dateien:

Lesenswert?

Guten Tag!

Vorerst mal mein vereinfachter Code:

********************************************************************

$regfile = "m128def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32

$crystal = 16000000

Open "com2:" For Binary As #2

Dim X As String * 1

Enable Urxc1
Enable Interrupts

On Urxc1 Send

Do

Loop

Send:
   X = Chr(udr1)
   Print #2 , X
Return

********************************************************************

Im Anhabg findest du Infos zu den Softwareeinstellungen die ich über 
ublox-Applications vorgenommen habe. Meine mal das USART1 der richtige 
ist, habe dann dort Baudrate auf 9600 gesetzt, Protocol IN = none und 
Protocol OUT = NMEA. UART0 kann ich nichtmal anwählen, da wenn ich es 
selektiert habe das Pop-up Menü sofort wieder auf USART1 springt - meine 
mal das das kein all zu großes Problem sein sollte.

Nen Max232 habe ich nicht, bin mir aber ziemlich sicher das das Modul in 
Ordnung ist - jedoch ... was weiß ich schon ?!?!

Will mir nicht wirklich extra ned Max232 zulegen und bitte dich daher 
mir anders weiter zu helfen. Ich mach bestimmt irgendwo nen blöden 
Fehler.

Bitte um Hilfe, bis auf baldiges !!!

von holger (Gast)


Lesenswert?

>Will mir nicht wirklich extra ned Max232 zulegen und bitte dich daher
>mir anders weiter zu helfen. Ich mach bestimmt irgendwo nen blöden
>Fehler.

Dein Modul kommuniziert also am PC ?
Kommen dort NMEA Meldungen an ?
Mit Terminalprogramm kontrollieren !

Wenn du keinen MAX232 benutzt wird dein RS232 Signal vom GPS
nicht invertiert. Das musst du aber wenn du es an einen
uC anschliessen willst. Ausserdem musst du eine Pegelwandlung
der RS232 Signale durchführen. Sonst könnte es dir den uC
abschiessen.

Also MAX232 kaufen. Der erledigt beides zusammen.

von holger (Gast)


Lesenswert?

Ich glaub jetzt hab ichs ;)

Du hast an der 9pol Buchse deinen PC hängen.
An der dreipoligen Buchse dein GPS.

Ist dir schon mal aufgefallen das die im Schaltplan
parallel geschaltet sind ? D.h. PC und GPS arbeiten auf
EINEM Anschluss !

von norbi alias superhero12 (Gast)


Lesenswert?

Grüße!

Jaja ALLES KLAR !!!

Hast eh recht ... die arbeiten bestimmt mit dem selben UART bzw. Buffer, 
aber das darf doch kein Problem sein oder ? Schau dir mal meinen Code an 
... da dürfte sich nichts überschneiden oder so, oder doch ???

Bitte um Hilfestellung !!! DANKE !!!

von jjk (Gast)


Lesenswert?

@ Holger

Er hat das Teil doch an einem Controllerboard das via MAX 232 am PC 
haengt ;)

@ Norbi et. al.

>Vorerst mal mein vereinfachter Code:

Mit vereinfachtem Code kann man natuerlich nix anfangen.
Ich hatte danach gefragt weil ich wissen wollte ob der Code von Dir ist 
oder von irgendwo kopiert...

>Im Anhabg findest du Infos zu den Softwareeinstellungen. ...

Das sollte erst mal prinzipiell passen.
Welche NMEA Messages hast Du denn aktiviert?

>Nen Max232 habe ich nicht, bin mir aber ziemlich sicher das das Modul in
>Ordnung ist - jedoch ... was weiß ich schon ?!?!

Noch mal:

Das Geheimnis heisst systematische Fehlersuche und nicht mehrere 
Baustellen zugleich.

1.Dazu solltest Du sicher sein dass das Modul funktioniert, erst dann 
wuerde ich beim Controllerboard weitermachen.
Wenn Du das Modul konfiguriert hast und eben nicht via MAX232 o.ae. am 
PC hattest dann bleibt ja wohl nur USB uebrig.
Hast Du also das Teil vor der Umloetaktion per USB am PC gehabt und 
konfiguriert oder wie sonst hast Du das gemacht?
Falls per USB, dann musst Du das Teil wieder in diesen Zustand 
zurueckbauen und dann am PC testen. Alternativ eben per MAX 232 an den 
PC haengen. Anders wird es wohl kaum gehen.

2. Ob ein Fehler in Deiner Software oder dem Controllerboard steckt 
findest Du raus wenn Du dem Board vom PC aus ein Zeichen in den NMEA 
Buffer schickst und es von dort wieder ausliest bzw. an den PC 
zurueckschickst. Oder Du nimmst die Navilock Maus die Du frueher mal 
erwaehnt hast zum Testen des Boards.

3. Was Grundsaetzliches zu diesem Projekt:

Ich hab mir mal Deinen alten Thread zu diesem Thema durchgelesen.
Was soll das denn nun eigentlich werden, Fishfinder oder Bodenvermessung 
oder was?

Ich gehe jedenfalls dabei mal vom Einsatz eines Bootes in 
Modellbaugroesse aus. Da ist IMO das Conrad-Modul nicht gerade 1. Wahl:

Das Teil hat eine fixe Patchantenne, d.h. bereits leichte Schwankungen 
des Bootes (etwa bei Kurskorrekturen) lassen den Antennenhorizont 
erheblich kippen und das fuehrt zu Verbindungsabrissen zu tieffliegenden 
Sats. (Das Modul arbeitet per default vermutlich mit dem 
u-blox-typischen cut-off Winkel von 5 Grad. Laut Antaris Protocol Spec 
kann man den dummerweise auch nicht aendern. 10 Grad waeren am Wasser 
sinnvoller.)
Eine Wasseroberflaeche ist zudem eine perfekte Umgebung fuer 
Reflektionen, Stichwort Multipath, insbesondere in Verbindung mit einer 
Patchantenne wenn das Teil Richtung Wasseroberflaeche kippt.
Da wuerde ich mal optimistisch mit Genauigkeiten um 10-15m oder 
schlechter rechnen.
Mit wenigen Worten, ich haette fuer so einen Verwendungszweck dieses 
Modul sicher nicht gewaehlt.

Was aus den Specs auch nicht hervorgeht ist ob das Teil mit Static 
Navigation arbeitet, also bei niedrigen Geschwindigkeiten bzw. 
Stillstand die Position einfriert. (Muesstest Du bei u-blox nachfragen). 
Falls Static Navigation implementiert ist taugt das Teil fuer diesen 
Anwendungszweck (langsame Positionsdrift) ohnehin nicht.


juergen

von holger (Gast)


Lesenswert?

>Hast eh recht ... die arbeiten bestimmt mit dem selben UART bzw. Buffer,
>aber das darf doch kein Problem sein oder ? Schau dir mal meinen Code an
>... da dürfte sich nichts überschneiden oder so, oder doch ???

Doch, natürlich überschneidet sich da was. Der Sendeausgang
von deinem PC hängt parallel zum Sendeausgang vom GPS. Das
ist schon mal problematisch. Das zweite Problem ist das das
GPS scheinbar keine RS232 Pegel überträgt und für den PC wohl
noch einen Konverter braucht. Hab ich mal schnell so zusammengelesen.
Das heisst im GPS hängt KEIN MAX232 auf der Sendeleitung.
Das heisst aber auch das das Sendesignal nicht invertiert wird.
Du brauchst also einen Inverter auf der Sendeleitung. Deshalb
kommt so ein Schrott bei dir an.

von jjk (Gast)


Lesenswert?

>Jaja ALLES KLAR !!!

>Hast eh recht ... die arbeiten bestimmt mit dem selben UART bzw. Buffer,
>aber das darf doch kein Problem sein oder ? Schau dir mal meinen Code an
>... da dürfte sich nichts überschneiden oder so, oder doch ???

Ja was denn nun?
Der Atmega 128 hat doch 2 serielle Schnittstellen. Da geh ich doch mal 
davon aus dass das Board ueber eine davon via MAX 232 am PC haengt und 
das GPS Modul an der anderen.
Oder etwa nicht?

juergen

von holger (Gast)


Lesenswert?

@jjk
>Oder etwa nicht?

Genau, etwa nicht ;)
Am UART0 hängt das EasyRadio.
An UART1 die 9pol Sub-D, und PARALLEL dazu
eine interne dreipolige RS232 Stiftleiste.

von jjk (Gast)


Lesenswert?

>Am UART0 hängt das EasyRadio.
>An UART1 die 9pol Sub-D, und PARALLEL dazu
>eine interne dreipolige RS232 Stiftleiste.

Toll.

juergen

von jjk (Gast)


Lesenswert?

Kleiner Nachtrag:

>Was aus den Specs auch nicht hervorgeht ist ob das Teil mit Static
>Navigation arbeitet, also bei niedrigen Geschwindigkeiten bzw.
>Stillstand die Position einfriert. (Muesstest Du bei u-blox nachfragen).
>Falls Static Navigation implementiert ist taugt das Teil fuer diesen
>Anwendungszweck (langsame Positionsdrift) ohnehin nicht.


Hab's inzwischen rausgefunden:
Je nach Firmware hat das Teil static navigation, u-blox nennt das static 
hold, aktiviert. Das muesste man in jedem Fall per u-center 
deaktivieren, allerdings mit dem Nachteil dass es dann bei Stillstand zu 
Positionsspruengen kommt.

Fuer den angestrebten Verwendungszweck gibt es eben besser geeignete 
Module.

juergen

von north (Gast)


Lesenswert?

Und welche wenn man fragen darf ???

Hab ebenfalls so ein Projekt am laufen ... wär super wenn du mir 
geeignetere Methoden statt µblox sagen könntest ... DANKE

von jjk (Gast)


Lesenswert?

>Und welche wenn man fragen darf ???

>Hab ebenfalls so ein Projekt am laufen ... wär super wenn du mir
>geeignetere Methoden statt µblox sagen könntest ... DANKE


Was fuer ein Projekt und welche Anforderungen werden denn dabei an das 
GPS gestellt?
Vorher kann ich gar nix empfehlen.

Ohne jetzt detailliert auf die Driftproblematik sog. indoor oder high 
sensitivity Sensoren im Stillstand einzugehen.... kann man nur 
grundsaetzlich sagen dass fuer "quasi-stationaere" Anwendungen oder 
solche mit sehr niedriger Geschwindigkeit die etwas aelteren klassischen 
12-Kanalgeraete geigneter sind.

Da sollte man sich aber vorher nicht nur die Specs anschauen sondern vor 
Allem die Manuals!, sofern es die gibt:

Wie sieht das proprietaere Protokoll aus mit dem ich den Sensor 
konfigurieren kann?
Weche Konfigurationsmoeglichkeiten bietet das Teil?
Kann man z.B. Elevation/Antenna Mask Angle einstellen?
Welche Positionsfilter nutzt das Teil?
Sind die konfigurierbar?

usw.

Ich wuerde auch immer eine abgesetzte Aktivantenne verwenden, also kein 
Modul wie das U-blox Teil bzw. eine GPS Maus, insbesondere am Wasser.

Es kommt aber halt drauf an was man genau braucht, also Einsatzweck und 
Anforderungen.

Entsprechende Sensoren gab/gibt es von u-blox, Rockwell, Trimble, 
Motorola, i-lotus...

juergen

Ich selbst verwende Motorola Sensoren, aber die sind teuer und nicht 
leicht beschaffbar.

von norbi alias superhero12 (Gast)


Lesenswert?

Hi north ggg

Ich kenne north, er ist noch immer dran mir mein Projekt abuzukupfern 
... hoffe das bist du Alex ... sonst natürlich vielmals um 
entschuldigung !!!

Also jetzt mal zu dir Juergen ...

Anscheinend bist du ein schlauer Kopf was GPS angeht !!!
Ich habe da fast kA von was du da genau redest. Kannst du bitte kongrete 
Infos geben, für mein Projekt ... und nicht so ein technischer Schmafu.

Also grob besteht die Aufgabestellung in dem, dass ein am Wasser 
fahrendes Boot über GPS Daten, Position halten sollen kann. Und das 
ganze, möglichst einfach ... also stelle mir das so vor:
.)Stromversorgung + und - anschließen
.)GPS TX an µc RX

Bitte gib mir einfache Lösungen für das Projekt, die auch nicht ALL zu 
teuer sind wenns geht.
Am liebsten wär mir mal ´n Link oder der Gleichen um mir sowas mal 
anzusehen!

DANKE bereits jetzt für deine Hilfe !!!

von Kreinstetter Johannes (Gast)


Lesenswert?

Grüß Gott!

Ich bin neu hier. Habe mich mal durch eure Diskussionen durchgelesen. 
Wie norbi scho erwähnt hat (sofern ich das richtig verstanden habe). Ich 
bräuchte Informationen wie man eine möglichst exakte Positionsbestimmung 
und das ganze möglichst einfach machen kann. Habe 2xAtmega128Funk bei 
mir zu Hause. Habe da was lustiges für meinen Garten vor. Im groben wird 
es ein Art Amphibienfahrzeug. Die Positionsbestimmung muss nicht all 
zu genau sein aber +- 1-2m sollten schon mindestens drinn sein.
Bitte um genaue Informationen. Danke!

von nova (Gast)


Lesenswert?

Brächte auch so ne GPS-Steuerung!  Sehe der Betrag ist recht neu! Kann 
sich dieser Jürgen mal zu Wort melden  wär ja echt super. Also mit 
welchem System komm ich möglichst einfach und kstengünstig auf exakte 
Postionen ?

THANKS

von nova (Gast)


Lesenswert?

HILFE !!!

von anton merder (Gast)


Lesenswert?

Hallo, habe mir heute ein Gerät von Wintec und zwar den Wintec WGM-302 
in PS2 Version besorgt. Dieser hat einen RS232 Uasgang und man muss 
nichts umlöten. Falls es jemanden interessiert: 
http://shop.wintec-gps.de/

Gruß

Anton

von ~~~ (Gast)


Lesenswert?

Nach >3 Jahren interessiert das sicher nicht mehr...

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.