Obsah:

GPSDO YT, disciplinovaný oscilátor, referenčná frekvencia 10 MHz. Nízke náklady. Presné .: 3 kroky
GPSDO YT, disciplinovaný oscilátor, referenčná frekvencia 10 MHz. Nízke náklady. Presné .: 3 kroky
Anonim
GPSDO YT, disciplinovaný oscilátor, referenčná frekvencia 10 MHz. Nízke náklady. Presné
GPSDO YT, disciplinovaný oscilátor, referenčná frekvencia 10 MHz. Nízke náklady. Presné
GPSDO YT, disciplinovaný oscilátor, referenčná frekvencia 10 MHz. Nízke náklady. Presné
GPSDO YT, disciplinovaný oscilátor, referenčná frekvencia 10 MHz. Nízke náklady. Presné
GPSDO YT, disciplinovaný oscilátor, referenčná frekvencia 10 MHz. Nízke náklady. Presné
GPSDO YT, disciplinovaný oscilátor, referenčná frekvencia 10 MHz. Nízke náklady. Presné

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

STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP

Ide o zastaraný projekt.

Namiesto toho skontrolujte moju novú verziu displeja 2x16 lcd, ktorá je k dispozícii tu:

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

Starú verziu som tu nechal kvôli dokumentácii.

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

Čaute ľudia, Čo je to GPSDO? GPSDO znamená: GPS disciplinovaný oscilátor. GPS pre globálny systém určovania polohy. Všetky satelity GPS sú vybavené synchronizovanými atómovými hodinami. GPS modul prijíma tieto signály z niekoľkých satelitov. A podľa triangulácie pozná svoju polohu. Ale tu nás zaujíma pulz za sekundu, ktorý sa nachádza v module. S týmto presným impulzom (z atómových hodín) dokážeme urobiť veľmi presný oscilátor. Za čo ? Pre referenciu, na kalibráciu čítača frekvencie alebo len tak pre zábavu mať ho v jeho laboratóriu.

Na internete je veľa schém. Niektoré som vyskúšal. Niektoré sú dobré, jeden s tiny2313 bol 5 hertzov príliš pomalý. Ale ten môj je najjednoduchší, najužitočnejší a najpohodlnejší. A dávam vám kód.hex. Nie sú VCO ani rozdeľovači. Okruh s VCO sa darí. Musí však mať impulzný signál 10 kHz alebo viac nepretržite. Ak je anténa príliš slabá, chýba alebo nemá žiadny pulz, oscilátor (ocxo) beží sám a VFC (riadenie frekvenčného napätia) už nie je presné. Spätná väzba VCO potrebuje referenčnú frekvenciu, aby sa mohla držať. Ak nie, pohybuje sa od 1 do 2 Hz! V tejto konfigurácii nefunguje ani lacnejší modul gps. Na výrobu VCO musíme mať najmenej 10 kHz. Skúsil som to s 1000 hertzmi. Medzera bola príliš veľká. Frekvencia sa líšila. Takže s ublox neo-6m nemôžete robiť skvelé vco gpsdo, pretože maximálna výstupná frekvencia je 1 000 Hz. Musíte si kúpiť neo-7m alebo vyšší.

Takto funguje môj GPSDO YT. Ovládač našiel dobré nastavenie pre akýkoľvek OCXO s vfc 0 až 5v. Ak stratíme signál všeobecných lekárov, frekvencia sa vôbec nepohybuje. Keď sa signál znova objaví, regulátor vezme svoju poslednú známu dobrú hodnotu a pokračuje ako predtým. Rozsah, s referenčným oscilátorom. Nevieme povedať, kedy je signál stratený alebo kedy sa vrátil. Signál je rovnaký.

Po kalibrácii môžete gpsdo používať bez antény, ak chcete. O niekoľko úchytov neskôr budete mať veľmi malý posun. Ale…. o koľko väčší? Je čas na nejaké vysvetlenie.

Tu je niekoľko matematiky … Ľahká matematika, nasledujte ma s tým, je to jednoduché. Algoritmus má zatiaľ 6 fáz. Každá fáza trvá vzorku 1 až 1 000 sekúnd, našla sa dobrá úprava pwm a pre väčšiu presnosť ide k väčšine dlhších vzoriek.

Presnosť = (((počet sekúnd x 10E6) + 1)/počet sekúnd) - 10E6

Vzorka fázy 1, 1 sekunda pre 10 000 000 000 impulzov s presnosťou +- 1 Hz

fáza 2, 10-sekundová vzorka na 100 000 000 počítaní s presnosťou +-0,1 Hz

Vzorka fázy 3, 60 sekúnd pre 600 000 000 000 číslic s presnosťou +-0,01666 Hz

Fáza 4, 200 sekúnd, ukážka pre 2 000 000 000 000 počítaní s presnosťou +-0,005 Hz

Vzorka fázy 5, 900 sekúnd pre 9 000 000 000 000 počítaní s presnosťou +-0,001111 Hz

Fáza 6, 1 000 sekúnd vzorka s 10 miliardami impulzov s presnosťou +-0,001 Hz

V najhoršom prípade. Keď dostaneme fázu 6. Toto číslo sa môže každých 1000 sekúnd trochu zmeniť alebo nie. nejaký čas to bude 10 000 000 000, 001 alebo 9, 999, 999, 999 variácií So, +alebo - 0, 000, 000,001 za 1000 s. Teraz musíme hodnotu poznať 1 sekundu.

10 MHz = 1 sekunda

Na 1 sekundu = počet 10 000 000 000 001/1000 s = 10 000 000 000,001 Hz (najhorší prípad na 1 sekundu)

10 000 000 000,001 - 10 000 000 000 = 0,001 Hz/s rýchlejšie alebo pomalšie

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

Pamätajte si teda, že 10 MHz je 1 sekunda, 31536 Hz X 1 / 10E6 = 0, 0031536 sekundy / rok

Ďalší rýchlejší spôsob výpočtu. jedna chyba 10E9Mhz je 1/10E9 = 1E-10

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

Je to pre teba dostatočne presné?

musíte však mať dobré OXCO. Dávam prednosť výstupu Double Oven 12v Sinus. Stabilnejšie, tichšie a presnejšie. Ale mám rovnaký výsledok s jednoduchým 5V. Napríklad stp 2187 má krátkodobý stabilitný čas (alanová odchýlka) 2x10-12 = 0,000, 000, 000, 002 Hz stability. V rovnakom čase, keď je k dispozícii impulz GPS, Avr vždy opraví pwm (frekvenciu). UC sa vždy počíta … vždy. To znamená, že na displeji neuvidíte dátum a čas. Keď uC vzorkuje 900 s, tento je zaneprázdnený 900 sekundami. Musí počítať všetky hodiny. Problém je v tom, že uC beží na 10 MHz. Každé hodiny sa musia počítať. Počíta sa to samo. Ak chýbajú iba jedny hodiny, vzorka nebude dobrá a úprava pwm nebude správna. Nemôžem obnovovať zobrazenie každú sekundu.

Keď sa začne vzorkovanie. Uc začať počítať časovač0. Každých 256 hodín generuje prerušenie. Register X sa zvyšuje. keď je plný, register Y sa zvýši a X sa resetuje na 0 a tak ďalej. Na konci, keď má posledný impulz GPS, sa odpočítavanie zastaví. A teraz a len teraz môžem aktualizovať zobrazenie a urobiť nejakú matematiku pre výpočet pwm.

s vedomím, že mám iba 25, 6 nás (256 hodín pred prerušením) na čítanie a zobrazenie času alebo iných. To je nemožné. Možno prerušiť jedno prerušenie, nie 2. Čas by som mohol obnoviť po 1000 s … ale nebude praktické vidieť čas s intervalom 15, 16 minút. Mám hodinky, hodiny, mobil, aby som poznal čas:) Robím referenciu 10Mhz. Nie hodiny.

Ďalší problém, ktorý som mal, niektoré inštrukcie avr majú 2 cykly. Vrátane pokynu rjmp. To znamená, že ak sa prvý alebo posledný impulz GPS vyskytol súčasne s inštrukciou pre 2 cykly, uC zmeškajú hodiny. Pretože uC dokončí inštrukciu pred začatím prerušenia. Počítadlo sa teda spustí alebo zastaví o jeden cyklus neskôr. Takže nemôžem urobiť časový čakací cyklus … Ale v skutočnosti nemám inú možnosť. Potreboval som sa niekde zacykliť !! Používam teda pokyny rjmp a nop (toto nerobí nič). Nop je inštrukcia jedného cyklu. Na atmega48 som vložil inštrukciu 400 nop pre jeden rjmp. 2000 vo verzii atmega88 a atmega328p. Šanca, že prvý alebo posledný impulz príde na pokyn rjmp, je teda menšia. Ale áno, je to možné, a ak k tomu dôjde, táto chyba bude opravená pri nasledujúcom vzorkovaní.

Displej je voliteľný. Obvod môžete vykonávať iba s, uC, OCXO a dolnopriepustným filtrom (odporovým kondenzátorom), zapnite a počkajte. Po 1 hodine budete mať prijateľnú frekvenciu. Ale dosiahnuť fázu 6. Trvá to niekoľko hodín.

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

Variácia OCXO je 2 Hz x 1 V. 1v/76, 295uV = 13107 krok po 2 hodiny. 2/13107 = 152,59uHz po krokoch pwm

Fáza 5 sa mení PWM o 3, fáza 6 je 2. krok … Prečo 3? pretože 3 mení frekvenciu o 0,000, 000, 000, 4 v 15 -minútovom meradle. a 4 je moje magické číslo v mojom algoritme. Napríklad, ak je vo fáze jedna, prvá nájdená frekvencia je 10 000, 003 MHz. Klesám o 0 000 000 000,4 kroku.

Príliš veľký krok môže prejsť od 10,000003 do 10,000001 a po 9,999998Hz. Chýba mi cieľ.

S 0, 0000004. Je to rýchlejšie ako 0, 1 a som si viac istý, že neobídem číslo. A tak ďalej. To isté robím s fázami 10 sekúnd, 60 sekúnd a 200 s a 900 s. 1000s je spustený režim a použite krok pwm z 2

Majte na pamäti, že dosiahnutie fázy 5 je dlhšie. Rozdiel medzi 4 a 5 je väčší. Pomáha však prejsť z 5 na 6 rýchlejšie.

Keď fáza 6 napočítala presne 10 miliárd, hodnoty pwm sa uložia do eeprom. Teraz je čas na bežecký režim. Táto počíta 1000 sekúnd, ale iba s 2 krokovými pwm. V prevádzkovom režime sa skutočná frekvencia zobrazuje a aktualizuje v intervale 1 000 sekúnd. Ak sa signál stratí v prevádzkovom režime, prejde sám. V tomto režime žiadna zmena pwm. Keď sa signál vráti, vráti sa do fázy 5 na resynchronizáciu.

Ak je obvod odpojený po uložení eeprom. Toto začne vo fáze 5 pri zapnutí s hodnotou eeprom pwm.

Na vymazanie hodnoty eeprom stačí pri spustení stlačiť tlačidlo. Pwm 50% bude zaťažené a kalibrácia začne od fázy 1.

Venujem veľa hodín skúšaniu rôznych vecí, konfigurácie obvodu. Urobil som veľa testov s OP zosilňovačom, pufrom a iným čipom. A nakoniec … najlepší výsledok, ktorý som dosiahol, nepotrebujem. Len dobrý stabilný napájací zdroj a nejaký filtračný kondenzátor. Držím to teda jednoducho.

Krok 1: Kúpte si súčiastky

Kúpte si súčiastky
Kúpte si súčiastky
Kúpte si súčiastky
Kúpte si súčiastky
Kúpte si súčiastky
Kúpte si súčiastky

Prvá vec, ktorú musíte urobiť, je kúpiť diely. Pretože dodanie je často veľmi dlhé.

GPS modul: Používam ublox neo-6m. Kúpil som tento na ebay. Skúste hľadať, stojí to asi 7 až 10 amerických dolárov.

V predvolenom nastavení má tento prijímač zapnutý 1 impulz za sekundu. Nepotrebujeme nič robiť.

Môžete použiť akýkoľvek modul GPS s impulzným výstupom 1 Hertz. Máte jednu. Využi to!

OCXO: Skúsil som 2 oscilátory. Dvojitá rúra na výstup, sínusoida 12v stp2187. A ISOTEMP 131-100 5V, štvorcový vlnový výstup. Oba pochádzajú z webu radioparts16 na ebay. Mal som od nich veľmi dobré služby a cena bola lacnejšia.

AVR: Kód sa hodil na malý atmega48. Odporúčam však kúpiť atmega88 alebo atmega328p. Je to skoro rovnaká cena. Kúpte si to na digikey alebo ebay. Používam dip verziu. Môžete si kúpiť verziu pre povrchovú montáž, ale dávajte pozor, kolíky nie sú totožné so schémou.

LCD displej: Bude fungovať akýkoľvek displej kompatibilný s 4x20 HD44780. Hádajte, kde som kúpil ten svoj:) Áno na ebay pred niekoľkými rokmi. Teraz je to drahšie ako predtým. Ale k dispozícii pod 20 dolárov v USA.

Možno v blízkej budúcnosti urobím kód pre displej 2x16. Tieto displeje stoja iba 4 doláre. A medzi vami a mnou by stačil 2 -riadkový displej.

Musíte mať programátor AVR ISP. Programovanie AVR nie je ako Arduino. Arduino je už naprogramované tak, aby komunikovalo na sériovom porte. Úplne nový priemer musí byť naprogramovaný pomocou ISP alebo paralelného vysokonapäťového programátora. Tu používame isp.

A 74hc04 alebo 74ac0, voltový regulátor 7812 a 7805, odpory, kondenzátor … digikey, ebay

Krok 2: Tu je schéma a Gpsdo_YT_v1_0.hex

Image
Image
Tu je schéma a Gpsdo_YT_v1_0.hex
Tu je schéma a Gpsdo_YT_v1_0.hex
Tu je schéma a Gpsdo_YT_v1_0.hex
Tu je schéma a Gpsdo_YT_v1_0.hex

Myslím si, že schéma je všetko, čo potrebujete na realizáciu tohto projektu. Ak chcete, môžete použiť dosku potiahnutú meďou s leptaním alebo len dierovanú dosku.

Môžete použiť ľubovoľný box, ale odporúčam kovový box. Alebo len tak na zábavnom poli, ako je tá moja:)

Čakám na rozšírenie antény a bnc konektor, aby bol môj projekt vložený do krabice.

Musíte vybrať správny poistkový bit. Uistite sa, že je vybratý externý oscilátor. Ak máte problémy s externým oscilátorom, vyskúšajte externý kryštál. A hodiny low.ckdiv8 nie sú začiarknuté. Viď obrázok. Dávajte pozor, keď sa externé hodiny tavia, musíte na programovanie alebo spustenie kódu poskytnúť externé hodiny. Inými slovami, zapojte oscilátor do kolíka xtal1.

Mimochodom … ten istý kód môžete použiť na výrobu počítadla frekvencie s 1 sekundovou bránou. Stačí zadať hodiny, ktoré sa majú merať v kolíku xtal1, a budete mať počítadlo frekvencie +-1 Hz.

Projekt budem aktualizovať hneď, ako budem mať nové veci.

Ak vás projekt medzitým zaujme, máte dostatok materiálu na to, aby ste ho mohli začať a dokonca dokončiť predo mnou

Nahral som 2 videá, môžete vidieť prvú a poslednú fázu.

V prípade akýchkoľvek otázok alebo pripomienok som k dispozícii. Ďakujem.

26. február 2017 … K dispozícii je verzia 1.1.

-atmega48 už nie je podporovaný. Nedostatok miesta.

-Pridaný počet satelitov uzamknutých.

-Podpora 2x16 lcd. Ak máte 4x20, bude to tiež fungovať. 2 posledný riadok však nič nezobrazí.

Krok 3: Prihláste sa do Eepromu

Prihlási sa do Eepromu
Prihlási sa do Eepromu

Tu je skládka eepromu po niekoľkých hodinách prevádzky. Vysvetlím, ako to čítať. Opäť je to jednoduché:)

Na adrese 00, 01 je uložená hodnota pwm. Hneď ako fáza 5 obsahuje 9 miliárd, hodnota pwm sa aktualizuje zakaždým, keď počítadlo dosiahne presne 10 miliárd.

Hneď ako sme vo fáze 5. Všetky počty sú uložené v eeprom po hodnote pwm. Začnite na adrese 02, po 03 a tak ďalej.

Tento príklad pochádza z mojich 5 voltov ocxo. Môžeme čítať hodnotu pwm 0x9A73 = 39539 desatinné na 65536. = 60, 33% alebo 3,0165 voltov.

Adresa 00:01 je teda 0x9A73

Ďalej si môžete prečítať 03. Pri 9 000 000 000 003 Pwm sa zníži o 3, pretože sme stále vo fáze 5

00 pre 10 000 000 000 000 pwm pobyt je nedotknutý a prejdeme do bežeckého režimu (fáza 6)

02 za 10 000 000 000,002 V takom prípade sa hodnota pwm zníži z 2

01 pre hodnotu 10 000 000 000,00 pwm sa zníži z 2

01 pre 10 000 000 0001 pwm hodnota sa zníži z 2 znova

00 za 10 000 000 000 000 pwm pobyt je nedotknutý

00 za 10 000 000 000 000 pwm pobyt je nedotknutý

00 za 10 000 000 000 000 pwm pobyt je nedotknutý

Teraz viete, ako čítať eeprom. Každých 1 000 sekúnd sa do eeprom zapíše nová hodnota. Keď je eeprom plný, reštartuje sa z adresy 2.

Priemerná hodnota FF 9, 999, 999,999

S týmto smetiskom môžete sledovať presnosť bez akéhokoľvek LCD displeja.

Súbor eeprom môžete vykopať pomocou programátora ISP.

Dúfam, že som vám poskytol dostatok informácií. Ak nie, dajte mi vedieť. Rady, chyby, čokoľvek.

Yannick

Odporúča: