Sadržaj:
Video: GPSDO YT, referentna frekvencija discipliniranog oscilatora 10 Mhz. Niska cijena. Točno .: 3 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:32
*******************************************************************************
STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP
Ovo je zastarjeli projekt.
Umjesto toga provjerite moju novu verziju 2x16 lcd ekrana koja je dostupna ovdje:
www.instructables.com/id/GPSDO-YT-10-Mhz-L…
Ostavio sam staru verziju ovdje radi dokumentacije.
*******************************************************************************
Bok ljudi, Što je GPSDO? GPSDO znači: GPS disciplinirani oscilator. GPS za globalni sustav pozicioniranja. Svi GPS sateliti opremljeni su sinkroniziranim atomskim satom. GPS modul prima ove signale s nekoliko satelita. I triangulacijom, on zna gdje se nalazi. No, ono što nas zanima je puls u sekundi koji se nalazi na modulu. Ovim preciznim impulsom (iz atomskog sata) možemo napraviti vrlo vrlo precizan oscilator. Za što ? Za referencu, za kalibraciju brojača frekvencija ili samo za zabavu imati ga u svom laboratoriju.
Mnogo je shema na internetu. Probao sam neke. Neki su dobri, jedan sa sićušnim 2313 bio je 5 herca prespor. Ali moj je najjednostavniji, najkorisniji i najprikladniji. Ja vam dajem.hex kôd. Oni nisu VCO i nikakav razdjelnik. Krug s VCO -om ide dobro. Ali, mora imati neprekidno pulsni signal od 10 kHz ili više. Ako antena postane preslaba, nedostaje ili nema pulsa, oscilator (ocxo) radi sam i VFC (kontrola frekvencije napona) više nije točan. Za povratnu informaciju VCO -a potrebna je referentna frekvencija. Ako ne, varira od 1 do 2 Herca! Također, jeftiniji GPS modul ne radi u ovoj konfiguraciji. Moramo imati najmanje 10 kHz da napravimo VCO. Pokušao sam s 1000 herca. Razmak je bio prevelik. Učestalost je varirala. Dakle, s ublox neo-6m ne možete napraviti sjajan vco gpsdo jer je maksimalna izlazna frekvencija 1000Hz. Morate kupiti neo-7m ili gornji.
Ovako radi moj GPSDO YT. Regulator je pronašao dobru prilagodbu za bilo koji OCXO s vfc 0 do 5v. Ako izgubimo signal liječnika opće prakse, frekvencija se uopće ne pomiče. Kad se signal ponovno pojavi, kontroler uzima posljednju poznatu dobru vrijednost i nastavlja kao i do sada. Na opsegu, s referentnim oscilatorom. Ne možemo reći kada je signal izgubljen ili kada se vratio. Signal je isti.
Nakon kalibracije možete koristiti gpsdo bez antene ako želite. Nekoliko nosača kasnije imat ćete vrlo malo zanošenja. Ali…. koliko veće? Vrijeme je za neko objašnjenje.
Evo malo matematike … Laka matematika, slijedite me s ovim, lako je. Do sada algoritam ima 6 faza. Svaka faza uzima uzorak od 1 do 1000 sekundi, pronašla je dobro podešavanje pwm -a i otišla na većinu dužih uzoraka radi veće točnosti.
Točnost = ((((Broj sekunde x 10E6) + 1)/broj sekunde) - 10E6
Faza 1, 1 drugi uzorak za 10 000 000 računa se za točnost od +1 Hz
faza 2, uzorak od 10 sekundi za 100 000 000 računa se za točnost od -0,1Hz
Uzorak faze 3, 60 sekundi za 600 000 000 računa se za točnost +-0,01666 Hz
Faza 4, 200 sekundi Uzorak za 2 000 000 000 000 računa se za točnost +-0,005 Hz
Uzorak faze 5, 900 sekundi za 9 000 000 000 000 računa se za točnost +-0,001111 Hz
Faza 6, uzorak od 1000 sekundi za 10 milijardi računa se za točnost od -0,001 Hz
Najgori slučaj. Kad dobijemo fazu 6. Taj se broj može mijenjati svakih 1000 sekundi ili ne. neko će vrijeme biti 10, 000, 000, 001 ili 9, 999, 999, 999 Dakle, +ili - 0, 000, 000.001 varijacija za 1000s. Sada moramo znati vrijednost za 1 sekundu.
10Mhz = 1 sekunda
Za 1 sekundu = 10, 000, 000, 001 broj/1000s = 10, 000, 000.001 Hz (najgori slučaj za 1 sekundu)
10, 000, 000.001 - 10, 000, 000 = 0,001 Hz/s brže ili sporije
0,001Hz X 60 X 60 X24 X365 = 31536 Hz/godine
Zato zapamtite, 10 Mhz je 1 sekunda, 31536Hz X 1 / 10E6 = 0, 0031536 sekunda / godina
Još jedna brža metoda izračuna. jedan propust za 10E9Mhz je 1/10E9 = 1E-10
1E-10 x 60x60x24x365 = 0, 0031536 sekunda/godina.
Je li vam to dovoljno točno?
međutim, morate imati dobar OXCO. Više volim sinusni izlaz za dvostruku pećnicu 12v. Stabilniji, tiši i točniji. Ali ja imam isti rezultat s jednostavnim 5V. Na primjer, stp 2187 ima kratko vrijeme stabilnosti (allansko odstupanje) 2x10-12 = 0.000, 000, 000, 002 Hz stabilnosti. U isto vrijeme, kada je GPS impuls dostupan, Avr će uvijek ispraviti pwm (frekvenciju). UC uvijek broji … uvijek. To znači da na ekranu nećete vidjeti datum i vrijeme. Kad uC uzorkuje 900s, ovaj je zauzet 900 sekundi. Mora računati cijeli sat. Problem je što uC radi na 10Mhz. Svaki sat se mora računati. To se samo računa. Ako nedostaje samo jedan sat uzorak neće biti dobar i podešavanje pwm -a neće biti ispravno. Ne mogu osvježavati zaslon svake sekunde.
Kad započne uzorkovanje. Uc počinje brojati timer0. Svaki 256 sat generira prekid. X registar se povećava. kada je pun Y registar se povećava i X se vraća na 0 i tako dalje. Na kraju, na posljednjem pulsu u GPS -u, brojanje se zaustavlja. I sada i samo sada mogu ažurirati zaslon i napraviti matematiku za izračun pwm -a.
znajući to, imam samo 25, 6 nas (256 sati prije prekida) za čitanje i prikaz vremena ili drugo. To je nemoguće. Jedan prekid se može ublažiti, a ne 2. Mogao bih osvježiti vrijeme nakon 1000s … ali neće biti praktično vidjeti vrijeme u intervalu od 15, 16 minuta. Imam sat, sat, mobitel da znam vrijeme:) Radim referencu od 10Mhz. Nije sat.
Još jedan problem koji sam imao, neke avr instrukcije imaju 2 ciklusa. Uključujući i rjmp upute. To znači da ako se prvi ili zadnji impuls GPS -a pojavio u isto vrijeme instrukcije od 2 ciklusa, uC će propustiti sat. Budući da će uC dovršiti instrukciju prije početka prekida. Dakle, brojač će se pokrenuti ili zaustaviti jedan ciklus kasnije. Tako da ne mogu napraviti vremensko čekanje … Ali u stvari, nemam drugog izbora. Morao sam negdje petlju !! I Dakle, koristim rjmp i nop (ovo ne radi ništa) upute. Nop je uputa za jedan ciklus. Na atmega48 sam stavio 400 nop uputstava za jedan rjmp. 2000. na verzijama atmega88 i atmega328p. Dakle, manje su šanse da prvi ili zadnji puls dođu po rjmp uputi. Ali da, moguće je i ako se to dogodi, ova će se pogreška ispraviti pri sljedećem uzorkovanju.
Zaslon je opcijski. Možete raditi samo sa, uC, OCXO i niskopropusnim filterom (otpornički kondenzator), uključiti i pričekati. Nakon 1 sata imat ćete prihvatljivu frekvenciju. No da bi se došlo do faze 6. Potrebno je nekoliko sati.
Pwm je 16 bita. 65535 korak. 5v/65535 = 76, 295 uV
OCXO varijacija je 2Hz za 1V. 1v/76, 295uV = 13107 korak za 2 hz. 2/13107 = 152,59uHz u koracima pwm
Faza 5 mijenja pwm za 3, faza 6 je 2. korak … Zašto 3? jer 3 mijenja frekvenciju za 0.000, 000, 000, 4 na ljestvici od 15 minuta. i 4 je moj čarobni broj u mom algoritmu. Na primjer, ako je u prvoj fazi, prva pronađena frekvencija je 10.000, 003Mhz. Spuštam se dolje za 0, 000, 000.4 korak.
Preveliki korak može proći od 10.000003 do 10.000001 i nakon 9, 999998Hz. Nedostaje mi cilj.
S 0, 0000004. Brže je od 0, 1 i sigurniji sam da neću zaobići broj. I tako dalje. Radim isto sa fazom od 10 sekundi, 60 sekundi i 200s i 900s. 1000s je u načinu rada i koristite pwm korak od 2
Imajte na umu da je faza 5 dulje za postizanje. Jaz između 4 i 5 je veći. Ali pomaže da brže prođete od 5 do 6.
Kad faza 6 broji točno 10 milijardi, pwm vrijednosti spremaju se u eeprom. Sada je vrijeme za način rada. Ovaj broji 1000 sekundi uzorka, ali samo u 2 koraka pwm. U načinu rada stvarna frekvencija se prikazuje i ažurira u intervalu od 1000 sekundi. Ako se signal izgubi u načinu rada, on prolazi u samostalnom radu. U ovom načinu rada nema promjene pwm -a. Kad se signal vrati, vraća se u fazu 5 radi ponovne sinkronizacije.
Ako je krug isključen nakon spremanja eeproma. Ovaj će započeti u fazi 5 pri uključivanju s eeprom pwm vrijednosti.
Za brisanje vrijednosti eeproma samo pritisnite gumb pri pokretanju. Pwm 50% će biti opterećeno, a kalibracija će započeti od faze 1.
Prolazim mnogo sati da isprobam različite stvari, konfiguraciju kola. Napravio sam mnogo testova, s OP pojačalom, međuspremnikom i drugim čipom. I na kraju … najbolji rezultat koji sam dobio ne treba. Samo dobro stabilno napajanje i neki kondenzator za filtriranje. Tako da ovo držim jednostavnim.
Korak 1: Kupite dijelove
Prvo što trebate učiniti je kupiti dijelove. Budući da je dostava često vrlo duga.
GPS modul: Koristim ublox neo-6m. Ovaj sam kupio na ebayu. Pretražite, to košta oko 7 do 10 američkih dolara.
Prema zadanim postavkama, na ovom prijemniku je omogućen 1 impuls u sekundi. Ne moramo ništa učiniti.
Možete koristiti bilo koji GPS modul s izlazom od 1 Hertz. Imate jedan. Iskoristi to!
OCXO: Pokušao sam s 2 oscilatora. Dvostruka pećnica stp2187 12V sinusni izlaz. I ISOTEMP 131-100 5V, kvadratni valni izlaz. Oboje dolaze s radioparts16 na ebayu. Imao sam jako dobru uslugu od njih i cijena je bila niža.
AVR: Kod stane na malo atmega48. Ali predlažem da kupite atmega88 ili atmega328p. Gotovo ista cijena. Kupite ovo na digikeyu ili ebayu. Koristim dip verziju. Možete kupiti verziju za površinsko montiranje, ali obratite pažnju, igle nisu iste na shemi.
Lcd zaslon: Bilo koji 4x20 HD44780 kompatibilan zaslon će raditi. Pogodite gdje sam kupio svoj:) Da na ebayu prije par godina. Sada je skuplje nego prije. Ali dostupno je ispod 20 USD.
Možda ću u bliskoj budućnosti napraviti kod za 2x16 zaslon. Ti prikazi koštaju samo 4 USD. A između vas i mene, prikaz u dva reda bio bi dovoljan.
Morate imati programera AVR ISP -a. Programiranje AVR -a nije poput Arduina. Arduino je već programiran za komunikaciju preko serijskog porta. Potpuno novi avr mora biti programiran s ISP -om ili paralelnim visokonaponskim programatorom. Ovdje koristimo isp.
74hc04 ili 74ac0, regulator volta 7812 i 7805, otpornici, kondenzator…. digikey, ebay
Korak 2: Evo sheme i Gpsdo_YT_v1_0.hex
Mislim da je shema sve što vam je potrebno za realizaciju ovog projekta. Možete koristiti bakrenu ploču s metodom jetkanja ili samo perforiranu ploču ako želite.
Možete koristiti bilo koju kutiju koju želite, ali predlažem metalnu kutiju. Ili samo na ploči za zabavu poput moje:)
Čekam produženje antene i bnc konektor da stavim svoj projekt u kutiju.
Morate odabrati pravi bit osigurača. Provjerite je li odabran vanjski oscilator. Ako imate problema s vanjskim oscilatorom, pokušajte s vanjskim kristalom. Sat low.ckdiv8 nije označen. Pogledajte sliku. Obratite pozornost, kada se vanjski sat spoji, morate osigurati vanjski sat za programiranje ili pokretanje koda. Drugim riječima, spojite oscilator u pin xtal1.
Usput … možete koristiti isti kôd za izradu brojača frekvencija s vratima od 1 sekunde. Samo unesite sat za mjerenje u xtal1 pin i imat ćete brojač frekvencije +-1 Hz.
Ažurirat ću projekt čim budem imao novih stvari.
U međuvremenu, ako vas projekt zanima, imate dovoljno materijala za početak, pa čak i završetak preda mnom
Učitao sam 2 videa, možete vidjeti prvu fazu i posljednju.
Na raspolaganju sam za bilo kakva pitanja ili komentare. Hvala vam.
26. veljače 2017 …. Dostupna verzija 1.1.
-atmega48 više nije podržana. Nedovoljno prostora.
-Dodani broj zaključanih satelita.
-Podrška 2x16 lcd. Ako imate 4x20, također će raditi. Ali u posljednjem retku 2 neće biti prikazano ništa.
Korak 3: Zapisi u Eepromu
Evo odlagališta eeproma nakon nekoliko sati rada. Objasnit ću kako se ovo čita. Opet, lako je:)
Na adresi 00, 01 pohranjena je pwm vrijednost. Čim faza 5 broji 9 milijardi, pwm vrijednost se ažurira svaki put kada brojač dosegne točno 10 milijardi.
Čim smo u fazi 5. Svi se brojevi pohranjuju u eeprom nakon pwm vrijednosti. Počnite s adrese 02, poslije 03 i tako dalje.
Ovaj primjer došao je iz mog ocxo -a od 5 volti. Možemo očitati pwm vrijednost 0x9A73 = 39539 decimalu na 65536. = 60, 33% ili 3.0165 Volt.
Dakle, adresa 00:01 je 0x9A73
Zatim možete pročitati 03. Za 9 000 000 000 003 Pwm sniženo je za 3 jer smo još u fazi 5
00 za 10 000 000 000 000 pwm boravak je netaknut i prelazimo u način rada (faza 6)
02 za 10 000 000 000,002 U tom slučaju pwm vrijednost se smanjuje s 2
01 za 10 000 000 0001 pwm vrijednost se smanjuje s 2
01 za 10 000 000 0001 pwm vrijednost se ponovno snižava s 2
00 za 10 000 000 000 000 pwm boravak je netaknut
00 za 10 000 000 000 000 pwm boravak je netaknut
00 za 10 000 000 000 000 pwm boravak je netaknut
Sada znate čitati eeprom. Svakih 1000 sekundi nova vrijednost upisuje se u eeprom. Kad je eeprom pun, ponovno se pokreće s adrese 2.
FF vrijednost znači 9, 999, 999.999
Pomoću ovog smeća možete pratiti točnost, bez ikakvog LCD zaslona.
Eeprom datoteku možete ispisati pomoću programatora za isp.
Nadam se da sam vam dao dovoljno informacija. Ako ne, javite mi. Savjeti, greške, bilo što.
Yannick
Preporučeni:
Visuino - Dobijte točno vrijeme s internetskog NIST poslužitelja pomoću NodeMCU -a: 8 koraka
Visuino - Precizno vrijeme s internetskog NIST poslužitelja pomoću NodeMCU -a: U ovom ćemo vodiču koristiti NodeMCU Mini, OLED Lcd i Visuino za prikaz internetskog vremena uživo s NIST poslužitelja na LCD -u. Pogledajte demonstracijski video. Zasluga za inspiraciju pripada korisniku youtubea " Ciprian Balalau "
Sup - miš za osobe s kvadriplegijom - niska cijena i otvoreni izvor: 12 koraka (sa slikama)
Sup - miš za osobe s kvadriplegijom - niske cijene i otvoreni izvor: U proljeće 2017. obitelj mog najboljeg prijatelja pitala me želim li odletjeti u Denver i pomoći im u nekom projektu. Imaju prijatelja, Allena, koji ima kvadriplegiju kao posljedicu nesreće na brdskom biciklizmu. Felix (moj prijatelj) i ja smo obavili brzi pregled
Postavljanje DS3231 RTC (sata u stvarnom vremenu) točno, brzo i automatizirano pomoću Jave (+-1 s): 3 koraka
Postavljanje DS3231 RTC (sata u stvarnom vremenu) točno, brzo i automatizirano pomoću Jave (+-1 s): Ova instrukcija će vam pokazati kako postaviti vrijeme na satu DS3231 u stvarnom vremenu pomoću Arduina i male Java aplikacije koja koristi serijska veza Arduina. Osnovna logika ovog programa: 1. Arduino šalje serijski zahtjev
UDuino: Vrlo niska cijena Arduino kompatibilna razvojna ploča: 7 koraka (sa slikama)
UDuino: Vrlo niska cijena Arduino kompatibilna razvojna ploča: Arduino ploče izvrsne su za izradu prototipova. Međutim, oni postaju prilično skupi ako imate više istodobnih projekata ili vam je potrebno puno kontrolnih ploča za veći projekt. Postoje neke sjajne, jeftinije alternative (Boarduino, Freeduino), ali
Steampunk IPod Dock (niska cijena): 6 koraka
Steampunk IPod Dock (niska cijena): Ovo je moje prvo uputstvo. U njemu ću pokazati kako sam napravio svoju steampunk iPod priključnu stanicu. Pristanište se sastoji od dva dijela: stvarne priključne stanice i baze za nju. Dijelovi se mogu sastaviti ili koristiti zasebno. Za mene ovaj projekt ne košta ništa. Ja sam