Мазмуну:

GPSDO YT, Тартиптүү Осциллятор 10Mhz Reference Frequency. Төмөн наркы. Так.: 3 кадам
GPSDO YT, Тартиптүү Осциллятор 10Mhz Reference Frequency. Төмөн наркы. Так.: 3 кадам

Video: GPSDO YT, Тартиптүү Осциллятор 10Mhz Reference Frequency. Төмөн наркы. Так.: 3 кадам

Video: GPSDO YT, Тартиптүү Осциллятор 10Mhz Reference Frequency. Төмөн наркы. Так.: 3 кадам
Video: Демо-версия эталонной частоты NR3620 GPSDO 2024, Июль
Anonim
GPSDO YT, Тартиптүү Осциллятор 10Mhz Reference Frequency. Төмөн наркы. Так
GPSDO YT, Тартиптүү Осциллятор 10Mhz Reference Frequency. Төмөн наркы. Так
GPSDO YT, Тартиптүү Осциллятор 10Mhz Reference Frequency. Төмөн наркы. Так
GPSDO YT, Тартиптүү Осциллятор 10Mhz Reference Frequency. Төмөн наркы. Так
GPSDO YT, Тартиптүү Осциллятор 10Mhz Reference Frequency. Төмөн наркы. Так
GPSDO YT, Тартиптүү Осциллятор 10Mhz Reference Frequency. Төмөн наркы. Так

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

ТОКТОТУУ ТОКТОТУУ ТОКТОТУУ

Бул эскирген долбоор.

Анын ордуна бул жерде жеткиликтүү болгон менин жаңы 2x16 LCD дисплей версиямды текшериңиз:

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

Документтер үчүн бул жерде эски версиясын калтырдым.

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

Салам балдар, GPSDO деген эмне? GPSDO билдирет: GPS дисциплиналуу осциллятор. GPS глобалдык позициялоо системасы үчүн. Бардык GPS спутниктери синхрондуу атомдук саат менен жабдылган. GPS модулу бул сигналдарды бир нече спутниктерден алат. Жана триангуляция менен ал өзүнүн жайгашкан жерин билет. Бирок бул жерде бизди кызыктырган нерсе - модулда табылган секундасына импульс. Бул так импульс менен (атомдук сааттан) биз абдан так осцилляторду жасай алабыз. Эмне үчүн ? Маалымат үчүн, жыштык эсептегичти калибрлөө үчүн же жөн гана анын лабораториясында болуу үчүн.

Алар интернетте көптөгөн схемалар. Мен кээ бирлерин сынап көрдүм. Кээ бирлери жакшы, кичинекейи 2313 менен 5 герц өтө жай болчу. Бирок меники эң жөнөкөй, пайдалуу жана ыңгайлуу. Мен сизге.hex кодун берип жатам. Алар VCO эмес жана бөлүүчү эмес. VCO менен схема жакшы иштеп жатат. Бирок, ал үзгүлтүксүз 10 кГц импульс сигналына ээ болушу керек. Эгерде антенна өтө алсыз, импульстун жоктугу же таптакыр жок болсо, осциллятор (ocxo) өзүнөн өзү иштеп жатат жана VFC (Voltage Frequency Control) так эмес. 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)/секунданын саны) - 10E6

1-этап, 10 000 000 үчүн 1 экинчи үлгү +- 1 Гц тактык үчүн эсептелет

2-фаза, 100 секунд үчүн 10 секунд үлгү, +-0.1Гц тактык үчүн эсептелет

3-этап, 600 секунд үчүн 60 секунд үлгүсү +-0.01666 Гц тактык үчүн эсептелет

4-фаза, 200 секунд 2, 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 болушу керек. Мен Double Oven 12v Sinus чыгарууну жакшы көрөм. Дагы туруктуу, тынч жана так. Бирок менде жөнөкөй 5V менен ушундай жыйынтык бар. Мисалы, стп 2187 стабилдүүлүктүн кыска убакыты (аллан четтөөсү) 2x10-12 = 0.000, 000, 000, 002 Гц туруктуулукка ээ. Ошол эле учурда, GPS импульсу жеткиликтүү болгондо, Avr дайыма pwm (жыштыгы) тууралайт. UC дайыма эсептейт … дайыма. Бул экранда сиз күндү жана убакытты көрбөйсүз дегенди билдирет. UC 900s үлгүсүн алганда, бул 900 секундга бош эмес. Ал сааттын баарын эсептеши керек. Проблема UC 10МГцте иштеп жатат. Ар бир саатты эсептөө керек. Бул өзүн өзү эсептеп жатат. Эгерде бир гана саат жетишпесе, үлгү жакшы болбойт жана pwm тууралоосу туура болбойт. Мен дисплейди секунд сайын жаңылай албайм.

Тандоо башталганда. Uc таймерди санай баштайт0. Ар бир 256 саат үзгүлтүккө учуратат. X реестри көбөйтүлөт. толгондо Y реестри көбөйтүлөт жана X 0 жана башкасына кайтарылат. Акыр -аягы, ал акыры бир gps импульсун эсептеп токтотот. Жана азыр гана мен дисплейди жаңыртып, pwm эсептөө үчүн математиканы жасай алам.

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

Менде болгон дагы бир көйгөй, кээ бир avr көрсөтмөлөрүндө 2 цикл бар. Анын ичинде rjmp инструкциясы. Бул биринчи же акыркы gps импульсинин 2 цикл инструкциясы менен бир убакта пайда болгонун билдирет, uC бир саатты өткөрүп жиберет. Анткени uC үзгүлтүккө учурай электе көрсөтмөнү бүтүрөт. Ошентип, эсептегич бир циклден кийин баштайт же токтойт. Ошентип, мен убакытты күтүү циклин кыла албайм … Бирок чындыгында, менин башка жолум жок. Мен бир жерге илинишим керек эле !! Мен Ошентип, мен rjmp жана nop (бул эч нерсе кылбайт) көрсөтмөсүн колдонуп жатам. Nop - бир цикл инструкциясы. Мен atmega48де бир rjmp үчүн 400 ноп көрсөтмөсүн койдум. 2000 atmega88 жана atmega328p версиясында. Ошентип, биринчи же акыркы импульс rjmp көрсөтмөсү менен келүү мүмкүнчүлүгү азыраак. Бирок ооба, бул мүмкүн, эгерде бул ишке ашса, бул ката кийинки тандоодо оңдолот.

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

Pwm - 16 бит. 65535 кадам. 5v/65535 = 76, 295 uV

OCXO вариациясы 2 Гцтен 1Вга чейин. 1v/76, 295uV = 2 Гц үчүн 13107 кадам. Pwm кадамы менен 2/13107 = 152.59uHz

5 -фаза, pwmди 3кө өзгөртүп жатат, 6 -фаза - 2 -кадам … Эмне үчүн 3? анткени 3 15 мүнөттүк масштабда 0,000, 000, 000, 4 жыштыгын өзгөртүп жатат. жана 4 менин алгоритмдеги менин сыйкырдуу номерим. Мисалы, биринчи этапта биринчи табылган жыштык 10.000, 003Mhz. Мен 0, 000, 000.4 кадамга төмөндөтөм.

Өтө чоң кадам 10.000003төн 10.000001ге чейин жана 9, 999998Гцтен кийин өтүшү мүмкүн. Мен бутага жетпей жатам.

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

Сураныч, 5 -фазага жетүү үчүн көбүрөөк убакыт керек. 4 менен 5тин ортосундагы ажырым чоңураак. Бирок бул 5тен 6га чейин тезирээк өтүүгө жардам берет.

6 -фаза так 10 миллиардды эсептегенде, pwm баалуулуктары eepromдо сакталат. Эми, иштөө режимине убакыт келди. Бул 1000 секунддун үлгүсүн эсептейт, бирок 2 кадамдык pwm менен гана. Иштөө режиминде реалдуу жыштык 1000 секунд аралыкта көрсөтүлөт жана жаңыртылат. Эгерде сигнал иштөө режиминде жоголуп кетсе, ал өзүн өзү иштетүүдө өтөт. Бул режимде pwm өзгөрбөйт. Сигнал кайра келгенде, кайра синхрондоштуруу үчүн 5 -фазага кайтат.

Эгерде eeprom сакталгандан кийин электр розеткасы ажыратылса. Бул 5 -фазада eeprom pwm мааниси менен иштей баштаганда башталат.

Eeprom маанисин өчүрүү үчүн, жөн гана баштоо учурунда баскычты басыңыз. Pwm 50% жүктөлөт жана калибрлөө 1 -фазадан башталат.

Мен башка нерсени, схеманын конфигурациясын сынап көрүү үчүн көп саат өтөм. Мен OP ампери, буфер жана башка чип менен көптөгөн сыноолорду кылдым. Жыйынтыгында … эң жакшы натыйжа мага кереги жок. Жөн эле жакшы туруктуу электр энергиясы жана кээ бир чыпкалоочу конденсатор. Ошентип, мен муну жөнөкөй сактайм.

1 -кадам: Бөлүктөрдү сатып алыңыз

Бөлүктөрдү сатып алуу
Бөлүктөрдү сатып алуу
Бөлүктөрдү сатып алуу
Бөлүктөрдү сатып алуу
Бөлүктөрдү сатып алуу
Бөлүктөрдү сатып алуу

Биринчи нерсе - тетиктерди сатып алуу. Анткени көбүнчө жеткирүү абдан узак.

GPS модулу: Мен ublox neo-6m колдонуп жатам. Мен муну ebayдан сатып алдым. Издеп көрүңүз, болжол менен 7-10 доллар турат.

Демейки боюнча, бул ресиверде 1 импульс секундасына иштетилген. Бизге эч нерсе кылуунун кереги жок.

Сиз 1 Hertz импульс чыгаруу менен каалаган GPS модулун колдоно аласыз. Сизде бирөө бар. Муну колдон!

OCXO: Мен 2 осцилляторду сынап көрдүм. Кош меш stp2187 12v синус толкун чыгаруу. Жана ISOTEMP 131-100 5V, чарчы толкун чыгаруу. Экөө тең ebayдеги radioparts16дан келет. Мен алардан абдан жакшы кызмат алдым жана баасы арзаныраак болчу.

AVR: Код кичине atmega48ге туура келет. Бирок мен atmega88 же atmega328p сатып алууну сунуштайм. Бул дээрлик бирдей баа. Муну digikey же ebayдан сатып алыңыз. Мен дип версиясын колдонуп жатам. Сиз үстүнкү версиясын сатып алсаңыз болот, бирок көңүл буруңуз, казыктар схемага окшош эмес.

Lcd дисплейи: Бардык 4x20 HD44780 шайкеш дисплей иштейт. Мени кайдан сатып алдым деп ойлоңуз:) Ооба, бир нече жыл мурун ebayде. Азыр мурункуга караганда кымбатыраак. Бирок 20 АКШ долларына чейин жеткиликтүү.

Балким жакынкы убакта мен 2x16 дисплей үчүн код жасайм. Бул дисплейлер болгону 4 доллар. Жана сен экөөбүздүн ортобузда 2 саптан турган дисплей жетиштүү болмок.

Сизде AVR ISP программисти болушу керек. AVR программалоо Arduino сыяктуу эмес. Arduino буга чейин сериялык портто байланышууга программаланган. Жаңы AVR ISP же Parallel High Voltage Programmer менен программаланышы керек. Биз бул жерде isp колдонуп жатабыз.

74hc04 же 74ac0, 7812 жана 7805 вольтту жөнгө салуучу, резисторлор, конденсатор…. Digikey, 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 лкд колдоо. Эгерде сизде 4х20 болсо, анда ал дагы иштейт. Бирок 2 акыркы сапта эч нерсе көрсөтүлбөйт.

3 -кадам: Eeprom журналдары

Eeprom'го кирүү
Eeprom'го кирүү

Бул жерде eepromдун төгүлүшү бир нече сааттан кийин иштейт. Мен муну кантип окуу керектигин түшүндүрөм. Дагы, бул оңой:)

00 дареги боюнча, 01 pwm мааниси сакталат. 5 -фаза 9 миллиардды эсептесе, pwm наркы эсептегич так 10 миллиардга жеткен сайын жаңыртылып турат.

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

Бул exemple менин 5 вольттон ocxo келди. Биз 65536 боюнча 0x9A73 = 39539 ондуктун pwm маанисин окуй алабыз. = 60, 33% же 3.0165 Вольт.

Ошентип, 00:01 дареги 0x9A73

Кийинки, сиз 03тү окуй аласыз. 9, 000, 000, 003 үчүн Pwm 3кө төмөндөйт, анткени биз азырынча 5 -фазадабыз.

00 үчүн 10, 000, 000.000 pwm калуу тийбейт жана биз иштөө режимине өтөбүз (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 pwm болуу үчүн тийбейт

00 10, 000, 000.000 pwm болуу үчүн тийбейт

00 10, 000, 000.000 pwm калуу үчүн тийбейт

Эми сиз eepromду кантип окууну билесиз. Ар бир 1000 секундда жаңы маани eepromдо жазылат. Eeprom толгондо, ал 2 -даректен кайра башталат.

FF мааниси 9, 999, 999.999 дегенди билдирет

Сиз бул төгүндүнүн жардамы менен тактыгын, эч кандай LCD дисплейи жок, көзөмөлдөй аласыз.

Сиз eeprom файлын isp программисти менен таштай аласыз.

Мен сизге жетиштүү маалымат бердим деп үмүттөнөм. Эгер андай болбосо, мага кабарлаңыз. Кеңеш, ката, бир нерсе.

Yannick

Сунушталууда: