Exacte tijd verkrijgen via gps

Ik moet voor een projectje eigenlijk een exacted absolute tijd hebben in ms als het even kan.
Ik dacht simpelweg deze GPSmodule daarvoor te gebruiken aan een stm32 (https://www.tinytronics.nl/shop/nl/communicatie-en-signalen/draadloos/…)
Die spuugt met 1hz de tijd uit, samen met nog heel veel andere GPS,glonass en beidoe info. Nu zie ik in mij terminal dat de tijd van de GPS ongeveer 1 sec achterloopt met een atoomklok op internet. Ook realiseer ik me nu pas dat de hoeveelheid data die hij uitspuugt met 9600 baud ook de nodige tijd kost, dus op het moment dat ik de tijd geparsed heb is die al niet meer exact gelijk aan wat ik lees.
Ik twijfel of dit überhaubt haalbaar is. Of zou zijn en of dit met een fixed offset gecorrigeerd kunnen worden?
Heeft iemand een idee wat de afwijking van zo'n module kan zijn. De GPS zelf loopt zeer waarschijnlijk heel nauwkeurig, maar als die tijd dan via uart verstuurd wordt krijg je afwijking. Kan ik nog iets met die preciezie puls uitgang?
Of beter andere module met 10hz
Op 115200 baud ofzo

De meeste GPS modules hebben een 1PPS uitgang, deze is wel synchroon, je zou een 10MHz clock ( of andere freq ) kunnen synchronizeren hiermee, en dan daar weer je ms tijdbasis mee maken

Guus@Sint-Michielsgestel
blackdog

Golden Member

Hi Stijnos,

Mijn kennis van de GPS modules is niet erg groot maar ik weet wele dat je bij de U-Blox GPS modules met de software die vrij beschikbaar is, veel van de data die er standaard uit komt uit kan zetten.

Dat helpt misschien met het verwerkening je microcontroler.

De 1Hz puls is meestal wel erg nauwkering die uit de module komt.
Bij een aantal U-Blox modules kan je die 1Hz ook veranderen in een hogere frequentie als nodig in de U-Blox software.
Hou er rekening mee dat als het deeltal ongunstug is, er jittr op de uitgang van het signaal aanwezig is, maar over tijd dit signaal nog steed zeer nauwkeurig is.

Misschien is het wijs om een snelle microcontroler te gaaa gebruiken zoals de Teensy LC of de Teensy-4, beide nog goed verkrijgbaar ondanks de chip tekorten.

Is de tijd viaa Internet (NTP Optie) niet iets waar je naar kan kijken?
Mijn ervaring met de kleinste Rasberry-Pi met WiFi of netwerk is rond de 5mSec gemiddeld.

Hieronder een stukje van een screenshot van de tijdservers die ik draai bij de NTP.org
Beide NTP Servers draaien op een DSL verbinding in Amsterdam.

Groet,
BRam

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

Volgens de specs moet deze module ook op 115200 baud kunnen communiceren en een update interval van 10Hz zou ook geen probleem moeten zijn.
Ik kan alleen zo snel geen command manual vinden voor deze module hoe dit in te stellen.

Edit: Manual in het chinees, kan geen Engelse vinden maar met Google translate moet je een aardig eind komen om bovenstaande parameters aan te passen.

[Bericht gewijzigd door 2N3055 op zaterdag 16 april 2022 14:58:02 (36%)

Arco

Special Member

Wat een rare en onhandige module... (Vcc is 5V, en de I/O is 3.3V...)
Maak dan alles 5 of 3.3 volt...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
mel

Golden Member

Ik weet niet hoe het met GPS zit, maar DCF die geeft de juiste tijd, die haalt hij uit de vorige minuut.Een hoge baudrate is ook geen probleem.Mijn DCF server geeft een serieel signaal uit, waarbij het laatste teken samenvalt met de exacte tijd. dus de serieele info loopt a.h.w voor op de tijd.
En idd. internettijd loopt niet altijd gelijk.

u=ir betekent niet :U bent ingenieur..

Maar dcf heeft geen ms toch? En de ontvangst daarvan is altijd zo'n drama.
Ik ga eens kijken naar die Chinese manual

Arco

Special Member

Op 16 april 2022 15:15:19 schreef Stijnos:
Maar dcf heeft geen ms toch? En de ontvangst daarvan is altijd zo'n drama.

Nee,
GPS binnen ontvangen gaat lekker!... ;)
Waarom heb je mS nodig? (heb je zo'n volle agenda?... :) )

Je kunt ook een 4G module gebruiken om de netwerktijd op te vragen. (is in hh:mm:ss). Die ontvang je overal wel...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
EricP

mét CE

dcf77 is prima te ontvangen...

TS lijkt 'GPS' als iets vaststaands te beschouwen. Welnu, de NMEA output is redelijk vast staand. Maar veel fabrikanten maken het ook mogelijk om het apparaat in 'binary mode' te zetten. Uiteraard met een eigen protocol.
Wat daar in zit, hoe vaak dat uitgespuugd wordt en hoe snel, is uiteraard afhankelijk van de maker.

Ik weet dat de SiRF chipset een time report kan genereren voor de laatste 1PPS pulse. Dus als je die weet te vangen en daarna zelf doortelt... weet je binnen een paar 100mS hoe laat het toen was. Zo zou je je eigen klok kunnen syncen.

Sine

Moderator

DCF wordt steeds moeilijker met alle stoorbronnen van vandaag de dag. Hier werkt het nog ... af en toe.
Bouw je iets met een SMPS adapter er aan, veel succes.

De nieuwe GPS modules hebben een verbazend goed bereik binnen. Deze hangt aan mijn router in de meterkast.

Met een beetje open weer zoals nu 6 tot 8 satellieten, dat is meer dan genoeg voor tijdsontvangst.

Dat is ook nog een mooi alternatief, een ESP die via NTP ergens zijn tijd gaat vangen. (pool.ntp.org?)

[Bericht gewijzigd door Sine op zaterdag 16 april 2022 16:04:33 (21%)

buckfast_beekeeper

Golden Member

Meeste modules kan je toch gewoon instellen dat je alleen de tijdcode wil doorkrijgen en geen snelheid en dergelijke.

Als je alleen GPRMC opvraagt is er minimale overhead en dat kan perfect met 9600Bd.

Van Lambiek wordt goede geuze gemaakt.

Die module die jij gevonden hebt, die heeft gewoon een pps seconde output. Of het de opgaande of neergaande flank is weet ik niet, maar die zal toch binnen een microseconde op de hele secondes vallen. Dan kan je op je microcontroller klok gewoon de volgende 999 ms extrapoleren.

(Laat een timer op nominaal 1MHz lopen, doe een capture en IRQ op de flank van de pps. Zet de capture weer op scherp en de volgende IRQ weet je hoeveel de afwijking van je kristal is in ppm.

En dus in je counter-waarde heb je direct je aantal microseconden sinds vorige seconde. Afwijking iets van max 20ppm als je een aardig kristal gebruikt. En als je +20ppm meet, dan staat de counter dus steeds op 1000020 als de volgende pps komt. Dan kan je dus de counter waarde van 345678 met 1.00002 corrigeren naar 345671.

Ik zou aanraden: Laat de counter steeds doorlopen. Als je hem steeds reset, loop je het risico dat dit langer dan een microseconde duurt en je een afwijking introduceert. Dus in de IRQ noteer je "huidige beginstand deze seconde" en corrigeert wat je uit het register leest daarmee. Gebruik een 32bit counter.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Arco

Special Member

Als je hem steeds reset, loop je het risico dat dit langer dan een microseconde duurt en je een afwijking introduceert.

Enig idee hoe lachwekkend dit klinkt? ;) (het gaat over gelijkzetten van een klok...)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
rob040

Golden Member

GPS tijd loopt 17 seconden achter 18 seconden voor op UTC tijd, dus als het om uitlezen van exacte tijd gaat, dan moet je die corrigeren.
En bij het invoeren van een nieuwe schrikkelseconde weer opnieuw aanpassen.

mel

Golden Member

Op 16 april 2022 17:56:21 schreef rob040:
GPS tijd loopt 17 seconden achter op UTC tijd, dus als het om uitlezen van exacte tijd gaat, dan moet je die corrigeren.
En bij het invoeren van een nieuwe schrikkelseconde weer opnieuw aanpassen.

Wat een gedoe!DCF doet het vanzelf.. >:)

u=ir betekent niet :U bent ingenieur..
Krelis Vonketrekker

Golden Member

Met DCF77 heb je het dag/nacht effect (reflectie E laag ). Dus dat moet je ook uitmiddelen met een lange tijd constante! En de AM modulatie uit limmeten.

buckfast_beekeeper

Golden Member

Op 16 april 2022 18:11:33 schreef mel:
[...]Wat een gedoe!DCF doet het vanzelf.. >:)

In 80% van het huis doet DCF het niet (meer). Dubbele beglazing vervangen door extra isolerende beglazing en de problemen zijn begonnen. In een recent huis werkt GSM amper. Voor DCF vrees ik daar het ergste. Mijn sync is nooit lang genoeg om de meteotime deftig door te krijgen voor 3 dagen. Meestal lukt zelfs een dag niet.

Van Lambiek wordt goede geuze gemaakt.

Op 16 april 2022 17:25:56 schreef Arco:
[...]
Enig idee hoe lachwekkend dit klinkt? ;) (het gaat over gelijkzetten van een klok...)

Het klinkt lachwekkend, maar ik geef rew helemaal gelijk. Of resetten lukt gegarandeerd binnen een klokpuls van 1 uS. Bovendien, waarom zou je resetten? Je microcontroller kan toch wel rekenen?

Niet van mijzelf, maar ik heb een tijdje geleden een video time inserter nagebouwd en de firmware vertaald naar engels; https://github.com/AartSchipper/smopiVTI

Daar zit alles in om GPS tijd +PPS binnen te halen, het kristal te kalibreren en zo dus een redelijk goede lokale tijdlijn te maken.
Ik kan het niet echt testen, maar het geheel is binnen 1 video frame gelijk aan DCF, de PPS led en lijkt beter dan een professionele time inserter welke serieel de GPS data binnen haalt. Voor mijn verslag van bouw en test zie:

Het maken van de time inserter.pdf

Als locatie / een nauwkeurigheid totaan ms niet nodig is en de antenne kan binnnen 45 graden juist (vooral niet precies fout) gericht worden is DCF binnen veel beter en betrouwbaarder.
Gedoe met storingen was imo vooral iets van voor:
https://github.com/udoklein/dcf77

Maar geloof mij vooral niet, ervaar het zelf eens :)

big_fat_mama

Zie Paulinha_B

[[ aub verwijderen ]]

[Bericht gewijzigd door big_fat_mama op zaterdag 16 april 2022 19:38:54 (95%)

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord
big_fat_mama

Zie Paulinha_B

[[ aub verwijderen, excuus hoor, ik ben even aan het knoeien ]]

[Bericht gewijzigd door big_fat_mama op zaterdag 16 april 2022 19:41:33 (90%)

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord
big_fat_mama

Zie Paulinha_B

Op 16 april 2022 17:56:21 schreef rob040:
GPS tijd loopt 17 seconden achter op UTC tijd, dus als het om uitlezen van exacte tijd gaat, dan moet je die corrigeren.
En bij het invoeren van een nieuwe schrikkelseconde weer opnieuw aanpassen.

Daar geloof ik geen reet van.
Zou dat aub kunnen onderbouwd worden? ik weet meer dan één professionale omgeving waar ntp gebruikt wordt om de logs van diverse netwerkcomponenten te vergelijken, om te zien waar een mogelijk probleem zich is beginnen te ontwikkelen. Dat gaat hem om milliseconden.

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord
Frederick E. Terman

Honourable Member

Op 16 april 2022 17:56:21 schreef rob040:
GPS tijd loopt 17 seconden achter op UTC tijd

  • 18 seconden vóór op UTC (na 2016), niet 17 seconden achter.
  • Dit verschil wordt in de gps-ontvanger al verrekend; er komt UTC uit.

Toen ik voor het eerst met gps te maken had, was het verschil nul. Schrikkelseconden werden echter niet in rekening gebracht, zodat het verschil opliep. Maar al vrij vroeg werd dit verschil wél in rekening gebracht.
'Inwendig' loopt het gps-systeem inderdaad nu voor, maar de uitgevoerde tijd is UTC.

Keramisch, kalibratie, parasitair: woordenlijst.org
PE9SMS

Special Member

Op 16 april 2022 19:25:20 schreef Aart:
Als locatie niet nodig is en de antenne kan binnnen 45 graden juist (vooral niet precies fout) gericht worden is DCF binnen veel beter en betrouwbaarder.
Gedoe met storingen was imo vooral iets van voor:
https://github.com/udoklein/dcf77

Maar geloof mij vooral niet, ervaar het zelf eens :)

Nou, ik geloof je wel. Ik heb met die library gespeeld, dat is een geniaal stuk software.

Zie ook:
https://blog.blinkenlight.net/experiments/dcf77/

This signature is intentionally left blank.
rob040

Golden Member

@FET: Dank voor de correctie.
Ik wist niet dat het tegenwoordig gecompenseerd/omgerekend wordt. Is dat futureproof?