Агуулгын хүснэгт:

GPSDO YT, сахилга баттай осциллятор 10Mhz лавлагааны давтамж. Бага зардал. Нарийвчилсан: 3 алхам
GPSDO YT, сахилга баттай осциллятор 10Mhz лавлагааны давтамж. Бага зардал. Нарийвчилсан: 3 алхам

Видео: GPSDO YT, сахилга баттай осциллятор 10Mhz лавлагааны давтамж. Бага зардал. Нарийвчилсан: 3 алхам

Видео: GPSDO YT, сахилга баттай осциллятор 10Mhz лавлагааны давтамж. Бага зардал. Нарийвчилсан: 3 алхам
Видео: Top 10 Techniques To Successful Crypto Trading In English #audiobooks #motivation #cryptocurrency 2024, Долдугаар сарын
Anonim
GPSDO YT, сахилга баттай осциллятор 10Mhz лавлагааны давтамж. Бага зардал. Нарийвчлалтай
GPSDO YT, сахилга баттай осциллятор 10Mhz лавлагааны давтамж. Бага зардал. Нарийвчлалтай
GPSDO YT, сахилга баттай осциллятор 10Mhz лавлагааны давтамж. Бага зардал. Нарийвчлалтай
GPSDO YT, сахилга баттай осциллятор 10Mhz лавлагааны давтамж. Бага зардал. Нарийвчлалтай
GPSDO YT, сахилга баттай осциллятор 10Mhz лавлагааны давтамж. Бага зардал. Нарийвчлалтай
GPSDO YT, сахилга баттай осциллятор 10Mhz лавлагааны давтамж. Бага зардал. Нарийвчлалтай

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

ЗОГСООСОЙ ЗОГСОО

Энэ бол хуучирсан төсөл.

Үүний оронд энд байгаа миний 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 (хүчдэлийн давтамжийн хяналт) нь үнэн зөв байхаа больсон. VCO -ийн санал хүсэлтийг үргэлжлүүлэхийн тулд лавлах давтамж хэрэгтэй. Үгүй бол энэ нь 1 -ээс 2 Герц хооронд хэлбэлздэг! Мөн хямд gps модуль энэ тохиргоонд ажилладаггүй. VCO хийхийн тулд бидэнд дор хаяж 10 кГц байх ёстой. Би 1000 герцээр туршиж үзсэн. Цоорхой хэтэрхий том байсан. Давтамж өөр өөр байсан. Ublox neo-6m-ийн тусламжтайгаар та маш сайн vco gpsdo хийж чадахгүй, учир нь хамгийн их гаралтын давтамж 1000 Гц байна. Та нео-7м ба түүнээс дээш хэмжээтэй хэсгийг худалдаж авах ёстой.

Миний GPSDO YT ингэж ажилладаг. Хянагч нь 0 -ээс 5v хүртэл vfc бүхий OCXO -ийн хувьд сайн тохируулгыг олсон. Хэрэв бид GP -ийн дохиог сулруулсан бол давтамж огт хөдөлдөггүй. Дохио дахин гарч ирэхэд хянагч хамгийн сүүлд мэдэгдэж байсан сайн үнэ цэнээ аваад өмнөх шигээ үргэлжлүүлнэ. Лавлах осцилляторын хамрах хүрээнд. Дохио хэзээ алдагдаж, хэзээ эргэж ирснийг бид хэлж чадахгүй. Дохио ижил байна.

Тохируулга хийсний дараа та хүсвэл gpsdo -ийг антенгүйгээр ашиглах боломжтой. Хэдэн холболтын дараа та маш бага хазайлттай болно. Гэхдээ…. хэр том бэ? Тодорхой тайлбар хийх цаг болжээ.

Энд математик байна … Хялбар математик, намайг дагаарай, энэ бол амархан. Одоогийн байдлаар алгоритм нь 6 үе шаттай байна. Үе шат бүр нь 1 -ээс 1000 секундын туршилтыг авч, pwm -ийн сайн тохируулгыг олж, илүү нарийвчлалтай байхын тулд ихэнх урт дээж рүү очно.

Нарийвчлал = (((секундын тоо x 10E6) + 1)/секундын тоо) - 10E6

1-р үе шат, 1 секундын дээжийг 10 000 000 000 нь +- 1 Гц нарийвчлалтайгаар тооцдог

2-р үе шат, 100 секундын туршилтын 10 секундын хувьд, -0.1 Гц нарийвчлалтай

3-р үе, 600 секундын 60 секундын дээж нь +-0.01666 Гц нарийвчлалтай гэж тооцогддог

4-р үе, 200 секунд 2,000,000,000,000-ийн дээж нь +-0,005 Гц нарийвчлалтай гэж тооцогддог.

5-р үе, 900 секундын 9,000, 000, 000-ийн дээж нь +-0.001111 Гц нарийвчлалтай гэж тооцогддог

6-р үе, 10 тэрбумын 1000 секундын дээж нь +-0.001 Гц нарийвчлалтай гэж тооцогддог

Хамгийн муу хэрэг. Бид 6 -р үе шатанд ороход энэ тоо 1000 секунд тутамд бага зэрэг өөрчлөгдөж болно. Хэсэг хугацааны дараа энэ нь 100000 -ийн хувьд 10 000 000, 001 эсвэл 9, 999, 999, 999 байх болно, +эсвэл - 0, 000, 000.001. Одоо бид 1 секундын үнэ цэнийг мэдэх ёстой.

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

1 секундын хувьд = 10 000 000, 001 тоолох/1000 сек = 10 000 000 0001 Гц (1 секундын хамгийн муу тохиолдол)

10, 000, 000.001 - 10, 000, 000 = 0.001 Гц/с хурдан эсвэл удаан

0.001Hz X 60 X 60 X24 X365 = 31536 Гц/жил

10Mhz бол 1 секунд, 31536Hz X 1 / 10E6 = 0, 0031536 секунд / жил гэдгийг санаарай.

Тооцоолох өөр нэг хурдан арга. 10E9Mhz-ийн нэг алдагдал нь 1/10E9 = 1E-10 байна

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

Энэ нь танд хангалттай үнэн үү?

Гэсэн хэдий ч та сайн OXCO -той байх ёстой. Би Давхар зуухны 12V синусын гаралтыг илүүд үздэг. Илүү тогтвортой, чимээгүй, үнэн зөв. Гэхдээ би энгийн 5V -тэй ижил үр дүнд хүрсэн. Жишээлбэл, stp 2187 нь 2x10-12 = 0.000, 000, 000, 002 Гц тогтвортой байдлын богино хугацааны (аллан хазайлт) тогтвортой байдалтай байдаг. Үүний зэрэгцээ, GPS импульс байгаа үед Avr нь pwm (давтамж) -ийг үргэлж засч залруулах болно. UC үргэлж тоолж байдаг … үргэлж. Энэ нь дэлгэц дээр та огноо, цагийг харахгүй гэсэн үг юм. UC 900 -аас дээж авах үед энэ нь 900 секундын турш завгүй байдаг. Энэ нь бүх цагийг тоолох ёстой. Асуудал нь uC 10Mhz дээр ажиллаж байна. Цаг бүрийг тоолох ёстой. Энэ нь өөрийгөө тоолж байна. Хэрэв ганцхан цаг дутсан бол дээж нь сайн биш, pwm -ийн тохиргоо зөв хийгдэхгүй болно. Би секунд тутамд дэлгэцийг сэргээж чадахгүй байна.

Дээж авах ажил эхлэх үед. Таймерыг тоолж эхлэхэд 0. 256 цаг бүр тасалдал үүсгэдэг. X бүртгэл нэмэгдсэн байна. дүүрсэн үед Y бүртгэлийг нэмэгдүүлж, X -ийг 0 болгож дахин тохируулах гэх мэт. Эцэст нь тэр хамгийн сүүлд нэг удаа зүрхний цохилтыг тоолохоо болино. Одоо, одоо л би дэлгэцийг шинэчилж, pwm тооцоолох математик хийх боломжтой.

Үүнийг мэдсэнээр надад зөвхөн 25, 6 бидэнд (тасалдахаас өмнө 256 цаг) эсвэл бусад цагийг уншиж, үзүүлэх боломжтой байна. Энэ нь боломжгүй зүйл. Нэг тасалдлыг 2 биш харин буцааж болно. Би 1000 -аад оны дараа цагийг сэргээж чадсан … гэхдээ 15, 16 минутын интервалтай цагийг харах нь тийм ч практик биш байх болно. Надад цаг, цаг, гар утас байна:) Би 10Mhz -ийн лавлагаа хийж байна. Цаг биш.

Надад тулгарч байсан өөр нэг асуудал бол зарим avr заавар нь 2 мөчлөгтэй байдаг. Rjmp зааврыг багтаасан болно. Энэ нь эхний эсвэл сүүлчийн GPS -ийн импульс нь 2 мөчлөгийн зааврын дагуу гарч ирвэл, UC нь цагийг алдах болно гэсэн үг юм. Учир нь uC нь тасалдал эхлэхээс өмнө зааврыг дуусгах болно. Тиймээс тоолуур нэг мөчлөгийн дараа эхлэх буюу зогсоох болно. Тиймээс би цаг хүлээх давталт хийж чадахгүй байна … Гэхдээ үнэндээ надад өөр сонголт байхгүй. Би хаа нэгтээ эргэх хэрэгтэй байсан !! Би Тиймээс rjmp болон nop (энэ нь юу ч хийхгүй) зааврыг ашиглаж байна. Nop бол нэг мөчлөгийн заавар юм. Би atmega48 дээр нэг rjmp -д 400 nop заавар өгсөн. 2000 atmega88 ба atmega328p хувилбар дээр. Тиймээс rjmp зааврын дагуу эхний эсвэл сүүлчийн импульс ирэх магадлал бага байна. Гэхдээ энэ нь боломжтой бөгөөд хэрэв ийм зүйл тохиолдвол дараагийн түүвэрлэлтийн явцад энэ алдааг засах болно.

Дэлгэц нь заавал биш юм. Та зөвхөн uC, OCXO болон бага нэвтрүүлэх шүүлтүүр (резистор конденсатор) ашиглан хэлхээ хийж, асаагаад хүлээнэ үү. 1 цагийн дараа та хүлээн зөвшөөрөгдсөн давтамжтай болно. Гэхдээ 6 -р шатанд хүрэхийн тулд хэдхэн цаг зарцуулдаг.

Pwm нь 16 бит юм. 65535 алхам. 5v/65535 = 76, 295 uV

OCXO -ийн хэлбэлзэл нь 2Hz -ээс 1V байна. 1v/76, 295uV = 13107 алхам 2 гц. 2/13107 = 152.59uHz pwm алхамаар

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 секунд, 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 -р үеэс эхэлнэ.

Би өөр зүйл, хэлхээний тохиргоог туршиж үзэхийн тулд олон цаг зарцуулдаг. Би OP өсгөгч, буфер болон бусад чип ашиглан олон туршилт хийсэн. Эцэст нь хэлэхэд хамгийн сайн үр дүн нь надад хэрэггүй. Зүгээр л сайн тогтвортой цахилгаан хангамж, зарим шүүлтүүрийн конденсатор. Тиймээс би үүнийг энгийн байлгадаг.

Алхам 1: эд анги худалдаж авах

Эд анги худалдаж авах
Эд анги худалдаж авах
Эд анги худалдаж авах
Эд анги худалдаж авах
Эд анги худалдаж авах
Эд анги худалдаж авах

Хамгийн эхний хийх зүйл бол эд анги худалдаж авах явдал юм. Учир нь ихэвчлэн тээвэрлэлт маш урт байдаг.

GPS модуль: Би ublox neo-6m ашиглаж байна. Би үүнийг ebay дээрээс худалдаж авсан. Хайлт хий, ойролцоогоор 7-10 доллар.

Анхдагч байдлаар, энэ хүлээн авагч нь 1 импульсийг секундээр идэвхжүүлсэн байдаг. Бидэнд юу ч хийх шаардлагагүй.

Та 1 Герц импульсийн гаралттай gps модулийг ашиглаж болно. Танд нэг бий. Үүнийг ашигла!

OCXO: Би 2 осциллятор туршиж үзсэн. Давхар зуух stp2187 12в синус долгионы гаралт. ISOTEMP 131-100 5V, дөрвөлжин долгионы гаралт. Аль аль нь ebay дээрх radioparts16 -аас ирдэг. Би тэднээс маш сайн үйлчилгээ авсан бөгөөд үнэ хямд байсан.

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 холбогчийг миний төслийг хайрцагт оруулахыг хүлээж байна.

Та зөв гал хамгаалагчийг сонгох ёстой. Гадны осциллятор сонгосон эсэхийг шалгаарай. Хэрэв танд гадаад осцилляторын асуудал байгаа бол External Crystal -ийг туршиж үзээрэй. Мөн low.ckdiv8 цагийг шалгаагүй байна. Зургийг үзнэ үү. Анхаарна уу, гадаад цаг жаахан хайлах үед та кодыг програмчлах эсвэл ажиллуулахын тулд гадаад цаг өгөх ёстой. Өөрөөр хэлбэл Осцилляторыг xtal1 зүүгээр холбоно уу.

Дашрамд хэлэхэд та 1 секундын хаалгатай давтамжийн тоолуур хийхдээ ижил кодыг ашиглаж болно. Xtal1 зүүгээр хэмжих цагийг оруулаад +-1 Гц давтамжийн тоолууртай болно.

Би шинэ зүйлтэй болмогц төслөө шинэчлэх болно.

Энэ хооронд хэрэв төсөл танд сонирхолтой байгаа бол надаас өмнө эхлүүлэх, дуусгах хангалттай материал танд байна

Би 2 видео байршуулсан бөгөөд та эхний болон сүүлчийн үеийг харж болно.

Би ямар ч асуулт, сэтгэгдэл бичих боломжтой. Баярлалаа.

2017 оны 2 -р сарын 26 … 1.1 хувилбарыг ашиглах боломжтой.

-atmega48 дэмжигдэхээ больсон. Хангалттай зай байхгүй байна.

-Хиймэл дагуулын түгжигдсэн тоо нэмэгдсэн.

-2x16 LCD дэлгэцийг дэмжинэ. Хэрэв та 4х20 хэмжээтэй бол бас ажиллах болно. Гэхдээ сүүлийн 2 мөрөнд юу ч харагдахгүй болно.

Алхам 3: Eeprom руу нэвтрэх

Eeprom -д нэвтэрдэг
Eeprom -д нэвтэрдэг

Ажиллах хугацаанаас хэдэн цагийн дараа eeprom -ийн хаягдал энд байна. Үүнийг хэрхэн уншихыг би тайлбарлах болно. Дахин хэлэхэд энэ нь амархан:)

00, 01 хаягаар pwm утгыг хадгална. 5 -р үе шат 9 тэрбумыг тоолоход тоолуур яг 10 тэрбум хүрэх тоолонд pwm -ийн утга шинэчлэгддэг.

Бид 5 -р шатандаа ормогц бүх тооллогыг pwm -ийн дараа eeprom -д хадгална. 02 хаягаар эхэл, 03 цагаас хойш гэх мэт.

Энэ жишээ нь миний 5 вольтын ocxo -оос ирсэн. Бид 0x9A73 = 39539 аравтын pwm утгыг 65536 дээр уншиж болно. = 60, 33% эсвэл 3.0165 вольт.

Тиймээс 00:01 хаяг нь 0x9A73 юм

Дараа нь та 03 -г уншиж болно. 9, 000, 000, 003 -ийн хувьд Pwm -ийг 3 -аар бууруулдаг, учир нь бид 5 -р шатанд байгаа.

00 нь 10,000,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,000 pwm оршин суухад хүрдэггүй

00 нь 10,000,000,000,000 pwm оршин суухад хүрдэггүй

00 нь 10,000,000,000,000 pwm оршин суухад хүрдэггүй

Одоо та eeprom -ийг хэрхэн уншихаа мэддэг болсон. 1000 секунд тутамд eeprom дээр шинэ утга бичдэг. Eeprom дүүрсэн үед 2 хаягаас дахин эхлэнэ.

FF утга нь 9, 999, 999.999 гэсэн утгатай

Та энэ овоолгын тусламжтайгаар LCD дэлгэцгүйгээр нарийвчлалыг хянах боломжтой.

Та eeprom файлыг isp програмистаар хаяж болно.

Би танд хангалттай мэдээлэл өгсөн гэж найдаж байна. Үгүй бол надад мэдэгдээрэй. Зөвлөгөө, алдаа, юу ч хамаагүй.

Яник

Зөвлөмж болгож буй: