Мазмұны:

GPSDO YT, тәртіптелген осциллятор 10 МГц анықтамалық жиілік. Төмен баға. Нақты: 3 қадам
GPSDO YT, тәртіптелген осциллятор 10 МГц анықтамалық жиілік. Төмен баға. Нақты: 3 қадам

Бейне: GPSDO YT, тәртіптелген осциллятор 10 МГц анықтамалық жиілік. Төмен баға. Нақты: 3 қадам

Бейне: GPSDO YT, тәртіптелген осциллятор 10 МГц анықтамалық жиілік. Төмен баға. Нақты: 3 қадам
Бейне: Демо-версия эталонной частоты NR3620 GPSDO 2024, Қараша
Anonim
GPSDO YT, тәртіптелген осциллятор 10 МГц анықтамалық жиілік. Төмен баға. Дәл
GPSDO YT, тәртіптелген осциллятор 10 МГц анықтамалық жиілік. Төмен баға. Дәл
GPSDO YT, тәртіптелген осциллятор 10 МГц анықтамалық жиілік. Төмен баға. Дәл
GPSDO YT, тәртіптелген осциллятор 10 МГц анықтамалық жиілік. Төмен баға. Дәл
GPSDO YT, тәртіптелген осциллятор 10 МГц анықтамалық жиілік. Төмен баға. Дәл
GPSDO YT, тәртіптелген осциллятор 10 МГц анықтамалық жиілік. Төмен баға. Дәл

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

STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP ТОҚТАУ

Бұл ескірген жоба.

Оның орнына мұнда қол жетімді менің 2x16 LCD дисплейдің жаңа нұсқасын тексеріңіз:

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

Мен құжаттау үшін ескі нұсқаны осында қалдырдым.

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

Cәлем жігіттер, GPSDO дегеніміз не? GPSDO білдіреді: GPS тәртіпті осциллятор. Жаһандық позициялау жүйесі үшін GPS. Барлық GPS спутниктері синхронды атомдық сағатпен жабдықталған. GPS модулі бұл сигналдарды бірнеше спутниктерден алады. Ал триангуляция арқылы ол өзінің орналасқан жерін біледі. Бірақ мұнда бізді модульде кездесетін секундына импульс қызықтырады. Бұл дәл импульспен (атомдық сағаттан) біз өте дәл осциллятор жасай аламыз. Не үшін ? Анықтама үшін жиілік санауышын калибрлеу үшін немесе оны зертханада болу қызықты болу үшін.

Олар Интернетте көптеген схемалар. Мен кейбірін сынап көрдім. Кейбіреулер жақсы, кішкентай 2313 бар 5 герц тым баяу болды. Бірақ менікі - ең қарапайым, пайдалы және ыңғайлы. Мен сізге.hex кодын беремін. Олар VCO емес және бөлгіш емес. VCO схемасы жақсы жұмыс істейді. Бірақ оның импульстік сигналы 10 кГц немесе одан да көп болуы керек. Егер антенна тым әлсіз болса, импульстің болмауы немесе мүлде болмаса, осциллятор (ocxo) өздігінен жұмыс істейді, ал VFC (кернеу жиілігін басқару) дәл емес. VCO кері байланысын сақтау үшін анықтамалық жиілік қажет. Олай болмаған жағдайда, ол 1 -ден 2 Герцке дейін өзгереді! Сондай -ақ, бұл конфигурацияда арзан gps модулі жұмыс істемейді. VCO жасау үшін бізде кемінде 10 кГц болуы керек. Мен 1000 герцпен тырыстым. Аралық тым үлкен болды, жиілік әр түрлі болды. Ublox neo-6m көмегімен сіз керемет vco gpsdo жасай алмайсыз, себебі максималды шығыс жиілігі 1000 Гц. Сіз нео-7м немесе жоғары сатып алуыңыз керек.

Менің GPSDO YT осылай жұмыс істейді. Контроллер vfc 0 -ден 5v -ге дейінгі кез келген OCXO үшін жақсы түзетуді тапты. Егер біз дәрігерлер сигналын жоғалтсақ, жиілік мүлдем қозғалмайды. Сигнал қайта пайда болған кезде контроллер өзінің соңғы белгілі жақсы мәнін алады және бұрынғыдай жалғастырады. Қолдану осцилляторы бойынша. Сигналдың жоғалғанын немесе қай кезде оралғанын айта алмаймыз. Сигнал бірдей.

Калибрлегеннен кейін, қажет болса, антеннасыз gpsdo пайдалануға болады. Бірнеше таудан кейін сізде өте аз дрейф болады. Бірақ…. қаншалықты үлкен? Біраз түсініктеме беретін уақыт келді.

Міне, математика… Оңай математика, менімен жүр, бұл оңай. Әзірге алгоритм 6 фазадан тұрады. Әр фаза 1 -ден 1000 секундқа дейінгі үлгіні алады, pwm -дің жақсы реттелуін тапты және дәлірек болу үшін ең ұзын үлгілерге өтіңіз.

Дәлдік = (((секунд саны x 10E6) + 1)/секунд саны) - 10Е6

1 кезең, 10 000 000 үшін 1 секундтық үлгі +- 1 Гц дәлдікке есептеледі

2-кезең, 100 000, 000 үшін 10 секундтық үлгі +-0,1 Гц дәлдікке есептеледі

3-кезең, 600 000, 000 үшін 60 секундтық үлгі +-0,01666 Гц дәлдікке есептеледі

4-кезең, 200 секунд 2 000 000 000 000 үлгісі +-0,005 Гц дәлдікке есептеледі

5-кезең, 9 000 000 000 үшін 900 секунд үлгісі +-0,001111 Гц дәлдігіне есептеледі

6-кезең, 10 миллиард үшін 1000 секундтық үлгі +-0.001 Гц дәлдікке есептеледі

Ең нашар жағдай. Біз 6 -кезеңге жеткенде, бұл сан әр 1000 секунд сайын өзгеруі мүмкін. Біраз уақыттан кейін 10 000 000, 001 немесе 9, 999, 999, 999 болады, +немесе - 0, 000, 000.001 1000 -ға дейін өзгереді. Енді біз 1 секундтың мәнін білуіміз керек.

10 МГц = 1 секунд

1 секунд үшін = 10 000 000, 001 санау/1000 секунд = 10 000 000 0001 Гц (1 секунд үшін ең нашар жағдай)

10, 000, 000.001 - 10, 000, 000 = 0,001 Гц/с жылдам немесе баяу

0,001Гц X 60 X 60 X24 X365 = 31536 Гц/жыл

Есіңізде болсын, 10 МГц - 1 секунд, 31536 Гц X 1 / 10E6 = 0, 0031536 секунд / жыл

Есептеудің тағы бір жылдам әдісі. 10E9Mhz үшін бір жіберу-1/10E9 = 1E-10

1E-10 x 60x60x24x365 = 0, 0031536 секунд/жыл.

Бұл сізге дәл ме?

дегенмен, сізде жақсы OXCO болуы керек. Мен қос пештің 12в синус шығысын жақсы көремін. Неғұрлым тұрақты, тыныш және дәл. Бірақ менде 5В қарапайым нәтиже бар. Мысалы, stp 2187 2x10-12 = 0.000, 000, 000, 002 Гц тұрақтылықтың қысқа уақытында (алландық ауытқуы) бар. Сонымен қатар, GPS импульсі болған кезде, Avr әрқашан pwm (жиілікті) түзетеді. UC әрқашан санайды … әрқашан. Бұл дисплейде сіз күн мен уақытты көрмейтіндігіңізді білдіреді. UC 900 -ді таңдағанда, бұл 900 секунд бойы бос емес. Ол барлық сағатты санауы керек. Мәселе UC 10 МГц жиілікте жұмыс істейді. Әр сағатты санау керек. Ол өзін өзі санап жатыр. Егер бір ғана сағат жетіспесе, үлгі жақсы болмайды және pwm реттеу дұрыс болмайды. Мен әр секунд сайын дисплейді жаңарта алмаймын.

Таңдау басталған кезде. Uc таймерді санауды бастайды0. Әр 256 сағат үзіліс тудырады. X регистрі ұлғаяды. толған кезде Y регистрі ұлғаяды және X 0 қалпына келтіріледі және т. Ақырында, ол бір рет пульстің жиырылу жиілігін тоқтатады. Ал қазір және қазір мен дисплейді жаңарта аламын және pwm есептеу үшін математика жасай аламын.

Осыны біле отырып, менде уақытты немесе басқа уақытты оқу және көрсету үшін 25, 6 бізге (үзілістен бұрын 256 сағат) ғана бар. Бұл мүмкін емес. Бір үзілісті 2 емес, буферге қоюға болады. Мен уақытты 1000 -нан кейін жаңарта аламын … бірақ уақытты 15, 16 минуттық интервалмен көру практикалық болмайды. Уақытты білу үшін менде сағат, сағат, ұялы телефон бар:) Мен 10 МГц сілтеме жасаймын. Сағат емес.

Менде болған тағы бір мәселе, кейбір avr нұсқауларында 2 цикл бар. Оның ішінде rjmp нұсқаулығы. Бұл дегеніміз, егер циклдің бірінші немесе соңғы импульсі екі циклді нұсқаулықта бір уақытта шықса, онда UC сағатты жіберіп алады. Себебі uC үзілісті бастамас бұрын нұсқаулықты аяқтайды. Санау бір цикл кейінірек басталады немесе тоқтайды. Мен уақытты күту циклін жасай алмаймын … Бірақ менде басқа таңдау жоқ. Маған бір жерге жүгіру керек болды !! Мен сондықтан rjmp және nop (бұл ештеңе жасамайды) нұсқауын қолданамын. Nop - бұл бір циклді нұсқаулық. Мен atmega48 -ге бір rjmp үшін 400 nop нұсқаулығын қойдым. 2000 atmega88 және atmega328p нұсқасында. Сондықтан бірінші немесе соңғы импульс rjmp нұсқауымен келеді. Иә, бұл мүмкін, егер бұл орын алса, бұл қате келесі іріктеу кезінде түзетіледі.

Дисплей міндетті емес. Сіз тізбекті тек uC, OCXO және төмен өту сүзгісімен (резисторлық конденсатор) жасай аласыз, қосыңыз және күтіңіз. 1 сағаттан кейін сізде қолайлы жиілік болады. Бірақ 6 -кезеңге жету үшін бірнеше сағат қажет.

Pwm - 16 бит. 65535 қадам. 5в/65535 = 76, 295 вольт

OCXO вариациясы 2 Гц -тен 1 В -қа дейін. 1в/76, 295уВ = 13107 қадам 2 гц. 2/13107 = 152.59уГц қадам бойынша pwm

5 -кезең, pwm 3 -ке өзгереді, 6 -кезең - 2 -қадам. Неге 3? себебі 3 жиілікті 15 минуттық шкала бойынша 0.000, 000, 000, 4 -ке өзгертеді. ал 4 - бұл менің алгоритмдегі сиқырлы нөмірім. Мысалы, егер бірінші кезеңде бірінші табылған жиілік 10.000, 003МГц болса. Мен 0, 000, 000.4 қадамға төмен түсемін.

Тым үлкен қадам 10.000003 -тен 10.000001 -ге дейін және 9, 999998Гц -тен кейін өтуі мүмкін. Мен мақсатты жоғалтып алдым.

0, 0000004 арқылы. Бұл 0, 1 -ден жылдам, мен санды айналып өтпейтініне сенімдімін. Және тағы басқа. Мен 10 секундта, 60 секундта және 200 секундта және 900 -де солай істеймін. 1000s жұмыс режимінде және pwm 2 қадамын қолданыңыз

Назар аударыңыз, 5 -ші кезеңге жету ұзағырақ. 4 пен 5 арасындағы алшақтық үлкенірек. Бірақ бұл 5 -тен 6 -ға дейін тез өтуге көмектеседі.

6 -кезең 10 миллиардты есептегенде, pwm мәндері eeprom -да сақталады. Енді жұмыс режимінің уақыты келді. Бұл 1000 секундтық үлгі, бірақ тек 2 қадамдық pwm бар. Жұмыс режимінде нақты жиілік 1000 секундтық интервалда көрсетіледі және жаңартылады. Егер сигнал жұмыс режимінде жоғалса, ол өздігінен іске қосылады. Бұл режимде pwm өзгермейді. Сигнал қайта оралғанда, ол қайта синхрондау үшін 5 фазаға оралады.

Егер eeprom сақталғаннан кейін тізбек ажыратылса. Бұл eeprom pwm мәні қосылған кезде 5 -ші фазада басталады.

Eeprom мәнін өшіру үшін іске қосу кезінде түймені басу жеткілікті. Pwm 50% жүктеледі және калибрлеу 1 фазадан басталады.

Мен әр түрлі нәрсені, схеманың конфигурациясын сынап көру үшін бірнеше сағат өткіземін. Мен ОР күшейткішпен, буфермен және басқа чиппен көптеген сынақтар жасадым. Соңында … ең жақсы нәтиже маған қажет емес. Тек жақсы тұрақты қуат көзі және кейбір сүзгілеу конденсаторы. Сондықтан мен мұны қарапайым ұстаймын.

1 -қадам: бөлшектерді сатып алу

Бөлшектерді сатып алу
Бөлшектерді сатып алу
Бөлшектерді сатып алу
Бөлшектерді сатып алу
Бөлшектерді сатып алу
Бөлшектерді сатып алу

Біріншіден, бөлшектерді сатып алу. Өйткені көбінесе жеткізу өте ұзақ.

GPS модулі: Мен ublox neo-6m қолданамын. Мен мұны ebay -ден сатып алдым. Іздеу жасаңыз, бұл шамамен 7-10 АҚШ доллары.

Әдепкі бойынша, бұл ресиверде секундына 1 импульс қосылған. Бізге ештеңе істеудің қажеті жоқ.

1 Hertz импульстік шығысы бар кез келген gps модулін қолдануға болады. Сізде біреу бар. Мұны қолданыңыз!

OCXO: Мен 2 осцилляторды сынап көрдім. Екі қабатты пеш stp2187 12в синустық толқын. Ал ISOTEMP 131-100 5V, квадраттық толқындық шығыс. Екеуі де ebay -дегі радио бөлімдерден 16 келеді. Мен олардан өте жақсы қызмет алдым және бағасы арзан болды.

AVR: код atmega48 -ге сәйкес келеді. Бірақ мен atmega88 немесе atmega328p сатып алуды ұсынамын. Бұл шамамен бірдей баға. Мұны ebay немесе digikey -ден сатып алыңыз. Мен dip нұсқасын қолданамын. Сіз беткі бекіту нұсқасын сатып ала аласыз, бірақ назар аударыңыз, түйреуіштер схемаға сәйкес келмейді.

Lcd дисплей: кез келген 4x20 HD44780 үйлесімді дисплей жұмыс істейді. Мені қайдан сатып алғанымды біліңіз:) Бірнеше жыл бұрын ebay -де. Қазір ол бұрынғыға қарағанда қымбат. Бірақ 20 АҚШ долларынан төмен қол жетімді.

Мүмкін жақын арада мен 2x16 дисплейге код жасаймын. Бұл дисплейлер небәрі 4 доллар. Сіз бен менің арамызда 2 жолды көрсету жеткілікті болар еді.

Сізде AVR ISP бағдарламашысы болуы керек. AVR бағдарламалау Arduino сияқты емес. Arduino сериялық портта байланысу үшін бағдарламаланған. Жаңа AVR ISP немесе параллель жоғары вольтты бағдарламашымен бағдарламалануы керек. Біз мұнда isp қолданамыз.

74hc04 немесе 74ac0, 7812 және 7805 вольт реттегіші, резисторлар, конденсатор…. басқа, ebay

2 -қадам: мұнда схемалық және Gpsdo_YT_v1_0.hex

Image
Image
Міне, схемалық және Gpsdo_YT_v1_0.hex
Міне, схемалық және Gpsdo_YT_v1_0.hex
Міне, схемалық және Gpsdo_YT_v1_0.hex
Міне, схемалық және Gpsdo_YT_v1_0.hex

Менің ойымша, бұл жобаны іске асыру үшін схема қажет. Егер сіз қаласаңыз, жалату әдісімен мыс қапталған тақтаны немесе жай ғана перфорацияланған тақтаны қолдануға болады.

Сіз қалаған қорапты пайдалана аласыз, бірақ мен металл қорапты ұсынамын. Немесе мен сияқты көңілді болу үшін нан тақтасында:)

Мен антеннаның ұзартылуын және bnc қосқышының жобамды қорапқа салуын күтемін.

Дұрыс сақтандырғышты таңдау керек. Сыртқы осциллятордың таңдалғанына көз жеткізіңіз. Егер сізде сыртқы осцилляторда қиындықтар болса, сыртқы кристалды қолданып көріңіз. Ал low.ckdiv8 сағаты белгіленбеген. Суретті қараңыз. Назар аударыңыз, сыртқы сағат аздап сақтандырылған кезде, кодты бағдарламалауға немесе іске қосуға сыртқы сағатты беру керек. Басқаша айтқанда, осцилляторды xtal1 түйреуішіне қосыңыз.

Айтпақшы, сіз 1 секундтық қақпасы бар жиілікті есептегішті жасау үшін сол кодты пайдалана аласыз. Xtal1 түйреуішімен өлшеу үшін сағатты енгізіңіз, сонда сізде +-1 Гц жиілік санағышы болады.

Мен жаңа заттарды алғаннан кейін жобаны жаңартамын.

Бұл арада, егер жоба сізді қызықтырса, сізде оны менің алдымда бастауға, тіпті аяқтауға жеткілікті материал бар

Мен 2 видео жүктедім, сіз бірінші және соңғы кезеңді көре аласыз.

Мен кез келген сұрақтар мен пікірлерге дайынмын. Рақмет сізге.

2017 жылдың 26 ақпаны… 1.1 нұсқасы қол жетімді.

-atmega48 енді қолдамайды. Орын жеткіліксіз.

-Құлыпталған спутник саны қосылды.

-2x16 дисплейге қолдау көрсету. Егер сізде 4x20 болса, ол да жұмыс істейді. Бірақ соңғы 2 жолда ештеңе көрсетілмейді.

3 -қадам: Eeprom жүйесіне кіру

Eeprom жүйесіне кіреді
Eeprom жүйесіне кіреді

Міне, жұмыс уақытынан бірнеше сағаттан кейін eeprom қоқысы. Мен мұны қалай оқу керектігін түсіндіремін. Тағы да, бұл оңай:)

00, 01 адресінде pwm мәні сақталады. 5 -ші кезеңде 9 миллиард есептеледі, pwm мәні санауыш дәл 10 миллиардқа жеткен сайын жаңартылады.

Біз 5 -ші кезеңге өтеміз. Барлық есептеулер pwm мәнінен кейін eeprom -да сақталады. 02 мекен -жайынан бастаңыз, 03 -тен кейін және т.б.

Бұл мысал менің 5 вольтты ocxo -дан келді. Біз pwm мәнін 0x9A73 = 39539 ондық санды 65536 бойынша оқи аламыз. = 60, 33% немесе 3.0165 Вольт.

00:01 мекенжайы - 0x9A73

Әрі қарай, сіз 03 -ті оқи аласыз. 9 000 000, 003 үшін Pwm 3 -ке төмендейді, себебі біз әлі 5 -ші сатыдамыз.

00 10 000 000 000 000 пвм үшін қол тигізбейді және біз жұмыс режиміне өтеміз (6 кезең)

02 10, 000, 000.002 үшін Бұл жағдайда pwm мәні 2 -ден төмендетіледі

01 10, 000, 000.001 үшін pwm мәні 2 -ден төмендетілді

01 10, 000, 000.001 үшін pwm мәні 2 -ден қайтадан төмендетілді

00 10 000 000 000 000 адам үшін қол тигізбейді

00 10 000 000 000 000 адам үшін қол тигізбейді

00 10 000 000 000 000 адам үшін қол тигізбейді

Енді сіз эпромды қалай оқуға болатынын білесіз. Әр 1000 секунд сайын жаңа мән eeprom -да жазылады. Эпром толған кезде, ол 2 мекенжайынан қайта басталады.

FF мәні 9, 999, 999.999 құрайды

Сіз бұл қоқыстың көмегімен LCD дисплейінсіз дәлдікті қадағалай аласыз.

Сіз eeprom файлын isp бағдарламашысымен бірге тастай аласыз.

Сізге жеткілікті ақпарат бердім деп үміттенемін. Егер жоқ болса, маған хабарлаңыз. Кеңес, қате, кез келген нәрсе.

Яник

Ұсынылған: