GPS w Orange Pi [precyzyjna synchronizacja czasu]

Zaczęty przez Rysiu, 13 Kwiecień 2017, 15:01

Rysiu

Ahoj Kamraci!

Mam pytanie. Będę potrzebował w Orange Pi możliwie precyzyjnej synchronizacji czasu systemowego.

Początkowo chciałem zastosować moduł GPS po USB ale doszedłem do wniosku, że wyniki nie będą wystarczające.

Znalazłem w sieci taki artykuł: https://www.blackmagicboxes.com/?p=581.

Ja nie będę miał co prawda Orange Pi Plus, a Orange Pi PC ale jedno i drugie ma (chyba) takie same GPIO.

Aby GPS nadał się do dobrej synchronizacji czasu musi mieć chyba PPS.

Znalazłem od Chińczyka taki GPS: https://pl.aliexpress.com/item/Free-Shipping-MT-285-MTK-GPS-Module-1-PPS-timing-Second-pulse-compatible-M-87/1985695529.html.

Czy taki GPS będzie dobrze działał na Orange Pi po instalacji według poradnika (pierwszy link)?
Czy wszystko zagra?
Ewentualnie jaki inny GPS z PPS zakupić do Orange Pi (tani)?

Rysiu

Napisałem do sprzedawcy czy może podeśle mi jakieś dodatkowe zdjęcia tego modułu GPS.
Na załączonym nie widać za wiele, a mam wątpliwości co to za złącze (to chyba wejście?) na antenę zewnętrzną w dolnym rogu modułu.
Nawet jednak jeśli sprzedawca odpisze to nie rozwieje to moich wątpliwości odnośnie połączenia z Orange Pi.

Szopler

Jeśli potrzebna Ci dokładna godzina to i tak musisz ją odczytać z modułu po UART parsując to co GPS tam wypluwa.
Dalej możesz wykorzystać sygnał PPS (czyli sygnał zegarowy) do taktowania swojego zegara na RasPi.

Jeżeli potrzebujesz tylko dokładnego czasu między dwoma zdarzeniami to sam sygnał PPS wystarczy. Dobrze brać moduł GPS który umożliwia ustawienie ile ma być na tym wyjściu impulsów na sekundę, bo są moduły które mają tam prostokąt o częstotliwości 1Hz i to wszystko.

Rysiu

Tak ale chyba nie znajdę chyba modułu GPS z regulowaną częstotliwością PPS za ok. $20?

Jak zainstaluję te pakiety: chrony gpsd gpsd-clients pps-tools i tam przekompiluje całość według instrukcji https://www.blackmagicboxes.com/?p=581 to automatycznie mam chyba czas systemowy ustawiany na ten po GPS i nie muszę nic robić?

Z tego co rozumiem wystarczy, że wyciągnę w C odpowiednio timestamp i pole w strukturze z ilością nanosekund.

O coś w tym stylu:

#include <stdio.h>
#include <time.h>

int main(void)
{
    struct timespec ts;
    timespec_get(&ts, TIME_UTC);
    char buff[100];
    strftime(buff, sizeof buff, "%D %T", gmtime(&ts.tv_sec));
    printf("Current time: %s.%09ld UTC\n", buff, ts.tv_nsec);
}


Wiem, że nanosekundy to grubo ponad możliwości ale z tego co wyczytałem to do us (10^-6) precyzję spokojnie da się osiągnąć.


stachu

Jeśli potrzebujesz dokładny pomiar czasu możesz użyć zegara czasu rzeczywistego są to tzw układy RTC
za parę zł raz nastawisz po SPI czy po I2C i cieszysz się bardzo dokładnym czasem zazwyczaj mają podtrzymanie bateryjne zapewniające parce na kilka lat jak np w płytach głównych.
Tam masz baterię litową lub superkondensator do potrzymania.

nawet jest obsługa na orange pi ;)

http://orangepi.club/showthread.php?tid=1844

Pozdrawiam 
,,Piękne jest to,że gdy prze­bywa­my z ludźmi,którzy po­siadają wielką pasję z cza­sem ta pas­ja przechodzi też na nas".

Rysiu

Cytat: stachu w 22 Maj 2017, 22:47
Jeśli potrzebujesz dokładny pomiar czasu możesz użyć zegara czasu rzeczywistego są to tzw układy RTC
za parę zł raz nastawisz po SPI czy po I2C i cieszysz się bardzo dokładnym czasem zazwyczaj mają podtrzymanie bateryjne zapewniające parce na kilka lat jak np w płytach głównych.
Tam masz baterię litową lub superkondensator do potrzymania.

nawet jest obsługa na orange pi ;)

http://orangepi.club/showthread.php?tid=1844

Pozdrawiam

No to wracamy do tematu...

Obawiam, że sam układ RTC za parę zł to nie wystarczy  :attack: - chyba nie o to chodzi.
Potrzebuję na wielu device precyzyjnego wzorca czasowego (zsynchronizowanego) - GPS na jako takim poziomie mi to zapewnia.

Martwi mnie tylko wypowiedź Szoplera:

CytatJeżeli potrzebujesz tylko dokładnego czasu między dwoma zdarzeniami to sam sygnał PPS wystarczy.

Ale przecież z tego co rozumiem PPS to "Pulse-per-second signal", a więc co sekundę będzie pikać. Sekundy już mogę chyba jakoś liczyć (która to) za pomocą np. NTP i Internetu i chyba tak mogę mieć ogólnie precyzyjny czas?