Sisukord:

GPSDO YT, distsiplineeritud ostsillaator 10Mhz võrdlussagedus. Odav. Täpne: 3 sammu
GPSDO YT, distsiplineeritud ostsillaator 10Mhz võrdlussagedus. Odav. Täpne: 3 sammu
Anonim
GPSDO YT, distsiplineeritud ostsillaator 10Mhz võrdlussagedus. Odav. Täpne
GPSDO YT, distsiplineeritud ostsillaator 10Mhz võrdlussagedus. Odav. Täpne
GPSDO YT, distsiplineeritud ostsillaator 10Mhz võrdlussagedus. Odav. Täpne
GPSDO YT, distsiplineeritud ostsillaator 10Mhz võrdlussagedus. Odav. Täpne
GPSDO YT, distsiplineeritud ostsillaator 10Mhz võrdlussagedus. Odav. Täpne
GPSDO YT, distsiplineeritud ostsillaator 10Mhz võrdlussagedus. Odav. Täpne

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

STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP

See on aegunud projekt.

Selle asemel kontrollige minu uut 2x16 lcd ekraaniversiooni, mis on saadaval siin:

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

Jätsin vana versiooni dokumentatsiooniks siia.

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

Tere kutid, Mis on GPSDO? GPSDO tähendab: GPS distsiplineeritud ostsillaator. GPS globaalse positsioneerimissüsteemi jaoks. Kõik GPS -satelliidid on varustatud sünkroniseeritud aatomkellaga. GPS -moodul võtab neid signaale vastu mitmelt satelliidilt. Ja kolmnurga abil teab ta oma asukohta. Kuid siin huvitab meid moodulil olev impulss sekundis. Selle täpse impulsiga (aatomkellast) saame teha väga täpse ostsillaatori. Milleks ? Viiteks, sagedusloenduri kalibreerimiseks või lihtsalt lõbu pärast, kui see on tema laboris.

Neid on Internetis palju skemaatiliselt. Olen mõnda proovinud. Mõned on head, üks tillukese2313 -ga oli 5 hertsi liiga aeglane. Kuid minu oma on kõige lihtsam, kasulikum ja mugavam. Ja ma annan teile.hex koodi. Nad ei ole VCO ega jagajad. VCO -ga vooluringil läheb hästi. Kuid selle impulssignaal peab olema pidevalt 10 khz või rohkem. Kui antenn läheb liiga nõrgaks, impulss puudub või puudub impulss üldse, töötab ostsillaator (ocxo) iseenesest ja VFC (pinge sageduse juhtimine) pole enam täpne. VCO tagasiside vajab püsimiseks võrdlussagedust. Kui ei, siis varieerub see 1 kuni 2 hertsini! Samuti ei tööta selles konfiguratsioonis odavam gps -moodul. VCO tegemiseks peab meil olema vähemalt 10 khz. Proovisin 1000 hertsiga. Vahe oli liiga suur. Sagedus varieerus. Nii et ublox neo-6m puhul ei saa te suurepärast vco gpsdo teha, kuna maksimaalne väljundsagedus on 1000 Hz. Peate ostma neo-7m või ülemise.

Minu GPSDO YT töötab nii. Kontroller leidis hea reguleerimise mis tahes OCXO jaoks, mille vfc on 0 kuni 5 v. Kui me kaotame perearstide signaali, ei liigu sagedus üldse. Kui signaal uuesti ilmub, võtab kontroller oma viimase teadaoleva hea väärtuse ja jätkab nagu varem. Ulatusala, võrdlusostsillaatoriga. Me ei saa öelda, millal signaal kadus või millal see tagasi tuli. Signaal on sama.

Pärast kalibreerimist saate soovi korral gpsdo -d ilma antennita kasutada. Mõni kinnitus hiljem on teil väga väike triiv. Aga…. kui palju suurem? On aeg mõne selgituse saamiseks.

Siin on mõni matemaatika … Lihtne matemaatika, järgige seda, see on lihtne. Seni on algoritmil 6 faasi. Iga faas võtab proovi 1–1000 sekundit, leidis hea pwm -korrigeerimise ja läheb täpsuse huvides enamiku pikemate proovide juurde.

Täpsus = ((((sekundite arv x 10E6) + 1)/sekundite arv) - 10E6

1. faas, 1 sekundi proov 10 000 000 loendusega, täpsus +- 1 Hz

faas 2, 10-sekundiline proov 100 000 000 loenduseks +-0,1 Hz täpsuse jaoks

3. faas, 60-sekundiline proov 600 000, 000 loenduse jaoks, täpsus +0,01666 Hz

4. faas, 200 sekundit Proov 2 000, 000 000 loenduseks, täpsus +-0,005 Hz

5. faasi proov, 900 sekundit, 9 000 000 000 loendust, täpsus +-0,001111 Hz

6. faasi 1000 sekundi proov 10 miljardi jaoks, täpsus +-0,001 Hz

Halvimal juhul. Kui saame faasi 6. See arv võib 1000 sekundi jooksul natuke muutuda või mitte. mõne aja pärast on see 10 000, 000, 001 või 9, 999, 999, 999 Niisiis, +või - 0, 000, 000,001 variatsioon 1000 -le. Nüüd peame väärtust teadma 1 sekundi jooksul.

10Mhz = 1 sekund

1 sekund = 10 000, 000, 001 loend/1000 s = 10 000, 000,001 Hz (halvimal juhul 1 sekund)

10 000 000 0001 - 10 000 000 = 0,001 Hz/s kiirem või aeglasem

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

Pidage meeles, et 10Mhz on 1 sekund, 31536Hz X 1 / 10E6 = 0, 0031536 sekund / aasta

Veel üks kiirem arvutusmeetod. üks 10E9Mhz puudumine on 1/10E9 = 1E-10

1E-10 x 60x60x24x365 = 0, 0031536 sekund/aasta.

Kas see on teie jaoks piisavalt täpne?

aga sul peab olema hea OXCO. Eelistan topeltahju 12v Sinus väljundit. Stabiilsem, vaikne ja täpne. Aga mul on sama tulemus lihtsa 5V korral. Näiteks on stp 2187 stabiilsus lühike aeg (allani hälve) 2x10-12 = 0,000, 000, 000, 002 Hz stabiilsus. Samal ajal, kui gps -impulss on saadaval, parandab Avr alati pwm (sagedus). UC loeb alati … alati. See tähendab, et ekraanil ei kuvata kuupäeva ja kellaaega. Kui uC võtab proove 900 -st, on see 900 sekundit hõivatud. See peab loendama kogu kella. Probleem on selles, et uC töötab 10Mhz. Iga kell tuleb lugeda. See loeb ennast. Kui ainult üks kell on puudu, ei ole proov hea ja pwm reguleerimine ei ole õige. Ma ei saa ekraani igal sekundil värskendada.

Kui proovide võtmine algab. Uc hakkab loendama taimerit 0. Iga 256 kell tekitab katkestuse. X registrit suurendatakse. kui see on täis, Y registrit suurendatakse ja X lähtestatakse väärtusele 0 jne. Lõpuks, kui tal on viimane gps -i impulss, loendamine peatatakse. Ja nüüd ja alles nüüd saan ekraani värskendada ja pwm arvutamiseks natuke matemaatikat teha.

teades, et mul on aega lugeda ainult 25, 6 (256 kella enne katkestust) või kuvada. See on võimatu. Ühte katkestust saab hõõruda, mitte 2. Võiksin aega värskendada pärast 1000 -ndat sekundit … kuid pole otstarbekas näha aega 15, 16 -minutilise intervalliga. Mul on kell, kell, mobiiltelefon, et aega teada:) Teen 10Mhz viite. Mitte kella.

Teine probleem, mis mul oli, on mõned avr -juhised 2 tsüklit. Kaasa arvatud rjmp juhend. See tähendab, et kui esimene või viimane gps -impulss tuli üles 2 -tsüklilise käsu ajal, jääb uC kellast ilma. Kuna uC lõpetab juhise enne katkestuse alustamist. Nii et loendur hakkab või lõpetab ühe tsükli hiljem. Nii et ma ei saa aja ooteaega teha … Aga tegelikult pole mul muud valikut. Mul oli vaja kuhugi loopida !! I Nii et ma kasutan rjmp ja nop (see ei tee midagi) juhiseid. Nop on ühe tsükli juhis. Olen pannud 400 nop juhist ühele rjmp -le atmega48 -le. 2000 versioonidel atmega88 ja atmega328p. Seega on tõenäosus, et esimene või viimane impulss on väiksem rjmp -i juhendamisel. Aga jah, see on võimalik ja kui see juhtub, parandatakse see viga järgmisel proovivõtul.

Ekraan on valikuline. Saate vooluringi teha ainult uC, OCXO ja madalpääsfiltriga (takisti kondensaator), lülitage sisse ja oodake. 1 tunni pärast saate vastuvõetava sageduse. Kuid faasi 6 jõudmiseks kulub paar tundi.

Pwm on 16 bitti. 65535 samm. 5v/65535 = 76, 295 uV

OCXO variatsioon on 2Hz 1V. 1v/76, 295uV = 13107 samm 2 hz. 2/13107 = 152,59uHz pwm sammuga

Faas 5 muudab pwm 3 võrra, etapp 6 on 2. samm… Miks 3? sest 3 muudab sagedust 0, 000, 000, 4 15 minuti skaalal. ja 4 on minu maagiline number minu algoritmis. Näiteks esimeses faasis on esimene leitud sagedus 10 000, 003 MHz. Alandan 0 000 000 000 sammu võrra.

Liiga suur samm võib minna vahemikus 10.000003 kuni 10.000001 ja pärast 9, 999998Hz. Mul on sihtmärk puudu.

0, 0000004. See on kiirem kui 0, 1 ja ma olen kindlam, et numbrit ei mööda. Ja nii edasi. Ma teen sama 10 sekundi, 60 sekundi ja 200 -nda faasi ja 900 -ga. 1000s töötab töörežiimis ja kasutage pwm sammu 2

Pange tähele, et 5. etapp on pikem. Vahe 4 ja 5 vahel on suurem. Kuid see aitab kiiremini 5–6 üle minna.

Kui 6. faas on loendanud täpselt 10 miljardit, salvestatakse pwm väärtused eepromi. Nüüd on aeg töörežiimi jaoks. See üks loeb 1000 sekundi proovi, kuid ainult 2 sammu pwm. Töörežiimis kuvatakse ja uuendatakse tegelikku sagedust 1000 -sekundilise intervalliga. Kui signaal on töörežiimis kadunud, läheb see isejooksul üle. Selles režiimis ei muutu pwm. Kui signaal tuleb tagasi, naaseb see faasi 5, et uuesti sünkroonida.

Kui vooluring on pärast eepromi salvestamist vooluvõrgust lahti ühendatud. See algab 5. faasis sisselülitamisel eepromi pwm väärtusega.

Eepromi väärtuse kustutamiseks vajutage käivitamisel lihtsalt nuppu. Pwm 50% koormatakse ja kalibreerimine algab 1. faasist.

Mul kulub mitu tundi, et proovida erinevaid asju, vooluringi konfiguratsiooni. Tegin palju teste, OP võimendi, puhver ja muu kiip. Ja lõpuks … parim tulemus, mis ma sain, ei vaja seda. Lihtsalt hea stabiilne toiteallikas ja mõni filtreeriv kondensaator. Nii et ma hoian selle lihtsana.

Samm: osade ostmine

Osta osi
Osta osi
Osta osi
Osta osi
Osta osi
Osta osi

Esimene asi, mida teha, on osade ostmine. Kuna sageli on saatmine väga pikk.

GPS-moodul: ma kasutan ublox neo-6m. Ostsin selle ebayst. Tehke otsing, see maksab umbes 7–10 USA dollarit.

Vaikimisi on sellel vastuvõtjal lubatud 1 impulss sekundis. Meil pole vaja midagi teha.

Saate kasutada mis tahes 1 -hertsise impulssväljundiga gps -moodulit. Sul on üks. Kasutage seda!

OCXO: Proovisin 2 ostsillaatorit. Kahekordne ahi stp2187 12v siinuslaine väljund. Ja ISOTEMP 131-100 5V, ruutlaine väljund. Mõlemad on pärit ebay raadiosideosadest16. Sain neilt väga head teenindust ja hind oli odavam.

AVR: kood sobib väikesele atmega48. Aga ma soovitan osta atmega88 või atmega328p. See on peaaegu sama hinnaga. Osta see digikeyst või ebayst. Ma kasutan dip -versiooni. Võite osta pinnakinnituse versiooni, kuid pöörake tähelepanu, tihvtid ei ole skemaatiliselt samad.

LCD -ekraan: iga 4x20 HD44780 ühilduv ekraan töötab. Arvake ära, kust ma oma ostsin:) Jah, paar aastat tagasi ebayst. Nüüd on see kallim kui varem. Kuid saadaval alla 20 USA dollari.

Võib -olla teen lähitulevikus koodi 2x16 ekraanile. Nende näidikute hind on ainult 4 dollarit. Ja teie ja minu vahel piisaks kaherealisest ekraanist.

Teil peab olema AVR ISP programmeerija. AVR -i programmeerimine pole nagu Arduino. Arduino on juba programmeeritud suhtlema jadaportis. Täiesti uus avr tuleb programmeerida ISP või paralleelse kõrgepinge programmeerijaga. Me kasutame siin ispi.

74hc04 või 74ac0, voltregulaator 7812 ja 7805, takistid, kondensaator…. digikey, ebay

2. samm: siin on skemaatiline ja Gpsdo_YT_v1_0.hex

Image
Image
Siin on skemaatiline ja Gpsdo_YT_v1_0.hex
Siin on skemaatiline ja Gpsdo_YT_v1_0.hex
Siin on skemaatiline ja Gpsdo_YT_v1_0.hex
Siin on skemaatiline ja Gpsdo_YT_v1_0.hex

Ma arvan, et skeem on kõik, mida selle projekti elluviimiseks vaja on. Soovi korral võite kasutada söövitusmeetodiga vaskplaati või lihtsalt perforeeritud plaati.

Võite kasutada mis tahes kasti, kuid soovitan metallist kasti. Või lihtsalt leivalaual lõbutsemiseks nagu minul:)

Ootan, kuni antenni pikendus ja bnc -pistik oma projekti kasti panevad.

Peate valima õige kaitsmeotsiku. Veenduge, et valitud on väline ostsillaator. Kui teil on välise ostsillaatoriga probleeme, proovige välist kristalli. Ja low.ckdiv8 kell on märkimata. Vaata pilti. Pöörake tähelepanu, kui väline kell natuke sulab, peate koodi programmeerimiseks või käitamiseks pakkuma välise kella. Teisisõnu, ühendage ostsillaator xtal1 kontaktiga.

Muide … sama koodi abil saate teha 1 -sekundilise väravaga sagedusloendurit. Sisestage lihtsalt kell, mida mõõta xtal1 kontaktiga, ja teil on sagedusloendur +-1 Hz.

Uuendan projekti niipea, kui mul on uusi asju.

Vahepeal, kui projekt teile huvi pakub, on teil piisavalt materjali alustamiseks ja isegi enne mind lõpetamiseks

Laadisin üles 2 videot, näete esimest ja viimast etappi.

Olen valmis kõigi küsimuste või kommentaaride jaoks. Aitäh.

26. veebruar 2017 … Versioon 1.1 on saadaval.

-atmega48 ei toetata enam. Pole piisavalt ruumi.

-Lisatud satelliitide arv lukus.

-Toetab 2x16 lcd. Kui teil on 4x20, töötab see ka. Kuid 2 viimast rida ei näita midagi.

Samm: logige sisse Eepromi

Logib sisse Eepromi
Logib sisse Eepromi

Siin on eepromi prügila pärast paari tundi uf -i töötamise aega. Ma selgitan, kuidas seda lugeda. Jällegi on lihtne:)

Aadressil 00 salvestatakse pwm väärtus 01. Niipea kui 5. faasis on 9 miljardit, uuendatakse pwm väärtust iga kord, kui loendur jõuab täpselt 10 miljardini.

Niipea kui oleme jõudnud faasi 5. Kõik arvud salvestatakse eepromi pärast pwm väärtust. Alustage aadressilt 02, pärast 03 ja nii edasi.

See näide tuli minu 5 -voldisest ocxo -st. Me võime lugeda pwm väärtust 0x9A73 = 39539 kümnendkoha võrra 65536. = 60, 33% või 3,0165 volti.

Seega on aadress 00:01 0x9A73

Järgmisena saate lugeda 03. 9, 000, 000, 003 puhul vähendatakse Pwm 3 võrra, kuna oleme veel 5. faasis

00 10 000 000 000 000 pwm viibimise korral on puutumatu ja me läheme töörežiimi (6. etapp)

02 10, 000, 000.002 Sel juhul vähendatakse pwm väärtust 2 -lt

01 10 000 000 0001 pwm väärtust vähendatakse 2 -lt

01 10 000 000 0001 pwm väärtust vähendatakse uuesti 2 -lt

00 10 000 000 000 pwm viibimise korral on puutumatu

00 10 000 000 000 pwm viibimise korral on puutumatu

00 10 000 000 000 pwm viibimise korral on puutumatu

Nüüd teate, kuidas eepromi lugeda. Iga 1000 sekundi jooksul kirjutatakse uus väärtus eepromi. Kui eeprom on täis, taaskäivitatakse see aadressilt 2.

FF väärtus on 9, 999, 999,999

Selle prügimäega saate täpsust jälgida ilma LCD -ekraanita.

Saate eepromi faili isp -programmeerijaga tühjendada.

Loodan, et andsin teile piisavalt teavet. Kui ei, siis andke teada. Nõuanne, viga, kõik.

Yannick

Soovitan: