Spisu treści:

GPSDO YT, zdyscyplinowany oscylator 10 Mhz częstotliwość odniesienia. Niska cena. Dokładne.: 3 kroki
GPSDO YT, zdyscyplinowany oscylator 10 Mhz częstotliwość odniesienia. Niska cena. Dokładne.: 3 kroki

Wideo: GPSDO YT, zdyscyplinowany oscylator 10 Mhz częstotliwość odniesienia. Niska cena. Dokładne.: 3 kroki

Wideo: GPSDO YT, zdyscyplinowany oscylator 10 Mhz częstotliwość odniesienia. Niska cena. Dokładne.: 3 kroki
Wideo: BG7TBL GPSDO (GPS Disciplined Oscillator) and 10 MHz Distribution Amplifier 2024, Lipiec
Anonim
GPSDO YT, zdyscyplinowany oscylator 10 Mhz częstotliwość odniesienia. Niska cena. Dokładny
GPSDO YT, zdyscyplinowany oscylator 10 Mhz częstotliwość odniesienia. Niska cena. Dokładny
GPSDO YT, zdyscyplinowany oscylator 10 Mhz częstotliwość odniesienia. Niska cena. Dokładny
GPSDO YT, zdyscyplinowany oscylator 10 Mhz częstotliwość odniesienia. Niska cena. Dokładny
GPSDO YT, zdyscyplinowany oscylator 10 Mhz częstotliwość odniesienia. Niska cena. Dokładny
GPSDO YT, zdyscyplinowany oscylator 10 Mhz częstotliwość odniesienia. Niska cena. Dokładny

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

STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP

To przestarzały projekt.

Zamiast tego sprawdź moją nową wersję wyświetlacza LCD 2x16 dostępną tutaj:

www.instructables.com/id/GPSDO-YT-10-Mhz-L…

Zostawiłem tutaj starą wersję do dokumentacji.

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

Cześć chłopaki, Co to jest GPSDO? GPSDO oznacza: zdyscyplinowany oscylator GPS. GPS dla globalnego systemu pozycjonowania. Wszystkie satelity GPS są wyposażone w zsynchronizowany zegar atomowy. Moduł GPS odbiera te sygnały z kilku satelitów. A dzięki triangulacji zna swoją lokalizację. Ale tutaj interesuje nas puls na sekundę, który znajduje się na module. Z tym precyzyjnym impulsem (z zegara atomowego) możemy zrobić bardzo dokładny oscylator. Po co ? Dla odniesienia, do kalibracji licznika częstotliwości lub po prostu dla zabawy, aby mieć go w swoim laboratorium.

Jest wiele schematycznych w Internecie. Próbowałem niektórych. Niektóre są dobre, jeden z malutkim 2313 był o 5 herców za wolny. Ale mój jest najprostszy, najprzydatniejszy i najwygodniejszy. I podaję ci kod.hex. Nie są VCO ani dzielnikiem. Obwód z VCO ma się dobrze. Ale musi mieć ciągły sygnał impulsowy o częstotliwości 10 kHz lub więcej. Jeśli antena jest zbyt słaba, brakuje impulsu lub w ogóle go nie ma, oscylator (ocxo) działa sam, a VFC (kontrola częstotliwości napięcia) nie jest już dokładny. Sprzężenie zwrotne VCO wymaga częstotliwości odniesienia, aby się utrzymać. Jeśli nie, waha się od 1 do 2 Hz! Również tańszy moduł GPS nie działa w tej konfiguracji. Musimy mieć co najmniej 10 kHz, aby wykonać VCO. Próbowałem z 1000 Hz. Luka była zbyt duża. Częstotliwość była zróżnicowana. Tak więc z ublox neo-6m nie możesz zrobić świetnego gpsdo vco, ponieważ maksymalna częstotliwość wyjściowa wynosi 1000 Hz. Musisz kupić neo-7m lub cholewkę.

Tak działa mój GPSDO YT. Kontroler znalazł dobrą regulację dla każdego OCXO z vfc od 0 do 5v. Jeśli stracimy sygnał GPs, częstotliwość w ogóle się nie poruszy. Gdy sygnał pojawi się ponownie, regulator przyjmuje ostatnią znaną dobrą wartość i kontynuuje jak poprzednio. Na oscyloskopie z referencyjnym oscylatorem. Nie wiemy, kiedy sygnał został utracony lub kiedy wrócił. Sygnał jest taki sam.

Po kalibracji możesz używać gpsdo bez anteny, jeśli chcesz. Kilka wierzchowców później będziesz miał bardzo mały dryf. Ale…. o ile większy ? Czas na wyjaśnienia.

Oto trochę matematyki… Łatwa matematyka, podążaj za mną z tym, że jest łatwe. Jak dotąd algorytm ma 6 faz. Każda faza pobiera próbkę od 1 do 1000 sekund, znalazła dobrą regulację pwm i przejdź do większości dłuższych próbek, aby uzyskać większą dokładność.

Dokładność = (((Liczba sekund x 10E6) + 1)/liczba sekund) - 10E6

Faza 1, próbka 1 sekundowa dla 10 000 000 zliczeń dla dokładności ± 1 Hz

faza 2, próbka 10 sekund dla 100 000 000 zliczeń dla dokładności +-0,1 Hz

Faza 3, próbka 60 sekund dla 600 000 000 zliczeń dla dokładności +-0,01666 Hz

Faza 4, 200 sekund Próbka dla 2 000 000 000 zliczeń dla dokładności +-0,005 Hz

Faza 5, 900 sekundowa próbka dla 9 000 000 000 zliczeń dla dokładności +-0.001111 Hz

Faza 6, próbka 1000 sekund dla 10 miliardów zliczeń dla dokładności +-0,001 Hz

Najgorszy przypadek. Kiedy otrzymamy fazę 6. Ta liczba może się nieco zmieniać co 1000 sekund lub nie. kiedyś będzie to 10, 000, 000, 001 lub 9, 999, 999, 999 Czyli +lub - 0,00000, 000.001 wariacja na 1000s. Teraz musimy znać wartość na 1 sekundę.

10Mhz = 1 sekunda

Dla 1 sekundy = 10 000 000 001 zliczeń/1000s = 10 000 000001 Hz (najgorszy przypadek dla 1 sekundy)

10 000 000,001 - 10 000 000 = 0,001 Hz/s szybciej lub wolniej

0,001 Hz X 60 X 60 X24 X365 = 31536 Hz/lata

Więc pamiętaj, 10Mhz to 1 sekunda, 31536Hz X 1/10E6 = 0, 0031536 sekunda/rok

Kolejna szybsza metoda obliczeń. jedno pominięcie dla 10E9Mhz to 1/10E9 = 1E-10

1E-10 x 60x60x24x365 = 0, 0031536 sekunda/rok.

Czy to jest dla ciebie wystarczająco dokładne?

jednak musisz mieć dobre OXCO. Preferuję wyjście Double Oven 12v Sinus. Bardziej stabilny, cichy i dokładny. Ale mam ten sam wynik z prostym 5V. Na przykład stp 2187 mają krótki czas stabilności (odchylenie allana) 2x10-12 = 0,000 000 000 002 Hz stabilności. W tym samym czasie, gdy dostępny jest impuls GPS, Avr zawsze będzie korygował pwm (częstotliwość). UC zawsze się liczy… zawsze. Oznacza to, że na wyświetlaczu nie zobaczysz daty i godziny. Kiedy uC próbkuje 900s, ten jest zajęty przez 900 sekund. Musi liczyć cały zegar. Problem polega na tym, że uC działa z częstotliwością 10 MHz. Każdy zegar musi się liczyć. Liczy się sama. Jeśli brakuje tylko jednego zegara, próbka nie będzie dobra i regulacja pwm nie będzie prawidłowa. Nie mogę odświeżać wyświetlacza co sekundę.

Po rozpoczęciu pobierania próbek. Uc zacznij liczyć timer0. Każdy zegar 256 generuje przerwanie. Rejestr X jest zwiększany. kiedy jest pełny, rejestr Y jest zwiększany, a X resetowany do 0 i tak dalej. Na koniec, na ostatnim impulsie gps, liczenie zostaje zatrzymane. A teraz i tylko teraz mogę zaktualizować wyświetlacz i zrobić trochę matematyki do obliczenia pwm.

wiedząc, że mam tylko 25, 6 us (256 zegar przed przerwaniem) do odczytu i wyświetlania czasu lub innych. To niemożliwe. Jedna przerwa może zostać wzmocniona, a nie 2. Mogę odświeżyć czas po 1000s… ale niepraktyczne będzie wyświetlanie czasu z interwałem 15, 16 minut. Mam zegarek, zegar, telefon komórkowy, aby znać czas:) Robię referencję 10Mhz. Nie zegar.

Inny problem, który miałem, niektóre instrukcje avr mają 2 cykle. W tym instrukcja rjmp. Oznacza to, że jeśli pierwszy lub ostatni impuls GPS pojawił się w tym samym czasie, co instrukcja 2 cykli, uC przegapi zegar. Ponieważ uC zakończy instrukcję przed rozpoczęciem przerwania. Tak więc licznik rozpocznie lub zatrzyma jeden cykl później. Więc nie mogę zrobić pętli czasu oczekiwania… Ale w rzeczywistości nie mam innego wyjścia. Musiałem gdzieś zapętlić!! Tak więc używam instrukcji rjmp i nop (to nic nie robi). Nop to instrukcja jednocyklowa. Umieściłem instrukcję 400 nop dla jednego rjmp na atmega48. 2000 na wersji atmega88 i atmega328p. Tak więc szanse są mniejsze, że pierwszy lub ostatni impuls pojawi się w instrukcji rjmp. Ale tak jest to możliwe i jeśli tak się stanie, ten błąd zostanie poprawiony przy następnym próbkowaniu.

Wyświetlacz jest opcjonalny. Możesz zrobić obwód tylko z uC, OCXO i filtrem dolnoprzepustowym (kondensator rezystora), włącz i poczekaj. Po 1 godzinie będziesz mieć akceptowalną częstotliwość. Ale dotarcie do fazy 6. zajmuje kilka godzin.

Pwm to 16 bitów. 65535 krok. 5v/65535 = 76, 295 uV

Odmiana OCXO to 2Hz przy 1V. 1v/76, 295uV = 13107 krok dla 2 Hz. 2/13107 = 152,59uHz krokami pwm

Faza 5 to zmiana pwm o 3, faza 6 to 2. krok… Dlaczego 3 ? ponieważ 3 zmienia częstotliwość o 0.000, 000, 000, 4 w skali 15 minut. a 4 to moja magiczna liczba w moim algorytmie. Na przykład, jeśli w fazie pierwszej, pierwsza znaleziona częstotliwość to 10.000, 003Mhz. Obniżam się o 0,000, 000,4 krok.

Zbyt duży krok może przejść od 10.000003 do 10.000001 i po 9,999998Hz. Tracę cel.

Z 0, 0000004. Jest szybszy niż 0, 1 i jestem bardziej pewny, że nie ominiesz numeru. I tak dalej. Robię to samo z 10 sekundami, 60 sekundami i fazą 200s i 900s. 1000s to tryb pracy i użyj kroku PWM 2

Należy pamiętać, że faza 5 jest dłuższa do osiągnięcia. Różnica między 4 a 5 jest większa. Ale pomaga przejść od 5 do 6 szybciej.

Gdy faza 6 zliczyła dokładnie 10 miliardów, wartości pwm są zapisywane w eepromie. Teraz czas na tryb biegowy. Ta jedna próbka liczy 1000 sekund, ale tylko z 2 krokami pwm. W trybie pracy rzeczywista częstotliwość jest wyświetlana i aktualizowana co 1000 sekund. Jeśli sygnał zostanie utracony w trybie pracy, przechodzi w tryb samoczynny. Brak zmiany pwm w tym trybie. Gdy sygnał powróci, wraca do fazy 5 w celu ponownej synchronizacji.

Jeśli obwód jest odłączony po zapisaniu eepromu. Ten rozpocznie się w fazie 5 przy włączeniu zasilania z wartością eeprom pwm.

Aby skasować wartość eepromu, wystarczy nacisnąć przycisk przy uruchomieniu. Pwm 50% zostanie obciążone, a kalibracja rozpocznie się od fazy 1.

Spędzam wiele godzin na wypróbowanie innej rzeczy, konfiguracji toru. Zrobiłem wiele testów ze wzmacniaczem OP, buforem i innym układem. I na koniec… najlepszy wynik, jaki uzyskałem, nie wymaga tego. Po prostu dobry stabilny zasilacz i jakiś kondensator filtrujący. Więc trzymam to proste.

Krok 1: Kup części

Kup części
Kup części
Kup części
Kup części
Kup części
Kup części

Pierwszą rzeczą do zrobienia jest zakup części. Ponieważ często wysyłka jest bardzo długa.

Moduł GPS: używam ublox neo-6m. Kupiłem ten na eBayu. Przeszukaj, to kosztuje około 7 do 10 dolarów.

Domyślnie ten odbiornik ma włączony 1 impuls na sekundę. Nie musimy nic robić.

Możesz użyć dowolnego modułu GPS z wyjściem impulsowym 1 Hz. Masz jeden. Użyć tego!

OCXO: Wypróbowałem 2 oscylatory. Podwójny piekarnik stp2187 12V z wyjściem sinusoidalnym. I ISOTEMP 131-100 5V, wyjście fali prostokątnej. Oba pochodzą z serwisu radioparts16 na ebayu. Miałem od nich bardzo dobrą obsługę, a cena była tańsza.

AVR: Kod pasował na trochę atmega48. Ale proponuję kupić atmega88 lub atmega328p. To prawie ta sama cena. Kup to na digikey lub ebayu. Używam wersji dipowej. Możesz kupić wersję do montażu powierzchniowego, ale uważaj, piny nie są takie same jak na schemacie.

Wyświetlacz LCD: Działa dowolny wyświetlacz zgodny z 4x20 HD44780. Zgadnij, gdzie kupiłem mój:) Tak w serwisie eBay kilka lat temu. Teraz jest droższy niż wcześniej. Ale dostępne poniżej 20 USD.

Może w niedalekiej przyszłości zrobię kod na wyświetlacz 2x16. Te wyświetlacze kosztują tylko 4$. A między tobą a mną wystarczyłby wyświetlacz 2-liniowy.

Musisz mieć programistę AVR ISP. Programowanie AVR nie przypomina Arduino. Arduino zostało już zaprogramowane do komunikacji na porcie szeregowym. Zupełnie nowy avr musi być zaprogramowany za pomocą ISP lub równoległego programatora wysokiego napięcia. Używamy tutaj ISP.

74hc04 lub 74ac0, regulator napięcia 7812 i 7805, rezystory, kondensator…. digikey, ebay

Krok 2: Oto schemat i Gpsdo_YT_v1_0.hex

Image
Image
Oto schemat i Gpsdo_YT_v1_0.hex
Oto schemat i Gpsdo_YT_v1_0.hex
Oto schemat i Gpsdo_YT_v1_0.hex
Oto schemat i Gpsdo_YT_v1_0.hex

Myślę, że schemat to wszystko, czego potrzebujesz do realizacji tego projektu. Możesz użyć płyty platerowanej miedzią metodą trawienia lub, jeśli chcesz, po prostu płyty perforowanej.

Możesz użyć dowolnego pudełka, ale proponuję metalowe pudełko. Lub po prostu na tabliczce do krojenia chleba dla zabawy takiej jak moja:)

Czekam na przedłużenie anteny i złącze bnc, aby włożyć projekt do pudełka.

Musisz wybrać odpowiednią końcówkę bezpiecznika. Upewnij się, że wybrany jest oscylator zewnętrzny. Jeśli masz problemy z zewnętrznym oscylatorem, wypróbuj zewnętrzny kryształ. A zegar low.ckdiv8 nie jest zaznaczony. Widzieć zdjęcie. Zwróć uwagę, że gdy zewnętrzny zegar się zespala, musisz zapewnić zewnętrzny zegar, aby zaprogramować lub uruchomić kod. Innymi słowy podłącz Oscylator w pinie xtal1.

Przy okazji… tym samym kodem możesz zrobić licznik częstotliwości z 1 sekundową bramką. Wystarczy wpisać zegar, który ma być mierzony w pin xtal1, a otrzymasz licznik częstotliwości +-1 Hz.

Będę aktualizować projekt, jak tylko będę miał nowe rzeczy.

W międzyczasie, jeśli projekt Cię interesuje, masz wystarczająco dużo materiału, aby go rozpocząć, a nawet zakończyć przede mną

Wrzuciłem 2 filmy, możesz zobaczyć fazę pierwszą i ostatnią.

Jestem dostępny na wszelkie pytania lub komentarze. Dziękuję Ci.

26 lutego 2017…. Dostępna wersja 1.1.

-atmega48 nie jest już obsługiwany. Niewystarczająco miejsca.

-Dodano liczbę zablokowanych satelitów.

-Obsługa 2x16 lcd. Jeśli masz 4x20, też będzie działać. Ale 2 ostatnie wiersze nic nie wyświetlają.

Krok 3: Loguje się w eepromie

Logi w eepromie
Logi w eepromie

Oto zrzut eepromu po kilku godzinach pracy. Wyjaśnię, jak to czytać. Znowu to proste:)

Pod adresem 00, 01 jest przechowywana wartość pwm. Gdy tylko faza 5 liczy 9 miliardów, wartość pwm jest aktualizowana za każdym razem, gdy licznik osiągnie dokładnie 10 miliardów.

Jak tylko jesteśmy w fazie 5. Wszystkie zliczenia są zapisywane w eepromie po wartości pwm. Zacznij od adresu 02, po 03 i tak dalej.

Ten przykład pochodzi z mojego 5-woltowego ocxo. Możemy odczytać wartość pwm 0x9A73 = 39539 dziesiętnie na 65536. = 60, 33% lub 3,0165 Volt.

Więc adres 00:01 to 0x9A73

Następnie możesz przeczytać 03. Za 9 000 000 003 Pwm jest obniżane o 3, ponieważ jesteśmy jeszcze w fazie 5

00 dla 10 000, 000.000 pwm pobyt jest nietknięty i przechodzimy do trybu pracy (faza 6)

02 dla 10 000 000,002 W takim przypadku wartość pwm jest obniżona z 2

01 dla 10 000 000,001 wartość pwm zmniejszona z 2

01 dla 10 000 000,001 wartość pwm jest ponownie obniżona z 2

00 za 10 000 000 000 PWM pobyt jest nietknięty

00 za 10 000 000 000 PWM pobyt jest nietknięty

00 za 10 000 000 000 PWM pobyt jest nietknięty

Teraz wiesz jak czytać eeprom. Co 1000 sekund nowa wartość jest zapisywana w eepromie. Gdy eeprom jest pełny, uruchamia się ponownie od adresu 2.

Średnia wartość FF 9, 999, 999,999

Dzięki temu zrzutowi możesz śledzić dokładność, bez żadnego wyświetlacza LCD.

Możesz zrzucić plik eeprom za pomocą programisty ISP.

Mam nadzieję, że udzieliłem Ci wystarczająco dużo informacji. Jeśli nie, daj mi znać. Porady, błąd, cokolwiek.

Yannicka

Zalecana: