Statt DCF77 ein GPS Zeitempfänger.

fredred

Mitglied
1 Okt 2015
61
1
7
Hallo,

hat jemand praktische Erfahrungen mit preiswerte GPS- Module wie z. B. Neo-6M- 0-001.
Mir geht es nicht um mehr Genauigkeit, da bin ich immer noch mit DCF77 voll zufrieden, wenn Antenne ausgerichtet und der Geradeaus-Empfänger optimal ist.
Nun benötige ich einen zuverlässigen Zeitstempel für ein schnell ortveränderliches Projekt(Datenlogger) Da ist natürlich ein DCF77- Empfänger nicht die beste Wahl.
Die Datenauswertung der GPS- Module Neo-6M scheint ja auch mit Bascom kein Problem zu sein. Kommunikation über serielle RX/TX Verbindung.

Mit freundlichen Grüßen
Fred
 

Janiiix3

Aktives Mitglied
28 Sep 2013
1.314
10
38
Hannover
Sprachen
C, C#

fredred

Mitglied
1 Okt 2015
61
1
7
Hallo Janiiix3,

Genau solche Module habe ich auf Werkbank getestet.3 Stück .
Musste aber feststellen das auch bei diesen GPS-Modulen eine sehr saubere und stabile Betriebsspannung genau wie bei den DCF- Modulen nötig ist. 3,3 – 5,0 Volt sind angegeben aber bei 5 Volt schon 70mA und Module startet nicht suche nach Satelliten.
Bei 3,0 Volt und ist Rip < 0,1mV , dann schon stabil aber auch hier ist die Einschwinkzeit nach einschalten der Betriebsspannung sehr unterschiedlich von 1 bis 20 Minuten. Mach ich da was falsch.
Oder müssen die Dinger immer unter Saft stehen wenn einmal „eingerastet“.

Mit freundlichen Grüßen
Fred
 

Mikro23

Mitglied
2 Jan 2017
317
24
18
Großraum Hannover
Sprachen
C, Assembler
Nun benötige ich einen zuverlässigen Zeitstempel für ein schnell ortveränderliches Projekt(Datenlogger) Da ist natürlich ein DCF77- Empfänger nicht die beste Wahl.
Ohne großen Aufwand hat eine RTC eine Abweichung von +/-10 bis 15 Sekunden pro Monat.
Per DCF-Empfänger spätestens alle paar Tage (vorzugsweise Nachts, da ist der Empfang meist besser) neu synchronisiert, sollte sich eine Abweichung von höchstens einer Sekunde erreichen lassen…
 

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3.305
60
48
Marwitz
Sprachen
BascomAVR, Assembler
Hmm...
Aber wenn die RTC driftet, stören die DCF/GPS-Synchronisationen möglicherweise sogar mehr als die Drift. Also zumindest, wenn der
zu Langzeitmessungen genutzt werden soll...
Ohne großen Aufwand hat eine RTC eine Abweichung von +/-10 bis 15 Sekunden pro Monat.
Scheint über den Daumen zu passen - die hier kämen etwa auf 7,5s pro Monat (+/-3ppm), allerdings ist die RV-8263-C7 da sogar mit +/-1ppm angegeben...
 

fredred

Mitglied
1 Okt 2015
61
1
7
Hallo Mikro23,

Danke für Antwort.
Dies ist mir bekannt. Aber habe ich Projekt einmal angewiesen die interne Zeit(RTC) durch DCF77 zu synchronisieren und aus Standortgründen ist kein Signal da oder noch schlimmer ein gestörtes Signal ist die Wahrscheinlichkeit hoch das die Zeit nicht oder falsch gestellt wird. Hoffe GPS- Zeit ist auch noch im weiten Osten zu empfangen.

Mit freundlichen Grüßen
Fred
 

Janiiix3

Aktives Mitglied
28 Sep 2013
1.314
10
38
Hannover
Sprachen
C, C#
Hallo Mikro23,

Danke für Antwort.
Dies ist mir bekannt. Aber habe ich Projekt einmal angewiesen die interne Zeit(RTC) durch DCF77 zu synchronisieren und aus Standortgründen ist kein Signal da oder noch schlimmer ein gestörtes Signal ist die Wahrscheinlichkeit hoch das die Zeit nicht oder falsch gestellt wird. Hoffe GPS- Zeit ist auch noch im weiten Osten zu empfangen.

Mit freundlichen Grüßen
Fred
Das mit dem falschen empfangen Datensätzen habe ich auch gehabt bei meiner Uhr.
Habe das so gelöst das ich mehrere Zyklen empfangen habe und dann alle miteinander verglichen habe (bis auf die Sekunden)! Bis heute keine falschen Daten auf der Uhr gehabt.
 

fredred

Mitglied
1 Okt 2015
61
1
7
Das mit dem falschen empfangen Datensätzen habe ich auch gehabt bei meiner Uhr.
Habe das so gelöst das ich mehrere Zyklen empfangen habe und dann alle miteinander verglichen habe (bis auf die Sekunden)! Bis heute keine falschen Daten auf der Uhr gehabt.
Hallo,
Falsch empfangene Datensätze von Dcf77 auf Plausibilität prüfen ist okay wenn überhaupt ein kompletter Datensatz empfangen wurde. Dass zyklisches Empfangpaket dauert ja eine Minute ab Startsignal, was ist wenn die Übertragung immer wieder gestört wird oder länger ausfällt.
Da liegt mein Problem. Da die ständige Ortsveränderung des DCF77- Moduls nicht funktionieren kann.
Somit Schluss mit RTC und Co also den Zeitstempel direkt und fast in Echtzeit für einen AVR holen, ist die Idee.
Sollte doch mit GPS- Module möglich sein, wenn diese wie versprochen.
Hohe Genauigkeit für Zeitauswertung und gute Regeleigenschaften haben.

Somit sollte meine Anfrage verstanden werden, ob und wo es Probleme geben kann.

Mit freundlichen Grüßen
Fred
 

fredred

Mitglied
1 Okt 2015
61
1
7
Hallo,
nun habe ich diese GPS- Module getestet und muss leider feststellen, dass diese noch nicht meine Erwartungen hinsichtlich Mobilität entsprechen. Natürlich wird die Empfangsqualität bei ungünstigen Standorten besser als mit einem DCF77- Modul.

Erlaube mir mal meine Erfahrungen zu äußern.

Modulabmessungen mit integrierter Antenne okay.
Laut Datenblatt:
VCC: Power supply pin input 3.3-5.5V 45mA

Bei 3,3 Volt 60mA bei 5,0 Volt 130 mA Dauerwert bis „Normalbetrieb“ Start. Alle Module starten nicht in räumlicher Umgebung(Werkstatt) Na klar gelesen, GPS, ist nur mit Außenantennen möglich also höhere Kosten und ein erhöhter Aufwand.
Gute Aktivantenne, wie vom Hersteller empfohlen, angeschlossen.
Specification:
Connector: Male
Frequency Range: 1575.42MHz
Voltage: 3-5V
DC current: 10mA Max
Polarization: Circular (RH)
LNA Gain (Without cable): 28dB typ.
Noise Figure: 1.5dB typ.
Operating Temperature (Deg.C) -45~+85
Storage Temperature (Deg.C) -50~+90
Humidity: 100%
Weatherproof: Yes
Cable length: 3 meters
Size: 45 x39 x13 mm (main unit)


Bei 3,3 Volt 75mA Dauerwert bei 5,0 Volt 350 mA (Testabbruch nach einsetzen der Strombegrenzung)

Ein Zuverlässiger Kaltstart ist nur mit Außenantenne und im Spannungsbereich von 3,3 bis 3, 8 Volt möglich. Bis zum Start bei 3,3 Volt 75 mA dann 60 mA.
Dieser Energieverbrauch ist schon sehr hoch gegenüber DCF und schließt Akku- oder Batterie betrieb für Projekt aus. Es ist zu beachten ein Kaltstart kann bis zu 20 Minuten dauern und ein Warmstart auch schon mal mehr als eine Minute. Ein Warmstart kommt unverzüglich wen Antenne Satelieten nicht mehr „sieht“.Kann ja mal schnell basieren dass Antenne ein Dach bekommt, kann eine Tiefgarage, ein Tunnel oder Regenschirm u.s.w. sein.

Vom Datenumfang/Schnittstelle(liefert alles dekodiert und übersichtlich) und Störsicherheit bin ich begeistert.
Hab mal mit BASCOM eine kleine Auswertung aller gesendete Blöcke erstellt und zum Test eine Uhr mit LCD – Anzeige [ Zeit Datum] dann noch wie viel Satteliten werden gesichtet(4 sollten es ja schon sein) und die Koordinaten wo Projekt steht.
HW ist ja Null Problem. 3,3 Volt für Modul und Mega 644p(hatte ich gerate auf Steckbrett ein M8 reicht auch muss nur Uart haben, wenn wie ich, Modul und AVR direkt mit 2 Strippen(GND und Signal)verbinde.

SCHICK und zuverlässig wen nicht die spezifischen Projektprobleme währen.
Naja diese GPS- Module sind für ein „Kurzzeitstart“noch sensibler als DCF77 dann sage ich erst mal ich bleibe bei der altbewährten Zeitbasis.
Hat ja auch den Vorteil muss mich nicht um Zeitzonen kümmern und für was sich unsere Politiker bei der Abschaffung der Zeitumstellung entscheiten, könnte ja wie gehabt eine sehr lange und kostenaufwendige Aufgabe für viele Jahre werden.
Ich bezweifle dass diese die Normalzeit wieder wollen. Das Wort Normal passt nicht mehr in den heutigen Politentscheidungen.

Bitte Kommentare als privaten Amateuranwenderbericht betrachten Diese Module können bestimmt viel mehr.

Zum Abschluss mein Dank für Antworten.
Mit freundlichen Grüßen
Fred
 

fredred

Mitglied
1 Okt 2015
61
1
7
Entschuldigung Thema war eine Anfrage und sollte nun geschlossen werden, da Frage zu allgemein war, nun versuche ich mit kleinen Schritten selber praktische Erfahrungen zu sammeln.

Muss nur richtig stellen.
Naja diese GPS- Module sind für ein „Kurzzeitstart“noch sensibler als DCF77 dann sage ich erst mal ich bleibe bei der altbewährten Zeitbasis.
War Falsch.
Die billigen Module können zu viel für das was ich diese brauche.
Die Module empfangen Signale von bis zu 11 Satelliten gleichzeitig
Na das ist doch was
Die viel verschiedenen GPS-Sequenzen für standardisierten NMEA- Format benötige ich nicht alle für einen zuverlässigen Zeitstempel. Möchte nur an fast jedem Ort ohne ausrichten der Antenne die aktuelle Zeit.
Mir war bekannt:
Aus den Laufzeiten der verschiedenen Funksignale läßt sich die Entfernung und damit die exakte Position des Empfängers in Längen- und Breitengrad bestimmen. Dies wird auch für Berechnung der Uhrzeit benötigt.
Neben den Positionsdaten stellt der Empfänger auch weitere Daten, wie z.B. Geschwindigkeit,
Bewegungsrichtung, Höhe, in den verschiedenen NMEA Datensätzen zur Verfügung. Zum Teil überlappen sich die Informationen der NMEA- Datensätze, so dass normalerweise nie alle Datensätze gleichzeitig vom Anwender benötigt werden.
Die Übertragung der GPS-Datensätze gemäß NMEA-Version 0183 wie GGA, VTG und wenn vorhanden ZDA, sind ausreichend. Der Rest wird für ZEITSTEMPEL nicht benötigt.
Leider kann ich noch nicht die Sequenz ZDA erfassen. Diese stellt die Time und Date- Nachricht für lokale Zeitzone zur Verfügung.
Naja bin erst mal dabei die Grundfunktionen der Register zu verstehen.
Mit Print erst mal bei Programmstart Modul angewiesen die Sequenzen MSS, RMC, GSV,GSA und GLL abzuschalten.
Dumm an den Modulen finde ich die Default- Moduseinstellung, wenn der Empfänger keine feste Position berechnet ist das Statusfeld ungültig, Infos werden auf Null gesetzt und das kann dauern.
Mal sehen wen ich die Wiederholrate auf Minimum setze und nur den Status q in GGA als „gültige“ Zeitübernahme nutze.

Nun möchte ich euch nicht mehr mit eigenen Antworten belästigen.
Danke und Tschüß
Fred
 

Tschoeatsch

Mitglied
24 Okt 2015
102
11
18
60
Sprachen
BascomAVR
Hi Fred, probiere doch das mal


CodeBox BascomAVR

'Zeit und Datum (UTC) aus GPS-Modul auslesen
'getestet mit Arduino-uno und Neo-6M-GPS-Modul, Modul-TX an Arduino-RX

$regfile = "m328pdef.dat"
$crystal = 16000000
$hwstack = 34
$swstack = 32
$framesize = 40
$baud = 9600



Config Clock = User
Config Date = Dmy , Separator = .
On Urxc Serieller_irq
Enable Urxc
Enable Interrupts

Dim Zeichen As String * 1                                   'empfangenes Zeichen
Dim Zz As Byte                                              'Zeichenzähler
Dim Utc_time As String * 8
Dim Utc_date As String * 8
Dim Einlesen As Bit                                         '=1, dann sind die folgenden empfangenen Zeichen interessant
Dim Zeit_da As Bit                                          '=1 wenn Zeit und Datum empfangen wurden
Dim Zeilencode As String * 5                                'Bezeichnung der Datenzeile
Const Vergleichscode = "GPRMC"                              'diese Zeile wird gebraucht

Wait 2
Print "Übertragungstest"
Do
   If Zeit_da = 1 Then
      Print Utc_time ; "  " ; Utc_date
      Zeit_da = 0
   End If
Loop
End

Serieller_irq:
'Beispiel: $GPRMC,085636.00,A,4934.94722,N,01057.70667,E,0.085,,250719,,,A*78
'Beispiel: $GPRMC,hhmmss.ss,A,llll.lllll,a,xxxxx.xxxxx,a,x.xxx,,ddmmyy,,,a*hh
'                 | | |    | |          | |           | |     ||| | |
'zz Zuordnung     7 9 11   1314         1516          1718    19
'                                                              20
'                                                               212325
   Zeichen = Chr(udr)
   If Zeichen = "$" Then                                    'Start einer Datenzeile erkannt
      Zz = 1                                                'Zeichenzähler setzen
      Einlesen = 1                                             'Zeichen sind interessant
      Zeilencode = ""
   Else
      If Einlesen = 1 Then
         Select Case Zz
            Case 1                                          'Zeichen "G"
               Zeilencode = Zeichen
               Incr Zz
            Case 2                                          'Zeichen "P"
               Zeilencode = Zeilencode + Zeichen
               Incr Zz
            Case 3                                          'Zeichen "R"
               Zeilencode = Zeilencode + Zeichen
               Incr Zz
            Case 4                                          'Zeichen "M"
               Zeilencode = Zeilencode + Zeichen
               Incr Zz
            Case 5                                          'Zeichen "C"
               Zeilencode = Zeilencode + Zeichen
               If Zeilencode = Vergleichscode Then
               Einlesen = 1                                 'erwünschte Zeile wird übertragen
               Else
               Einlesen = 0
               End If
               Incr Zz
            Case 6 : Incr Zz                                'Trennungskomma
            Case 7                                          'Zeit wird übertragen
               Utc_time = Zeichen                           'Stunde
               Incr Zz
            Case 8                                          'Zeit wird übertragen
               Utc_time = Utc_time + Zeichen                'Stunde
               Utc_time = Utc_time + ":"                    'Trennzeichen einbauen
               Incr Zz
            Case 9                                          'Zeit wird übertragen
               Utc_time = Utc_time + Zeichen                'Minute
               Incr Zz
            Case 10                                         'Zeit wird übertragen
               Utc_time = Utc_time + Zeichen                'Minute
               Utc_time = Utc_time + ":"                    'Trennzeichen einbauen
               Incr Zz
            Case 11                                         'Zeit wird übertragen
               Utc_time = Utc_time + Zeichen                'Sekunde
               Incr Zz
            Case 12                                         'Zeit wird übertragen
               Utc_time = Utc_time + Zeichen                'Sekunde
               Incr Zz
            Case 13 : If Zeichen = "," Then Incr Zz         'Sekundenbruchteile ignorieren und auf nächstes Datenfeld warten
            Case 14 : If Zeichen = "," Then Incr Zz         'auf nächstes Datenfeld warten
            Case 15 : If Zeichen = "," Then Incr Zz         'auf nächstes Datenfeld warten
            Case 16 : If Zeichen = "," Then Incr Zz         'auf nächstes Datenfeld warten
            Case 17 : If Zeichen = "," Then Incr Zz         'auf nächstes Datenfeld warten
            Case 18 : If Zeichen = "," Then Incr Zz         'auf nächstes Datenfeld warten
            Case 19 : If Zeichen = "," Then Incr Zz         'auf nächstes Datenfeld warten
            Case 20 : If Zeichen = "," Then Incr Zz         'auf nächstes Datenfeld warten
            Case 21                                         'Datum wird übertragen
               Utc_date = Zeichen                           'Tag
               Incr Zz
            Case 22                                         'Datum wird übertragen
               Utc_date = Utc_date + Zeichen                'Tag
               Utc_date = Utc_date + "."                    'Trennzeichen einbauen
               Incr Zz
            Case 23                                         'Datum wird übertragen
               Utc_date = Utc_date + Zeichen                'Monat
               Incr Zz
            Case 24                                         'Datum wird übertragen
               Utc_date = Utc_date + Zeichen                'Monat
               Utc_date = Utc_date + "."                    'Trennzeichen einbauen
               Incr Zz
            Case 25                                         'Datum wird übertragen
               Utc_date = Utc_date + Zeichen                'Jahr
               Incr Zz
            Case 26                                         'Datum wird übertragen
               Utc_date = Utc_date + Zeichen                'Jahr
               Zeit_da = 1                                  'Einlesen von Zeit und Datum komplett
               Einlesen = 0                                 'weitere Zeichen sind uninteressant
         End Select
      End If
   End If
Return

 

fredred

Mitglied
1 Okt 2015
61
1
7
Hallo Bascomfreak,

Danke für Code.
Wie geschrieben wenn, ich mit GPS ein Zeitstempel hh:mm:ss: mss bekomme möchte ich Config Clock = User Utc_time = Utc_time + Zeichen u.s.w. nicht mehr verwenden. Warum auch, wenn ich wie gewünscht einen formatierten Zeitstempel fast direkt in Echtzeit bekomme und verwenden kann.
Idee war der Controller muss nicht ein internen Timer für Zeitzeichengenerieren nutzen. Die seriellen HW- Pins sind schon bei den meisten µC als Eigenständige Schnittstellen zu betrachten. Wenn Modul alles erledigt hat und Ergebnis in AVR schiebt muss ich nur noch aus dem Ergebnis die Infos abfragen die ich benötige. Dies Scheint dein Code auch zu machen.


Mein Bascomprogramm ist anders Strukturiert und es sind bestimmt noch Verbesserungen nötig, wenn Test abgeschlossen. Eins ist schon erkannt. Die Module liefern erst Zuverlässige Daten, wenn min 4 Satelliten gesichtet werden und solange sollte jegliche Auswertung ignoriert werden.



Mein Projekt ist noch in der Testphase(Testaufbau ist seit Tagen im Wohnmobil unterwegs und schon über 1000 km vom Start entfernt) Ja man hat ja die Zeit und die Position des Testaufbaus zu Verfügung, die Zeit und Position des Testaufbaus wird gespeichert und dies kann ich nach Rückkehr zum Start mit Gogglemaps bestimmt auswerden. Ist noch kein Problem denn es gab erst 2 Mal die Meldung „Dass gesendete String ist Fehlerhaft“
Zurück zum Thema . Ich wollte nicht wissen wie der allgemeine Datenstrom des Moduls ausgewertet werden kann, nein ob dieser auch verlässiger und leichter zu Händel ist wie ein DCF77- Signal.
Den Schlechten Ruf des DCF77- Signals hatte ich mal in einem Forum versucht zu wiederlegen. War ein Fehler. Somit wollte ich anfragen ob wer hier mit der Zeitauswertung und Regeleigenschaften des GPS- Moduls Erfahrungen hat.


Mein Dank an Tschoeatsch für Nachricht.
Mit freundlichen Grüßen
fredred
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)