Kazalo:

GPSDO YT, referenčna frekvenca discipliniranega oscilatorja 10 Mhz. Poceni. Natančno .: 3 koraki
GPSDO YT, referenčna frekvenca discipliniranega oscilatorja 10 Mhz. Poceni. Natančno .: 3 koraki

Video: GPSDO YT, referenčna frekvenca discipliniranega oscilatorja 10 Mhz. Poceni. Natančno .: 3 koraki

Video: GPSDO YT, referenčna frekvenca discipliniranega oscilatorja 10 Mhz. Poceni. Natančno .: 3 koraki
Video: 🎄Упражнение для Пищеварения в Праздники! 2024, Julij
Anonim
GPSDO YT, referenčna frekvenca discipliniranega oscilatorja 10 Mhz. Poceni. Natančno
GPSDO YT, referenčna frekvenca discipliniranega oscilatorja 10 Mhz. Poceni. Natančno
GPSDO YT, referenčna frekvenca discipliniranega oscilatorja 10 Mhz. Poceni. Natančno
GPSDO YT, referenčna frekvenca discipliniranega oscilatorja 10 Mhz. Poceni. Natančno
GPSDO YT, referenčna frekvenca discipliniranega oscilatorja 10 Mhz. Poceni. Natančno
GPSDO YT, referenčna frekvenca discipliniranega oscilatorja 10 Mhz. Poceni. Natančno

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

STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP

To je zastarel projekt.

Namesto tega preverite mojo novo različico zaslona 2x16 lcd, ki je na voljo tukaj:

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

Staro različico sem pustil tukaj za dokumentacijo.

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

Zdravo družba, Kaj je GPSDO? GPSDO pomeni: GPS discipliniran oscilator. GPS za globalni sistem pozicioniranja. Vsi sateliti GPS so opremljeni s sinhronizirano atomsko uro. Modul GPS sprejema te signale z več satelitov. In s triangulacijo ve, kje se nahaja. Tu pa nas zanima utrip na sekundo, ki ga najdemo na modulu. S tem natančnim impulzom (iz atomske ure) lahko naredimo zelo zelo natančen oscilator. Kaj za ? Za referenco, za umerjanje števca frekvenc ali pa samo za zabavo, če ga imate v svojem laboratoriju.

Na internetu je veliko shem. Nekaj sem jih že poskusil. Nekateri so dobri, eden z drobnim 2313 je bil 5 hercev prepočasen. Toda moj je najbolj preprost, uporaben in priročen. Pošiljam vam.hex kodo. Niso VCO in delilec. Vezje z VCO deluje dobro. Vendar mora imeti neprekinjeno impulzni signal 10 kHz ali več. Če je antena prešibka, manjka impulz ali pa sploh ni impulza, oscilator (ocxo) deluje sam in VFC (nadzor napetosti napetosti) ni več natančen. Za povratne informacije VCO je potrebna referenčna frekvenca. Če ne, se spreminja od 1 do 2 Hertz! Tudi cenejši gps modul v tej konfiguraciji ne deluje. Za izdelavo VCO moramo imeti vsaj 10 kHz. Poskusil sem s 1000 herci. Vrzel je bila prevelika, frekvenca pa različna. Torej z ublox neo-6m ne morete narediti odličnega vco gpsdo, ker je največja izhodna frekvenca 1000Hz. Morate kupiti neo-7m ali zgornjo.

Tako deluje moj GPSDO YT. Krmilnik je našel dobro prilagoditev za kateri koli OCXO z vfc 0 do 5v. Če izgubimo signal zdravnikov, se frekvenca sploh ne premakne. Ko se signal znova pojavi, krmilnik vzame svojo zadnjo znano dobro vrednost in nadaljuje kot prej. Po obsegu z referenčnim oscilatorjem. Ne moremo vedeti, kdaj je signal izgubljen ali kdaj se je vrnil. Signal je enak.

Po kalibraciji lahko gpsdo uporabite brez antene, če želite. Nekaj nosilcev kasneje boste imeli zelo majhen odmik. Ampak…. koliko večji? Čas je za razlago.

Tukaj je nekaj matematike … Enostavna matematika, enostavno mi sledite. Doslej ima algoritem 6 faz. Vsaka faza vzame vzorec od 1 do 1000 sekund, ugotovi dobro nastavitev pwm in za večjo natančnost preide na večino daljših vzorcev.

Natančnost = (((Število sekund x 10E6) + 1)/število sekund) - 10E6

Faza 1, 1 drugi vzorec za 10 000 000 šteje za natančnost +- 1 Hz

faza 2, 10-sekundni vzorec za 100 000 000 šteje za natančnost +-0,1Hz

Faza 3, 60-sekundni vzorec za 600 000 000 šteje za natančnost +0,01666 Hz

Faza 4, 200 sekund Vzorec za 2 000 000 000 000 šteje za natančnost +-0,005 Hz

Faza 5, 900 sekundni vzorec za 9 000 000 000 000 šteje za natančnost +-0,001111 Hz

Faza 6, 1000-sekundni vzorec za 10 milijard šteje za natančnost +-0,001 Hz

V najslabšem primeru. Ko dobimo fazo 6. Ta številka se lahko spremeni vsakih 1000 sekund ali ne. nekaj časa bo 10, 000, 000, 001 ali 9, 999, 999, 999 Torej, +ali - 0, 000, 000.001 variacije za 1000s. Zdaj moramo vedeti vrednost za 1 sekundo.

10 Mhz = 1 sekunda

Za 1 sekundo = 10, 000, 000, 001 štetje/1000s = 10, 000, 000.001 Hz (najslabši primer za 1 sekundo)

10, 000, 000.001 - 10, 000, 000 = 0,001 Hz/s hitreje ali počasneje

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

Zato ne pozabite, da je 10 Mhz 1 sekunda, 31536Hz X 1 / 10E6 = 0, 0031536 sekunda / leto

Še ena hitrejša metoda za izračun. ena zamuda za 10E9Mhz je 1/10E9 = 1E-10

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

Je to dovolj natančno za vas?

vendar morate imeti dober OXCO. Raje imam dvojno pečico 12v Sinus. Bolj stabilen, tih in natančen. Imam pa enak rezultat s preprostim 5V. Na primer, stp 2187 ima stabilen kratek čas stabilnosti (alansko odstopanje) 2x10-12 = 0.000, 000, 000, 002 Hz stabilnosti. Hkrati, ko je na voljo impulz GPS, bo Avr vedno popravil pwm (frekvenco). UC vedno šteje … vedno. To pomeni, da na zaslonu ne boste videli datuma in ure. Ko uC vzorči 900s, je ta zaseden 900 sekund. Šteti mora vso uro. Težava je v tem, da uC deluje pri 10 Mhz. Vsako uro je treba šteti. Šteje se samo. Če manjka le ena ura, vzorec ne bo dober in nastavitev pwm ne bo pravilna. Ne morem osvežiti zaslona vsako sekundo.

Ko se vzorčenje začne. Uc začne šteti timer0. Vsaka 256 ura povzroči prekinitev. Register X se poveča. ko je poln, se register Y poveča in X ponastavi na 0 itd. Na koncu, nazadnje v enem impulzu GPS, se štetje ustavi. In zdaj in samo zdaj lahko posodobim zaslon in naredim nekaj matematike za izračun pwm.

ker vem, da imam samo 25, 6 us (256 ur pred prekinitvijo) za branje in prikaz časa ali drugega. To je nemogoče. Ena prekinitev se lahko poviša, ne pa 2. Lahko bi osvežil čas po 1000 sekundah … vendar ne bo praktično videti časa v intervalu 15, 16 minut. Imam uro, uro, mobilni telefon, da vem čas:) Delam referenco 10Mhz. Ni ura.

Druga težava, ki sem jo imel, imajo neka navodila za avr 2 cikla. Vključno z navodilom rjmp. To pomeni, da če se prvi ali zadnji impulz GPS -ja pojavi istočasno po navodilih za 2 cikla, bo uC zamudil uro. Ker bo uC končal navodila pred začetkom prekinitve. Tako se bo števec zagnal ali ustavil en cikel pozneje. Tako da ne morem narediti čakalne zanke … Toda v resnici nimam druge izbire. Moral sem se nekje zaniti !! I Torej uporabljam navodila rjmp in nop (to ne naredi nič). Nop je enkratno navodilo. Na atmega48 sem dal 400 nop navodil za en rjmp. 2000 na različici atmega88 in atmega328p. Torej so možnosti, da prvi ali zadnji utrip pride po navodilih rjmp, manjše. Da, to je mogoče in če se to zgodi, bo napaka odpravljena pri naslednjem vzorčenju.

Zaslon ni obvezen. Tokokrog lahko naredite samo z, uC, OCXO in nizkoprepustnim filtrom (uporni kondenzator), vklopite in počakajte. Po 1 uri boste imeli sprejemljivo frekvenco. Toda do faze 6. To traja nekaj ur.

Pwm je 16 bitov. 65535 korak. 5v/65535 = 76, 295 uV

Sprememba OCXO je 2Hz za 1V. 1v/76, 295uV = 13107 korak za 2 hz. 2/13107 = 152,59uHz po korakih pwm

Faza 5, spreminja pwm za 3, faza 6 je 2. korak … Zakaj 3? ker 3 spreminja frekvenco za 0,000, 000, 000, 4 na lestvici 15 minut. in 4 je moja čarobna številka v mojem algoritmu. Na primer, če je v prvi fazi prva ugotovljena frekvenca 10.000, 003Mhz. Spustim se za 0, 000, 000.4 korak.

Prevelik korak lahko preide od 10.000003 do 10.000001 in po 9, 999998Hz. Pogrešam tarčo.

Z 0, 0000004. Hitreje je kot 0, 1 in bolj sem prepričan, da številke ne bom obšel. In tako naprej. Enako delam s fazo 10 sekund, 60 sekund in 200s ter 900s. 1000s deluje in uporablja pwm korak 2

Upoštevajte, da je peta faza dosegljiva dlje. Razlika med 4 in 5 je večja. Toda pomaga pri hitrejšem prehodu od 5 do 6.

Ko faza 6 šteje natanko 10 milijard, se vrednosti pwm shranijo v eeprom. Zdaj je čas za način delovanja. Ta šteje 1000 sekundni vzorec, vendar samo v 2 korakih pwm. V načinu delovanja je dejanska frekvenca prikazana in posodobljena v intervalu 1000 sekund. Če se signal v načinu delovanja izgubi, preide v samodejni tek. V tem načinu ni sprememb pwm. Ko se signal vrne, se vrne v fazo 5 za ponovno sinhronizacijo.

Če je po shranjevanju eeproma vezje izklopljeno. Ta se bo začel pri fazi 5 ob vklopu z vrednostjo eeprom pwm.

Če želite izbrisati vrednost eeproma, pritisnite gumb ob zagonu. Pwm 50% bo obremenjeno in kalibracija se bo začela od prve faze.

Vzamem veliko ur, da poskusim drugačno, konfiguracijo vezja. Naredil sem veliko testov z ojačevalnikom OP, vmesnikom in drugim čipom. In na koncu … najboljši rezultat, ki sem ga dobil, tega ne potrebuje. Samo dober stabilen napajalnik in nekaj filtrirnega kondenzatorja. Zato ostajam preprost.

1. korak: Kupite dele

Kupite dele
Kupite dele
Kupite dele
Kupite dele
Kupite dele
Kupite dele

Najprej morate kupiti dele. Ker je dostava pogosto zelo dolga.

GPS modul: Uporabljam ublox neo-6m. Tole sem kupil na ebayu. Poiščite, stane približno 7 do 10 ameriških dolarjev.

Ta sprejemnik ima privzeto omogočen 1 impulz za sekundo. Ni nam treba storiti ničesar.

Uporabite lahko kateri koli GPS modul z impulznim izhodom 1 Hertz. Imaš enega. Uporabi to!

OCXO: Poskusil sem 2 oscilatorja. Dvojna pečica stp2187 12v sinusni izhod. In ISOTEMP 131-100 5V, kvadratni valovni izhod. Oba prihajata iz radioparts16 na ebayu. Od njih sem imel zelo dobro storitev in cena je bila nižja.

AVR: Koda se prilega malo atmega48. Predlagam pa, da kupite atmega88 ali atmega328p. To je skoraj enaka cena. Kupite na digikey ali ebay. Uporabljam dip različico. Lahko kupite različico za površinsko montažo, vendar bodite pozorni, čepi niso enaki na shemi.

Lcd zaslon: Vsak zaslon, združljiv s 4x20 HD44780, bo deloval. Ugani, kje sem kupil svojega:) Ja na ebayu pred nekaj leti. Zdaj je dražje kot prej. Na voljo pa je pod 20 USD v ZDA.

Mogoče bom v bližnji prihodnosti naredil kodo za zaslon 2x16. Ti zasloni stanejo le 4 USD. In med nami bi zadostoval prikaz dveh vrstic.

Imeti morate programerja ponudnika internetnih storitev AVR. Programiranje AVR ni podobno Arduinu. Arduino je že programiran za komunikacijo prek serijskih vrat. Popolnoma nov avr mora biti programiran z ISP ali paralelnim visokonapetostnim programerjem. Tukaj uporabljamo isp.

74hc04 ali 74ac0, volt regulator 7812 in 7805, upori, kondenzator … digikey, ebay

2. korak: Tukaj je shema in Gpsdo_YT_v1_0.hex

Image
Image
Tukaj je shema in Gpsdo_YT_v1_0.hex
Tukaj je shema in Gpsdo_YT_v1_0.hex
Tukaj je shema in Gpsdo_YT_v1_0.hex
Tukaj je shema in Gpsdo_YT_v1_0.hex

Mislim, da je shema vse, kar potrebujete za uresničitev tega projekta. Uporabite lahko bakreno obloženo ploščo z jedkanjem ali samo perforirano ploščo, če želite.

Uporabite lahko poljubno škatlo, vendar predlagam kovinsko škatlo. Ali pa samo na deski za zabavo, kot je moja:)

Čakam na razširitev antene in priključek bnc, da svoj projekt vstavim v škatlo.

Izbrati morate pravi bit varovalke. Prepričajte se, da je izbran zunanji oscilator. Če imate težave z zunanjim oscilatorjem, poskusite z zunanjim kristalom. Ura low.ckdiv8 ni označena. Glej sliko. Bodite pozorni, ko se zunanja ura spoji, morate zagotoviti zunanjo uro za programiranje ali zagon kode. Z drugimi besedami, povežite oscilator v pin xtal1.

Mimogrede … z isto kodo lahko naredite števec frekvenc z 1 sekundnimi vrati. Samo vnesite uro, ki jo želite meriti v xtal1 pin, in imeli boste frekvenčni števec +-1 Hz.

Projekt bom posodobil takoj, ko bom imel nove stvari.

Medtem, če vas projekt zanima, imate dovolj materiala, da ga začnete in celo zaključite pred mano

Naložil sem 2 videoposnetka, lahko vidite prvo in zadnjo fazo.

Na voljo sem za vsa vprašanja ali komentarje. Hvala vam.

26. februar 2017 … Na voljo je različica 1.1.

-atmega48 ni več podprt. Premalo prostora.

-Dodano število zaklenjenih satelitov.

-Podpora 2x16 lcd. Če imate 4x20, bo tudi deloval. Toda zadnja vrstica 2 ne bo prikazala ničesar.

3. korak: Dnevniki v Eepromu

Dnevniki v Eepromu
Dnevniki v Eepromu

Tukaj je odlagališče eeproma po nekaj urah delovanja. Razložil bom, kako to prebrati. Še enkrat, enostavno je:)

Na naslovu 00, 01 je shranjena pwm vrednost. Takoj, ko faza 5 šteje 9 milijard, se vrednost pwm posodobi vsakič, ko števec doseže točno 10 milijard.

Takoj smo v fazi 5. Vsi štetji so shranjeni v eepromu po vrednosti pwm. Začnite na naslovu 02, po 03 in tako naprej.

Ta primer je prišel iz mojega 5 -voltnega okso. Na 65536 lahko beremo pwm vrednost 0x9A73 = 39539 decimalnih mest = 60, 33% ali 3,0165 voltov.

Torej je naslov 00:01 0x9A73

Nato lahko preberete 03. Za 9 000 000 000 003 Pwm se zniža za 3, ker smo še v peti fazi

00 za 10, 000, 000.000 pwm ostane nedotaknjen in preidemo v način delovanja (faza 6)

02 za 10 000 000 000,002 V tem primeru se pwm vrednost zniža z 2

01 za 10, 000, 000.001 pwm se vrednost zniža z 2

01 za 10 000 000 0001 pwm se vrednost spet zniža z 2

00 za 10, 000, 000.000 pwm bivanje nedotaknjeno

00 za 10.000.000.000.000 pwm bivanje nedotaknjeno

00 za 10, 000, 000.000 pwm bivanje nedotaknjeno

Zdaj veste, kako brati eeprom. Vsakih 1000 sekund se nova vrednost zapiše v eeprom. Ko je eeprom poln, se znova zažene z naslova 2.

Povprečna vrednost FF 9, 999, 999,999

S tem smetiščem lahko spremljate natančnost brez LCD zaslona.

Datoteko eeprom lahko odstranite s programerjem isp.

Upam, da sem vam dal dovolj informacij. Če ne, mi sporočite. Nasvet, napaka, karkoli.

Yannick

Priporočena: