Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Kwarcowe rezonatory i generatory zegarowe - kompendium

Urgon 16 Sep 2022 07:55 3939 45
Buderus
  • Kwarcowe rezonatory i generatory zegarowe - kompendium
    Zdolność precyzyjnego odmierzania czasu leży u podstaw rozwoju całej ludzkiej cywilizacji. Stworzenie zegara, który działa w każdej pozycji i w każdych warunkach leżało u podstaw nawigacji morskiej. O ile szerokość geograficzną da się obliczyć na podstawie wysokości słońca nad horyzontem, o tyle określenie długości wymaga wiedzy, która jest godzina w wybranym miejscu, względem którego tę długość się oblicza. Do dalszego rozwoju zegarów i zegarków przyczyniła się kolej - gdy każda osada wzdłóż linii kolejowej ustawia swoje zegary z pomocą zegara słonecznego, ciężko jest uwzględnić te różnice w rozkładzie. Dalszy rozwój nauki i technologii, zwłaszcza elektroniki i radiokomunikacji wymusiły konieczność stworzenia coraz dokładniejszych zegarów, generatorów i filtrów częstotliwości i jej mierników. Rozwiązania stricte mechaniczne osiągnęły granicę swoich możliwości, rozwiązania elektromechaniczne ją przesunęły, lecz dopiero niepozorny minerał pozwolił ją przesunąć o wiele dalej.


    Niepozorny kryształ

    Kwarc jest niezwykle powszechnym minerałem, jest kluczowym składnikiem granitu i innych skał magmowych. Występuje bardzo często w skałach osadowych, takich jak piaskowiec i łupek. Jest powszechnym składnikiem łupków, gnejsów, kwarcytów i innych skał metamorficznych. Sam kwarc to inaczej dwutlenek krzemu, ale zależnie od zawartych domieszek występuje pod wieloma nazwami jako minerał i kamień szlachetny: od kryształu górskiego, przez kwarce dymne i różowe po ametysty, agaty, tygrysie oczy czy nawet zwykły krzemień.

    Jak zatem taki powszechny minerał stał się podstawą odmierzania czasu, generowania i filtrowania częstotliwości, a nawet istotnym komponentem zestawu melomana? Dwa słowa: efekt piezoelektryczny. Przepuszczanie prądu przez kryształ kwarcu powoduje, iż ten ulega mechanicznej deformacji. Działa to też w drugą stronę - fizyczne zgniatanie bądź uderzanie w kryształ wytwarza w nim ładunek elektryczny. Najprostszym przykładem praktycznego wykorzystania tego zjawiska są tanie zapalniczki i zapalarki elektryczne, gdzie naciśnięcie przycisku bądź dźwigni powoduje najpierw powolne ściśnięcie, a potem gwałtowne rozprężenie kryształu kwarcu, co wytwarza impuls wysokiego napięcia rzędu kilku do kilkunastu kilowoltów. Ale od robienia iskier do odmierzania czasu jest kawałek drogi.


    Ksylofony, dzwony, gongi i kryształy

    Idiofony to grupa instrumentów muzycznych, gdzie elementem wytwarzającym dźwięku jest ciało stałe wzbudzane do drgań przez uderzanie, pocieranie, szarpanie czy dęcie (dmuchanie). Częstotliwość drgań zależy od wymiarów albo drgającego ciała i/lub dołączonej doń komory rezonansowej. Skupmy się na idiofonach, gdzie częstotliwość dźwięku zależy od wymiarów elementu drgającego, zwanego wibratorem. W ksylofonie wibratorami są drewniane płytki, w gongu metalowa płyta, w przypadku dzwonów rurowych są to metalowe rury (jak sama nazwa wskazuje). Każdy z tych instrumentów jest strojony wstępnie przez użycie konkretnych wymiarów wibratora, a potem dostrajany przez usuwanie niewielkich ilości materiału, aż do osiągnięcia pożądanych wysokości dźwięku. Materiał można też dodać, choć nie zawsze jest to praktyczne.

    Kryształ kwarcu też jest swoistym wibratorem i ma określoną częstotliwość rezonansową. Jednak w przypadku kwarcu po uderzeniu, potarciu, szarpnięciu czy dęciu nie usłyszymy dźwięku. Za to na oscyloskopie możemy zobaczyć drgania wytworzonej w krysztale elektryczności. Częstotliwość tych drgań, podobnie jak w idiofonach, zależy od fizycznych wymiarów kryształu (a także jego struktury i czystości). Ten fakt jest podstawą strojenia rezonatorów kwarcowych.

    W rezonatorze kwarcowym nie znajdziemy jednak niczego, co będzie wzbudzać drgania w kawałeczku kwarcu. Żadnych młotków, pałeczek czy dmuchawy. Za wszystko odpowiada efekt piezoelektryczny: impuls prądu odkształca kryształ wzbudzając w nim drgania, te drgania zaś wzmacniają i osłabiają ten impuls zgodnie z częstotliwością rezonansową. Teraz wystarczy te drgania prądu wzmocnić i część podać ponownie na wejście rezonatora, by uzyskać stabilne oscylacje. Jeśli jednak na wejście rezonatora podamy miks różnych częstotliwości, a wyjście podłączymy do wzmacniacza, to zamiast generatora oscylacji uzyskamy filtr, który wzmocni tylko częstotliwość rezonansową.


    Rezonatory kwarcowe

    Typowy rezonator kwarcowy ma postać metalowej puszki (różnej wielkości) z dwoma wyprowadzeniami. Na obudowie znajdziemy najczęściej oznaczenie częstotliwości rezonansowej oraz symbol lub kod pozwalający zidentyfikować producenta. Symbol i schemat zastępczy rezonatora wyglądają tak:

    Kwarcowe rezonatory i generatory zegarowe - kompendium


    Jak widać, rezonator zachowuje się jak szeregowo-równoległy obwód rezonansowy RLC. Znając wartości poszczególnych elementów możemy obliczyć impedancję rezonatora, czyli jego rezystancję dla wybranej częstotliwości. Nie ma jednak takiej konieczności, gdyż istotne parametry znajdziemy w notach katalogowych. Sposobów realizacji rezonatorów jest kilka, zależnie od położenia elektrod i kształtu samego elementu drgającego. Spójrzmy na wnętrza typowych rezonatorów kwarcowych:

    Kwarcowe rezonatory i generatory zegarowe - kompendiumKwarcowe rezonatory i generatory zegarowe - kompendium


    Po lewej rezonator kwarcowy 32,768kHz, po prawej rezonator na częstotliwości liczone w MHz. Ten pierwszy ma kształt klasycznego kamertonu i drga w analogiczny sposób. Drugi wygina się niczym gong lub membrana, a jego częstotliwość drgań zależy od grubości płytki kwarcu.

    Rezonatory kwarcowe w roli oscylatorów zwykle współpracują z układami scalonymi, które mają wbudowane niemal wszystko potrzebne, by rezonator rezonował. Czasami jednak zachodzi potrzeba zbudowania własnego oscylatora. Przedstawię trzy przykładowe rozwiązania poniżej.

    Oscylatory Colpittsa

    Na początek prosty układ Colpittsa współpracujący z rezonatorami o częstotliwości od 1MHz do 5MHz:

    Kwarcowe rezonatory i generatory zegarowe - kompendium


    Rezystory R1 i R3 ustalają polaryzację bazy tranzystora. R4 ustala napięcie wyjściowe układu. R2 zaś izoluje tranzystor od zasilania i ogranicza prąd kolektora. Kondensatory C2 i C5 tworzą dzielnik napięcia w obwodzie sprzężenia, ustalając jego maksymalny poziom. C4 i rezonator Y1 tworzą szeregowy obwód rezonansowy, przy czym C4 pozwala na zmianę częstotliwości w niewielkim zakresie. C3 pełni rolę filtra składowej stałej. C1 filtruje zaś zasilanie.

    Jeśli chcemy użyć rezonatora o innej częstotliwości, niż n schemacie, należy zmienić wartości C2 i C5. Im niższa częstotliwość, tym większe powinny być pojemności. Układ nie powinien być nadmiernie obciążany, gdyż to może wpłynąć na jego pracę. Ulepszonym wariantem jest układ poniższy, który ma szerszy zakres częstotliwości pracy z rezonatorami od 1,5MHz do 20MHz:

    Kwarcowe rezonatory i generatory zegarowe - kompendium


    Poza zmianą wartości elementów do układu dodany został stopień wyjściowy w układzie wspólnego kolektora, dzięki któremu całość zachowuje się stabilnie w szerokim zakresie częstotliwości.

    Oscylator Pierce'a

    Poniższy układ w różnych wariantach jest powszechnie stosowany w układach scalonych, i nie tylko. Jego prostota i możliwość realizacji z użyciem także inwertera czyni go popularnym sposobem generowania sygnałów zegarowych w układach cyfrowych.

    Kwarcowe rezonatory i generatory zegarowe - kompendium


    Dławik L1 odcina układ od zasilania dla zakresu częstotliwości oscylacji i jest niezbędny do właściwej jego pracy. Kondensator C2 tworzy pętlę dodatniego sprzężenia zwrotnego, rezystor R1 zaś ogranicza jej głębokość i obciąża bramkę tranzystora JFET Q1. C4 jest częścią obwodu rezonansowego z rezonatorem Y1 i pozwala na jego przestrajanie w pewnym zakresie.

    Oczywiście praktycznych rozwiązań układowych jest dużo więcej, ale myślę, że te podstawowe układy na początek wystarczą każdemu.


    Generatory kwarcowe

    Generatory kwarcowe od rezonatorów różnią się tym, iż są aktywnymi układami wymagającymi zasilania, oferującym w zamian gotowe, zintegrowane źródło sygnału zegarowego. Wewnątrz generatora znajduje się rezonator kwarcowy oraz obwód oscylatora, najczęściej w konfiguracji Pierce'a, oraz bufor wyjściowy pozwalający zasilać wiele układów CMOS lub TTL. Generatory te mogą oferować wyższe częstotliwości pracy niż zwykłe rezonatory, gdyż mogą pracować nie na częstotliwości bazowej rezonatora, ale na którejś z jego częstotliwości harmonicznych. Można oczywiście zmusić rezonator do takiej pracy samemu, ale układ jest bardziej skomplikowany i wymaga dokładności w projektowaniu i w wykonaniu. Przez to gotowe generatory bywają bardziej praktyczne.


    Problemy

    Rezonatory i generatory kwarcowe mają trzy podstawowe problemy:
    1. Fabryczny rozrzut parametrów.
    2. Podatność na zmiany temperatury.
    3. Starzenie się.

    W specyfikacji każdego rezonatora znajdziemy informację na temat tolerancji, stopnia starzenia i wpływu temperatury, najczęściej podawane w ppm, czyli częściach na milion. Dla przykładu weźmy tani rezonator kwarcowy dla zegarków o częstotliwości rezonansowej 32.768kHz. Konkretnie będzie to rezonator LFXTAL002996BULK od IQD. W tabeli znajdziemy informację, iż podstawowa tolerancja w temperaturze 25°C wynosi ±16ppm. Ale ile to będzie w hercach? Policzmy:

    (32768Hz / 1000000) * 16 = 0,524288Hz.

    Zatem wartość bazowa rezonatora może się różnić o ±0,524288Hz. Dalej, nota podaje, iż rezonator starzeje się o maksymalnie ±5ppm na rok w temperaturze 25 stopni Celsjusza, czyli o ±0,16384Hz. Trochę niżej znaleźć można wykres i wzór na obliczenie wpływu temperatury na częstotliwość. Dla tego rezonatora wzór wygląda tak:

    Δf/fo = -0,034±0,006 * (T-To)^2 ppm

    Typowo To przyjmuje wartość 25°C, T zaś to temperatura pracy rezonatora. Liczba -0,034±0,006 to współczynnik temperatury, oraz jego tolerancja, wyrażane w ppm/°C. Jak to się liczy w praktyce? Załóżmy, że rezonator pracuje w zegarku naręcznym, i od kontaktu ze skórą rozgrzał się do temperatury 35°C. Podstawmy to do wzoru:

    Δf/fo = -0,034±0,006 * (35°C-25°C)^2 ppm = -0,034±0,006 * (10)^2 = -0,034±0,006 * 100 = -3,4±0,6ppm.

    Zatem nasz rezonator może mieć częstotliwość niższą od nominalnej o 0,1114112Hz ±0,0196608Hz. O ile zatem zegarek będzie się spóźniał, bo to też warto by było wiedzieć? Policzmy dla jednego miesiąca:

    (60*60*24*30)/1000000 * -3,4±0,6ppm = 2,592 * -3,4±0,6ppm = --8,8128±1,5552s.

    Ale, ale, trzeba doliczyć jeszcze rozrzut początkowy:

    2,592 * ±16ppm = ±41,472s

    Po zsumowaniu zatem wychodzi błąd -8,8128 ±43,0272s, czyli nasz zegarek może się spóźniać o nawet 51,84 sekundy, albo chodzić za szybko o 34,8992 sekundy na miesiąc. A nie uwzględniliśmy jeszcze starzenia się rezonatora. Co miesiąc trzeba doliczyć błąd w wysokości ±1,08s.

    Może zatem inny przykład, bliższy elektronikowi, czyli budujemy miernik częstotliwości do 40MHz używając rezonatora kwarcowego 8MHz. Tym razem wybór padł na rezonator LF XTAL003156 od IQD. Nota wygląda cokolwiek inaczej. Zamiast wykresu i wzoru do obliczania zmiany częstotliwości względem temperatury mam wartość ±50ppm, i wykres pokazujący 5 różnych przypadków z mało dokładną skalą. Dodatkowo sam rezonator ma tolerancję ±30ppm. Co tu się dzieje?

    Po kolei, najpierw o wpływie temperatury: te ±50ppm jest podane dla pełnego zakresu pracy, tj. od -20 do 70 stopni Celsjusza. Na wykresie to tak jednak nie wygląda. Dla -20°C wartości współczynnika temperaturowego mieszczą się w zakresie -12-20ppm, a dla 70°C w zakresie -23-7ppm. Producent nie podaje dokładniejszych danych, bo to tani rezonator, wystarczająco dobry do współpracy z mikrokontrolerem w temperaturze bliskiej nominalnych 25°C. Tolerancja rozrzutu częstotliwości na poziomie ±30ppm oznacza też, iż nasz miernik częstotliwości może mierzyć z błędami. Dokładnie to z błędem ±30Hz na każdy MHz. Sam rezonator może mieć częstotliwość od 7,999760MHz do 8,000240MHz.

    Dlaczego rezonator kwarcowy dla zegarków ma lepsze parametry, niż rezonator kwarcowy ogólnego przeznaczenia? To proste: ten pierwszy został od początku zoptymalizowany do (w miarę dokładnego) odmierzania czasu. Praca z niższą częstotliwością i kształt kamertonu powaliły na lepszą optymalizację procesu produkcji, a przez to redukcję rozrzutu parametrów. Ze względu na kształt temperatura wpływa na na rezonator w bardzo określony sposób. Rezonatory na wyższe częstotliwości drgają na kilka różnych sposobów, przez co temperatura wpływa na ich drgania w różnych kierunkach, i nie zawsze tak samo. Dlatego właśnie rozrzut parametrów w zakresie wpływu temperatury jest tak wielki - producent może zagwarantować pewną częstotliwość w konkretnej temperaturze, tj. w 25°C, a im dalej od tej temperatury, tym większa będzie losowość możliwych odchyłek od częstotliwości bazowej. W normalnych sytuacjach odchyłki o 30-50Hz na każdy MHz to nie jest wielki problem, ale co, jeśli zależy nam na dokładności? Jest kilka rozwiązań...


    TCXO, TCVCXO, OCXO i lepsze zegary

    Skrót TCXO oznacza Temperature Compensated Crystal Oscillator, czyli oscylator kwarcowy skompensowany termicznie. Jest to element, który poza właściwym kwarcem i oscylatorem z nim współpracującym zawiera czujnik termiczny i układ zmieniający częstotliwość oscylatora zależnie od temperatury. Producent dokonał pomiaru zmian częstotliwości zależnie od temperatury rezonatora i użył tych danych dla całej produkcji. Dla przykładu generator 20MHz LFTCXO063784BULK od IQD. Wstępna tolerancja to ±0,5ppm, czyli ±10Hz. Stabilność termiczna to aż ±0,14ppm dla całego zakresu temperatur, czyli w całym zakresie pracy generator zmieni częstotliwość o ±1,4Hz. Starzenie się wynosi ±0,02ppm na dzień, ale nie więcej niż ±1ppm na rok.

    Skrót TCVCXO oznacza Temperature Compensated, Voltage Controlled Crystal Oscillator, czyli oscylator kwarcowy skompensowany termicznie regulowany napięciem. W praktyce to jest to samo, co TCXO, tylko ma dodatkowe wejście pozwalające wyregulować częstotliwość w niewielkim zakresie. Ma to sens pod warunkiem, iż mamy miernik częstotliwości o jeden rząd wielkości dokładniejszy, niż nasz generator. Weźmy na przykład LFTVXO009912BULK od IQD. Stabilność temperaturowa to imponujące ±0,5ppm, czyli dla tego rezonatora o częstotliwości 10MHz jest to ±5Hz. Dodatkowo wejście sterujące pozwala zmieniać częstotliwość o przynajmniej ±5ppm. Starzenie jest na poziomie ±1ppm w pierwszym roku. Potem spada. Imponujące, prawda?

    Skrót OCXO oznacza Oven Controlled Crystal Oscillator czyli oscylator kwarcowy kontrolowany termicznie (piecem). W tym wypadku rezonator kwarcowy jest ogrzewany do określonej temperatury pracy i termicznie odizolowany od warunków zewnętrznych. Termostat stabilizuje temperaturę i gwarantuje jej stałość. Układy te są najdokładniejszymi generatorami kwarcowymi dostępnymi na rynku. Stosowane są w sprzęcie pomiarowym wysokiej klasy, gdzie zwiększony pobór prądu nie ma znaczenia, ale dokładność i stabilność już ma. Płacimy za to wysoką cenę, tj. kilkaset złotych za jeden element. A co w zamian? Spójrzmy na generator 10MHz LFOCXO063800BULK od IQD. Nota podaje wstępną tolerancję na poziomie ±500ppb (części na miliard), czyli inaczej ±0,5ppm, czyli ±5Hz. Jak na razie to żaden cud. Ale stabilność temperaturowa wynosi od ±10ppb do ±100ppb. Czyli od ±0,1Hz do ±1Hz. Starzenie się zaś wynosi ±5ppb na dzień maksymalnie, i ±500ppb na rok, też maksymalnie. Ponadto dostępny jest też wariant z wejściem do regulacji częstotliwości.

    Czy jest coś lepszego? Tak, i jest to coś, co sam chciałbym kupić. Tym czymś jest rubidowy wzorzec częstotliwości. Kiedyś używane wzorce pochodzące ze stacji bazowych GSM kosztowały 50 dolarów na ebaju, teraz ceny zaczynają się od dwustu dolców. Nowy wzorzec rubidowy na Alliexpress kosztuje 959 dolarów, czyli ponad 4500 złotych. Takie wzorce są dostępne też w Polsce, ale tam cen nie podają, bo to urządzenia nie sprzedawane zwykle "cywilom". Dlaczego o nich w ogóle wspominam? A no ze względu na niesamowitą wręcz stabilność, typowo na poziomie ±1-2 x 10^-11 /1s. To oznacza, że wzorzec 10MHz zmieni swoją częstotliwość o 0,01-0,02Hz w ciągu sekundy. Dryft w ciągu stu sekund nie będzie większy niż 0,001-0,002Hz. Długofalowo można dopisać jeszcze dwa zera - rubidowe zegary atomowe się nie starzeją tak, jak kwarce.


    Rozwiązania budżetowe dla większej dokładności

    Jeśli mamy odbiornik GPS z wyjściem pps (impuls co sekundę na poziomie sygnału zegarowego generowanego przez satelity z użyciem pokładowych zegarów atomowych), możemy go wykorzystać do pomiaru i kalibracji rezonatorów. Imć Roman Black sporządził ponad 10 lat temu kilka przykładowych algorytmów, które można znaleźć tutaj.

    Dalej, można zbudować "piekarnik" dla rezonatora i utrzymywać go w podwyższonej temperaturze - rozwiązanie dużo tańsze od gotowych OCXO, ale potrzebne będzie skalibrowanie tego raz na rok. Starzenie się będzie sporym problemem, stąd ta konieczność. Można użyć rezonatora zegarkowego i połączyć go z układem generatora PLL by uzyskać większą częstotliwość. Układy PLL, czyli Phase-Locked Loop kontrolują oscylatory sterowane napięciem (VCO - Voltage Controlled Oscillator) w ten sposób, iż częstotliwość oscylatora jest dzielona n razy, a potem faza podzielonego sygnału jest porównywana z fazą sygnału zegarowego. Różnice w fazie zmieniają napięcie sterujące oscylatorem, aż fazy będą takie same. Wartość n ustala częstotliwość oscylacji.

    Za 40-50 złotych na znanym portalu aukcyjnym można kupić chińskie moduły OCXO 10MHz, ponoć skalibrowane z tolerancją do ±0,01Hz. Na zdjęciach puszka generatora nie ma żadnych oznaczeń, nie ma też noty katalogowej, więc to kupowanie w ciemno, zwłaszcza że generatory OCXO ze sklepu kosztują 8-12 razy więcej...

    Jeśli celem użycia precyzyjnego źródła zegarowego jest budowa zegara, to można rozważyć użycie odbiornika DCF-77, albo modułu ESP8266 do pobierania bieżącego czasu z serwera NTP raz na dobę. W tym drugim przypadku warto robić to nie co równe 24 godziny, ale odliczać 65536 sekund między kolejnymi synchronizacjami, by nie obciążać serwerów NTP. Da to synchronizację co 18 godzin, 12 minut i 16 sekund. Myślę, że to wystarczy nawet dla najbardziej pedantycznego maniaka punktualności.


    Mam nadzieję, iż to kompendium okaże się przydatne. Zapraszam do komentowania i zadawania pytań - postaram się udzielić na nie odpowiedzi.

    Cool? Ranking DIY
    About Author
    Urgon
    Level 38  
    Offline 
  • Buderus
  • #2
    Mlody_Zdolny
    Level 25  
    Zabrakło informacji nt rodzajów cięcia kryształów. Pokazałeś wnętrza rezonatorów i różnica w cięciu powinna naprowadzić do zagadnienia jego wpływu na parametry takie jak dryft.

    Kryształy są cięte pod różnym kątem i są oznaczane jako AT, BT, XY, SC. To są parametry katalogowe.
    Mają swoje wady i zalety powiązane ze stabilnością, odpornością na drgania mechaniczne i warunki temperaturowe. Świadomy konstruktor dobiera odpowiedni rezonator.
  • #3
    Urgon
    Level 38  
    AVE...

    Pominąłem to celowo, gdyż to jest poradnik dla początkujących, a cięcie, moim zdaniem, jest mało istotne, bo parametry stabilności czy odporności na drgania są też uwzględnione w notach. Nie spotkałem się z sytuacją, gdzie trzeba dobierać rezonator bądź generator pod kątem cięcia. Dlatego ten aspekt jest tylko wspomniany...
  • #4
    shunkx
    Level 13  
    Bardzo interesujący artykuł!
    Odnośnie DCF-77 i ESP8266 - czy jest jakaś różnica w użyciu jeśli chodzi o dokładność?
    Zakładam, że DCF jest o tyle lepszym rozwiązaniem że nie obciąża serwera, bo sygnał to zwyczajnie fala radiowa? W związku z tym można synchronizować czas tak często jak to tylko możliwe. Zdaje się że sygnał jest emitowany co minutę. Antena może ewentualnie zwiększać rozmiary aplikacji.. Zastanawiam się na przykład jakie znaczenie ma tutaj parameter propagation delay, który zawsze jest obecny dla każdego elementu elektronicznego. I jestem ciekaw czy ktoś ma tutaj jakieś porównanie tych obu rozwiązań.
  • #5
    Urgon
    Level 38  
    AVE...

    W przypadku ESP8266 i serwerów NTP masz opóźnienia związane z routingiem pakietów. To dodaje od kilku, do kilkunastu milisekund opóźnienia. Dla DCF-77 opóźnienie łatwiej obliczyć znając dystans w linii prostej od nadajnika w Mainflingen. Transmisja każdej ramki zaczyna się o zerowej sekundzie i trwa 59 sekund, bo tyle jest bitów w ramce. Łatwo więc ustawić zegar co do sekundy, doliczając poprawkę na odległość. Wadą DCF-77 są problemy z propagacją - moja pogodynka synchronizuje się tylko w środku nocy, bo w dzień "nie łapie" sygnału...

    O czasie i jego mierzeniu będzie oddzielny artykuł.
  • #6
    ArturAVS
    Moderator HP/Truck/Electric
    @Urgon należałoby wspomnieć iż pierwsze rezonatory kwarcowe bardzo przypominały swym wyglądem typowe lampy próżniowe, gdyż były umieszczane w szklanej bańce.
  • #7
    khoam
    Level 42  
    Urgon wrote:
    W przypadku ESP8266 i serwerów NTP masz opóźnienia związane z routingiem pakietów. To dodaje od kilku, do kilkunastu milisekund opóźnienia

    Ten dryft można korygować w ustawieniach klienta NTP. Nie tylko w ESP ;)

    shunkx wrote:
    Zakładam, że DCF jest o tyle lepszym rozwiązaniem że nie obciąża serwera, bo sygnał to zwyczajnie fala radiowa?

    WiFi to też fala radiowa :) DCF wymaga dodatkowego komponentu w postaci odbiornika.
  • #8
    ArturAVS
    Moderator HP/Truck/Electric
    khoam wrote:
    DCF wymaga dodatkowego komponentu w postaci odbiornika.

    Na dedykowaną częstotliwość oraz odpowiednią antenę, nic jednak nie stoi na przeszkodzie aby połączyć obie technologie i w uwzględnieniu DCF dodać poprawkę dla NTP.
  • #9
    Urgon
    Level 38  
    AVE...

    W normalnych zastosowaniach zegarek pokazujący bieżący czas z błędem kilkunastu milisekund względem wszechświata jest wystarczający. Istotniejsze jest, by taki zegarek zachował tę dokładność z dnia na dzień. Dla przykładu nawet drogie naręczne zegarki mechaniczne nie mogą zaoferować takiej dokładności, co cyfrowy zegarek kwarcowy za kilka(-naście) złotych. Ba, najdokładniejszy zegarek mechaniczny, Zenith Defy, osiągnął dokładność ±0,3s na dobę używając do tego kawałka krzemu. Inaczej pisząc mechanicznie robi to samo, co rezonatory MEMS, o których w artykule nie wspomniałem...
  • Buderus
  • #10
    Mlody_Zdolny
    Level 25  
    Urgon wrote:
    Nie spotkałem się z sytuacją, gdzie trzeba dobierać rezonator bądź generator pod kątem cięcia.

    Jeżeli używasz kwarców tylko do "napędzania" mcu, to mogłeś nie spotkać. Choć i nawet w tej dziedzinie elektroniki dobrze jest znać rodzaje cięcia. Budując zegarek można zastosować rezonator z cięciem GT, stosowanym w zakresie f 0,1 - 2,5 MHz. Cięcie jest pod wyjątkowym kątem 51° 7' dającym prawie zerowy współczynnik temperaturowy.

    Generator z ogrzewanym rezonatorem OCXO, o którym wspominasz dla zaxhowania stabilności wymaga zastosowania odpowiedniego cięcia SC. Gdybyś chciał go zbudować samodzielnie musiałbyś wiedzieć o rodzajach cięcia. Chińczyk konstruując układ sprzedawany za 50 zł o tym wie. I pewnie wlutowuje w trzech na pięć egzemplarzy odpowiedni kryształ.

    Urgon wrote:
    W przypadku ESP8266 i serwerów NTP masz opóźnienia związane z routingiem pakietów. To dodaje od kilku, do kilkunastu milisekund opóźnienia.

    Urgon wrote:
    modułu ESP8266 do pobierania bieżącego czasu z serwera NTP raz na dobę. W tym drugim przypadku warto robić to nie co równe 24 godziny, ale odliczać 65536 sekund między kolejnymi synchronizacjami, by nie obciążać serwerów NTP

    Częsta synchronizacja nie obciąża serwerów NTP. Skąd wziąłeś tę magiczną liczbę 65536 s?
    Proponuję dokształcić się z zasady działania protokółu NTP i nie rozsiewać mitów na jego temat.
  • #11
    shunkx
    Level 13  
    shunkx wrote:
    Zakładam, że DCF jest o tyle lepszym rozwiązaniem że nie obciąża serwera, bo sygnał to zwyczajnie fala radiowa?

    WiFi to też fala radiowa :) DCF wymaga dodatkowego komponentu w postaci odbiornika.[/quote]

    Wow, naprawdę? :P
    Wiem że to też fala radiowa. Natomiast różnica jest zasadnicza. W jednym przypadku otrzymujemy po prostu sygnał, a w drugim o niego pytamy, więc tym samym zwiększamy ruch sieciowy. Takich rzeczy chyba nie musimy tutaj tłumaczyć.
  • #12
    zgierzman
    Level 31  
    shunkx wrote:
    Wiem że to też fala radiowa. Natomiast różnica jest zasadnicza. W jednym przypadku otrzymujemy po prostu sygnał, a w drugim o niego pytamy, więc tym samym zwiększamy ruch sieciowy. Takich rzeczy chyba nie musimy tutaj tłumaczyć.


    Nie bawiłem się szczegółowo DCF i pomiarami dokładności, ale odbiorniki tego sygnału zapewne bardziej obciążą procesor niż odbiór z serwera NTP. Co do obciążenia serwera NTP się nie wypowiadam, ale nie wydaje mi się, żeby to był jakiś problem, o ile nie wysyłasz x zapytań na sekundę...
    Odbiór sygnału radiowego z modulacją amplitudową nie jest łatwy, przekonał się o tym każdy, kto próbował użyć prostej pary nadajnik/odbiornik na 433 MHz. W odbiorniku jedynka jest jedynką, ale zero to okropny szum, który trzeba jakoś uwzględnić programowo.

    Są odbiorniki które robią to same, ale jeśli nawet użyjesz odbiornika, który odfiltruje szpilki i poda na wyjściu tylko impulsy 100 ms i 200 ms, to procek cały czas musi je mierzyć, zliczać i dekodować do użytecznej informacji. No i nasłuchiwać kiedy brak jest impulsu w ogóle, bo on oznacza początek następnej ramki, czyli zerowej sekundy. No może skoro nie trzeba filtrować szumu, to obciążenie procesora nie będzie duże, ale ciągłe - potrzebne jest jakieś przerwanie, obsługa timerów itp.

    Możliwe, że w Holandii sygnał DCF77 jest silny, ale w PL raczej taki sobie, i odbiornik umiejscowiony po zachodniej stronie budynku działa jeszcze "jako tako", ale umieszczony po stronie wschodniej może nie działać już wcale.
    Moim zdaniem w obecnych czasach najgorszy możliwy sposób synchronizacji czasu.

    shunkx wrote:
    Zastanawiam się na przykład jakie znaczenie ma tutaj parameter propagation delay, który zawsze jest obecny dla każdego elementu elektronicznego


    To się odnosi do propagacji sygnału wewnątrz struktury układu. Każda bramka logiczna ma jakiś niezerowy czas zadziałania, nawet zwykły NOT. Propagation delay to jest opóźnienie pomiędzy, na przykład, pojawieniem się jedynki na wejściu a zera na wyjściu.

    Dla pojedynczych bramek to są nanosekundy, więc w 99,99% przypadków raczej nie jest to problem :-)

    Kwarcowe rezonatory i generatory zegarowe - kompendium
  • #13
    shunkx
    Level 13  
    Tak się składa że pracując tam gdzie pracuję mierzę też propagation delay. Nie pytam co to, i nie szukam wyjaśnienia tych wszystkich rzeczy. Mój post miał na celu zapytanie czy ktoś ma doświadczenie w używaniu obu tych rozwiązań i jak dokładnie można ich używać do synchronizacji czasu. Szczególnie biorąc pod uwagę iż każdy wymaga innej aplikacji, co niesie za sobą konsekwencje w postaci opóźnień, itp.
    Pewnie kluczowe odpowiedzi padły od innych użytkowników. Wrzucę to na moją listę DIY, i być może kiedyś zrobię takie porównanie. Tyle w temacie ode mnie. Dziękuję autorowi za interesujący artykuł.
  • #14
    zgierzman
    Level 31  
    shunkx wrote:
    Tak się składa że pracując tam gdzie pracuję mierzę też propagation delay. Nie pytam co to, i nie szukam wyjaśnienia tych wszystkich rzeczy. Mój post miał na celu zapytanie czy ktoś ma doświadczenie w używaniu obu tych rozwiązań i jak dokładnie można ich używać do synchronizacji czasu. Szczególnie biorąc pod uwagę iż każdy wymaga innej aplikacji, co niesie za sobą konsekwencje w postaci opóźnień, itp.


    Wybacz, w takim razie nie zrozumiałem istoty pytania.
  • #15
    Urgon
    Level 38  
    AVE...

    Odbiór i dekodowanie DCF-77 jest banalnie proste. Można kupić dedykowane moduły pobierające jakieś ułamki miliwata, choć nie są najlepsze. Można zaprojektować własny odbiornik na 77,5kHz, co może być kształcącym wyzwaniem. Koszt energetyczny i obliczeniowy użycia ESP8266 do odbioru po WiFi odpowiedzi z serwera NTP jest dużo wyższy. ESP8266 mocy obliczeniowej ma sporo w zapasie, ale pod kątem zużycia energii żre jak smok. Było też kilka przypadków w ostatnich latach, gdzie nadmiar zapytań do serwera NTP zmieniło się w atak DDoS przez przypadek, bo wszystkie przyszły o tej samej porze. Stąd moja propozycja "wędrownego" zapytania co ~18 godzin...
  • #16
    khoam
    Level 42  
    Urgon wrote:
    Koszt energetyczny i obliczeniowy użycia ESP8266 do odbioru po WiFi odpowiedzi z serwera NTP jest dużo wyższy.

    Będzie podobny, kiedy podłączymy do niego odbiornik DCF-77 i będą dekodowane dane przez ESP z tego odbiornika. A z WiFi i tak będziemy korzystali, skoro został wybrany ESP do projektu.

    Urgon wrote:
    Stąd moja propozycja "wędrownego" zapytania co ~18 godzin...

    Co to takiego te "wędrowne" zapytanie?
  • #17
    Urgon
    Level 38  
    AVE...

    Jeśli robiłbym projekt z DCF-77, to nie na ESP8266, tylko na PIC16F albo 18F, zależnie od potrzeby. Zapytanie "wędrowne" czyli wspomniane przeze mnie zapytanie co 65536 sekund, dzięki czemu nawet jak na rynku będą setki tysięcy urządzeń, to każde będzie wysyłać zapytanie NTP o innym czasie...
  • #18
    jarek_lnx
    Level 43  
    Należało by wspomnieć że generatory do kwarców zegarkowych (kamertonowych) znacząco różnią się od pozostałych, rezystancja R1 na schemacie zastępczym jest dużo wyższa, taki kwarc nie wzbudzi niewaściwym generatorze.
    W pracującym generatorze kwarcowym podłączenie sondy oscyloskopowej lub miernika częstotliwości wprost do nóżki kwarcu może spowodować zerwanie drgań, kwarce na PCB powinny być montowane blisko układów scalonych z którymi pracują. Istotnym parametrem katalogowym jest pojemność obciążenia - pojemność wypadkowa elementów w generatorze z jaką współpracuje kwarc.
    Kwarce overtonowe mogą sprawić niespodziankę przykładowo na obudowie napisali 36MHz, a wstawiony do generatora pracuje na 12MHz, bo to kwarc przystosowany do pracy na trzeciej harmonicznej i generator musi mieś dodatkowy obwód LC który uniemożliwi wzbudzenie na tej niewłaściwej częstotliwości. Trzeba takie rzeczy sprawdzać w dokumentacji, pracy na harmonicznej można się spodziewać w kwarcach na kilkadziesiąt MHz, przy pojedynczych MHz nie ma takich.

    U mnie zegar synchronizowany DCFem daje radę zsynchronizować się co noc, ale uruchomienie synchronizacji w dzień, kiedy pracują różne urządzenia w domu, kończy się niepowodzeniem, 77kHz to częstotliwość na której każdy zasilacze impulsowe mogą zakłócać, a normy EMC tego zakresu nie dotyczą, komunikacja PLC z licznikami energii elektrycznej jest na zbliżonej częstotliwości.

    Ramka DCFu zabezpieczona jest bitem parzystości, średnio raz na dwa lata, po przebudzeniu spostrzegam że zegar ma błąd 3 albo o 5 godzin - wystąpił podwójny błąd i parzystość była ok więc zegar taka godzinę ustawił.

    Zarówno przesyłanie pakietów w internecie jak i transmisja radiowa, ileś trwa i te czasy będą się zmieniać, wiec wątpię żeby w porównaniu NTP z DCF któreś rozwiązanie miało przewagę, w dokładności, NTP ma tą przewagę że zawsze znajdzie sie jakiś działający serwer który można odpytać, pytanie jak daleko od zegara wzorcowego (stratum level).
    Wzorcowym zegarem dla NTP często jest GPS albo DCF.
  • #19
    khoam
    Level 42  
    Urgon wrote:
    Zapytanie "wędrowne" czyli wspomniane przeze mnie zapytanie co 65536 sekund, dzięki czemu nawet jak na rynku będą setki tysięcy urządzeń, to każde będzie wysyłać zapytanie NTP o innym czasie...

    Skąd taki wniosek? Nawet jeżeli Twoje urządzenie będzie wysyłało żądanie NTP co ok. 18h, to nie wiesz jak często wysyłają zapytania pozostałe setki tysięcy urządzeń w necie i jak bardzo te żądania są skorelowane w czasie w stosunku do tej samej puli serwerów NTP. Ponadto, żądanie klienta NTP wcale nie musi być obsłużone. Nie ma na to żadnych gwarancji i jest sytuacją całkiem normalną (taka sytuacja powinna być odpowiednio obsłużona). W ten sposób narażasz się na spore ryzyko braku synchronizacji czasu nawet przez wiele dni.

    jarek_lnx wrote:
    NTP ma tą przewagę że zawsze znajdzie sie jakiś działający serwer który można odpytać, pytanie jak daleko od zegara wzorcowego (stratum level).

    Informację o tym "jak daleko" też można uzyskać się w ramach NTP i można to, a nawet trzeba uwzględnić w obsłudze klienta NTP. To jest przewaga nad DCF-77.

    jarek_lnx wrote:
    Wzorcowym zegarem dla NTP często jest GPS albo DCF.

    Albo atomowy zegar cezowy.
  • #20
    tmf
    Moderator of Microcontroller designs
    zgierzman wrote:
    Nie bawiłem się szczegółowo DCF i pomiarami dokładności, ale odbiorniki tego sygnału zapewne bardziej obciążą procesor niż odbiór z serwera NTP.

    Warto jednak sprawdzić przed napisaniem. Odbiór DCF w znikomym stopniu obciąża MCU - większość pracy realizuje w sposób sprzętowy odpowiednio użyty timer.
    jarek_lnx wrote:
    Ramka DCFu zabezpieczona jest bitem parzystości, średnio raz na dwa lata, po przebudzeniu spostrzegam że zegar ma błąd 3 albo o 5 godzin - wystąpił podwójny błąd i parzystość była ok więc zegar taka godzinę ustawił.

    Jest kilka zabezpieczeń, któe można wykorzystać:
    - znany stan pierwszego bitu,
    - parzystości dla pól: minut, godzin, dni, miesięcy i lat,
    - ograniczenie wartości dla poszczególnych pól,
    - znana zależność pomiędzy kolejnymi ramkami.
    To łącznie zastosowane daje bardzo dużą szansę na odrzucenie błędnej ramki, także przy słabym sygnale synchronizacja może trochę potrwać, ale możliwość uzyskania błędnych danych jest raczej mała.
    Różnice pomiędzy DCF i NTP powodują, że pewnie są rozwiązania w których jedno jest lepsze od drugiego. Np. w DCF możemy bardzo precyzyjnie określić czas dzięki wykorzystaniu fazy sygnału, co powoduje, że jeśli interesuje nas dokładność w granicach mikrosekund zazwyczaj DCF może być lepszy. Zapewne dla większości użytkowników będzie to bez znaczenia.
    No i jeśli już dopuszczamy drogę radiową, to warto też wspomnieć o czasie z GPS.
  • #21
    TechEkspert
    Editor
    Kiedyś jako wzorzec częstotliwości wykorzystywana była nośna PR I 225kHz, stabilność nie jest mi znana,
    tutaj kombinują także z wzorcem czasu na 225KHz: e-CzasPL Link
    był też system sterowania oświetleniem ulicznym który także bazował na nadajniku PR I 225KHz (RSM-225kHz Radiowe Sterowanie Mocą)
  • #22
    Urgon
    Level 38  
    AVE...

    Sygnał DCF-77 jest kodowany za pomocą modulacji amplitudy sygnałem PWM. Prędkość transmisji wynosi 1 bit na sekundę, i na początku każdej sekundy amplituda fali nośnej jest redukowana do 15% normalnego poziomu na 100 lub 200 milisekund. 100ms oznacza zero, 200ms zaś jedynkę. Ostatnia sekunda w minucie nie jest modulowana wcale, co pozwala łatwo rozpoznać koniec ramki. Taki sposób modulacji mocno ułatwia zarówno sam odbiór, jak i dekodowanie sygnału. Sam odbiornik na tę częstotliwość nie powinien stanowić wielkiego wyzwania nawet dla początkującego konstruktora. Ba, na upartego można dobrze zestrojony obwód rezonansowy podłączyć bezpośrednio do wejścia mikrokontrolera i cały odbiór realizować programowo, jak SDR. Ktoś chętny spróbować?
  • #23
    TechEkspert
    Editor
    DCF jest beznadziejny ;) transmisja trwa minutę, są spore problemy z odbiorem (SMPS) ale jak już jest zaimplementowany to mamy korekty czasu "z powietrza". Jeżeli ruszyłby wzorzec na 225kHz z nadajnika PR I to mogłoby mieć znacznie lepszy zasięg. Może warto byłoby się przyjrzeć nośnej transmisji AM PR I ciekawe czy obecnie jest tam kluczowana faza aby wysyłać dodatkowe informacje do RSM-225kHz.

    Poza DCF-77 (który poza czasem wysyła też prognozę pogody Meteotime) są też inne nadajniki tego typu, bodajże w Azji i USA na delikatnie innej częstotliwości, niestety nie pamiętam ich nazw.
  • #24
    ArturAVS
    Moderator HP/Truck/Electric
    Urgon wrote:
    Sam odbiornik na tę częstotliwość nie powinien stanowić wielkiego wyzwania nawet dla początkującego konstruktora.

    Ba... Parę dobrych lat temu "poległem" na takim odbiorniku choć nie uważam się za początkującego. Teraz jednak wydaje mi się że po prostu odbierany sygnał był zbyt słaby do zdekodowania, obecnie mimo różnych anten nawet używając SDR niewiele na tej częstotliwości jestem w stanie odebrać ale to też pewnie jest wynikiem śmiecia radiowego z wszelakiego rodzaju zasilaczy impulsowych.
  • #25
    Urgon
    Level 38  
    AVE...

    Dziwne, u mnie działa. Gdzieś w okolicy trzeciej nad ranem odbieram DCF77 w pogodynce pod Pilawą...
  • #26
    TechEkspert
    Editor
    Mam te "konkurencyjne" nadajniki podobne do DCF 77,5kHz Frankfurt Mainflingen:
    https://www.seikowatches.com/instructions/html/SEIKO_8B92_EN/CWVVSYxxhbpilh
    zegarki seiko to obsługują:
    Japan (JJY) 1000km
    Fukushima: 40kHz
    Kyushu: 60kHz

    China (BPC) 1500km
    Shangqiu: 68.5 kHz

    U.S.A. (WWVB) 3000km
    Fort Collins: 60 kHz

    Ciekawe czy w Polsce da się odebrać chociaż ślad tych pozostałych "DCF".

    Z długofalowych nadajników w Polsce z Rozweia transmitowane były poprawki DGPS:
    https://odtur.pl/atrakcje/rozewie-dgps-transmitter-na-rozewiu-40925.html
    https://www.elektroda.pl/rtvforum/topic1026009.html
  • #27
    ArturAVS
    Moderator HP/Truck/Electric
    Urgon wrote:
    Dziwne, u mnie działa.

    Lokalizacja. Teść jako zapalony hodowca gołębi pocztowych, posługiwał się zegarem Garmina z DCF (przy lotach ptaszków, gdzie czas ma duże znaczenie w konkursach). Stojąc na dachu "kurnika" (dość wysoko) łapał sygnał i Garmin się synchronizował. Mi w tamtej lokalizacji nigdy nie udało się odebrać pewnie i poprawnie sygnału DCF. Z drugiej strony, czy my, w większości amatorzy radiowcy potrzebujemy tak wysokiej precyzji? Nawet synchronizowany poprzez GPS wzorzec do miernika częstotliwości jest w praktyce niepotrzebny w naszych zastosowaniach. No chyba że ktoś zajmuje się np. fuzją jądrową w domowym zaciszu i potrzebuje superprecyzyjnego pomiaru czasu rzędu piko czy femto sekund. Dokładność zwykłego chronometru rzędu kilku-kilkunastu s/dobę jest w codziennym życiu całkowicie wystarczająca.
  • #28
    willyvmm
    Level 30  
    To jest po prostu fetysz. Tak jak nikt nie potrzebuje multimetra 6,5 cyfry do domowych projektów.
  • #29
    TechEkspert
    Editor
    Multimetr 6,5 cyfry to raczej przesada, ale jeżeli znajdzie się jakiś stary lecz sprawny sprzęt w niskiej cenie na bazarze lub aukcji to dla osób lubiących eksperymentować może się przydać :)

    Przykładowo 1pps z GPS jest tani a umożliwia np. zauważenie wahania częstotliwości w sieci energetycznej w zależności od zapotrzebowania na moc: Pomiar częstotliwości sieci energetycznej z wykorzystaniem GPS.
  • #30
    perkins1
    Level 12  
    ArturAVS wrote:
    Urgon wrote:
    Dziwne, u mnie działa.

    Lokalizacja. Teść jako zapalony hodowca gołębi pocztowych, posługiwał się zegarem Garmina z DCF (przy lotach ptaszków, gdzie czas ma duże znaczenie w konkursach). Stojąc na dachu "kurnika" (dość wysoko) łapał sygnał i Garmin się synchronizował. Mi w tamtej lokalizacji nigdy nie udało się odebrać pewnie i poprawnie sygnału DCF. Z drugiej strony, czy my, w większości amatorzy radiowcy potrzebujemy tak wysokiej precyzji? Nawet synchronizowany poprzez GPS wzorzec do miernika częstotliwości jest w praktyce niepotrzebny w naszych zastosowaniach. No chyba że ktoś zajmuje się np. fuzją jądrową w domowym zaciszu i potrzebuje superprecyzyjnego pomiaru czasu rzędu piko czy femto sekund. Dokładność zwykłego chronometru rzędu kilku-kilkunastu s/dobę jest w codziennym życiu całkowicie wystarczająca.

    Garmin z DCF?, miałem kilka Garminów ale żaden z DCF,wszystkie synchronizowały się przez GPS.