Mündəricat:

GPSDO YT, İntizamlı Osilator 10Mhz Referans Tezliyi. Aşağı Qiymət. Dəqiq: 3 addım
GPSDO YT, İntizamlı Osilator 10Mhz Referans Tezliyi. Aşağı Qiymət. Dəqiq: 3 addım

Video: GPSDO YT, İntizamlı Osilator 10Mhz Referans Tezliyi. Aşağı Qiymət. Dəqiq: 3 addım

Video: GPSDO YT, İntizamlı Osilator 10Mhz Referans Tezliyi. Aşağı Qiymət. Dəqiq: 3 addım
Video: GPS 10MHz GPSDO vs Neo-M8N and 10MHz OCXO 2024, Iyul
Anonim
GPSDO YT, İntizamlı Osilator 10Mhz Referans Tezliyi. Aşağı Qiymət. Dəqiq
GPSDO YT, İntizamlı Osilator 10Mhz Referans Tezliyi. Aşağı Qiymət. Dəqiq
GPSDO YT, İntizamlı Osilator 10Mhz Referans Tezliyi. Aşağı Qiymət. Dəqiq
GPSDO YT, İntizamlı Osilator 10Mhz Referans Tezliyi. Aşağı Qiymət. Dəqiq
GPSDO YT, İntizamlı Osilator 10Mhz Referans Tezliyi. Aşağı Qiymət. Dəqiq
GPSDO YT, İntizamlı Osilator 10Mhz Referans Tezliyi. Aşağı Qiymət. Dəqiq

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

STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP

Bu, köhnəlmiş bir layihədir.

Bunun əvəzinə burada mövcud olan yeni 2x16 lcd ekran versiyamı yoxlayın:

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

Sənədləşmə üçün köhnə versiyanı burada qoydum.

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

Salam uşaqlar, GPSDO nədir? GPSDO deməkdir: GPS intizamlı osilator. Qlobal yerləşdirmə sistemi üçün GPS. Bütün GPS peykləri sinxron atom saatı ilə təchiz edilmişdir. GPS modulu bu siqnalları bir neçə peykdən alır. Üçbucaqla öz yerini bilir. Ancaq burada bizi maraqlandıran modulda tapılan saniyədəki nəbzdir. Bu dəqiq nəbzlə (atom saatından) çox dəqiq bir osilatör edə bilərik. Nə üçün ? İstinad üçün, tezlik sayğacının kalibrlənməsi üçün və ya sadəcə əylənmək üçün laboratoriyasında olmaq.

İnternetdə bir çox sxematikdirlər. Bəzilərini sınamışam. Bəziləri yaxşıdır, kiçik 2313 ilə 5 hertz çox yavaş idi. Ancaq mənimki ən sadə, faydalı və əlverişlidir. Mən sizə.hex kodu verirəm. Onlar VCO və bölücü deyillər. VCO ilə dövrə yaxşı gedir. Ancaq davamlı olaraq 10 kHz və ya daha çox bir nəbz siqnalına sahib olmalıdır. Anten çox zəifləyirsə, nəbz yoxdursa və ya ümumiyyətlə nəbz yoxdursa, Osilator (ocxo) öz -özünə işləyir və VFC (Gərginlik Frekansına Nəzarət) artıq dəqiq deyil. VCO rəyini davam etdirmək üçün istinad tezliyinə ehtiyac var. Əks təqdirdə, 1 ilə 2 Hertz arasında dəyişir! Həm də daha ucuz gps modulu bu konfiqurasiyada işləmir. VCO etmək üçün ən azı 10 kHz -ə sahib olmalıyıq. 1000 hertz ilə çalışdım. Boşluq çox böyük idi, tezlik müxtəlif idi. Bir ublox neo-6m ilə əla bir vco gpsdo edə bilməzsiniz, çünki maksimum çıxış tezliyi 1000Hz-dir. Bir neo-7m və ya yuxarı satın almalısınız.

GPSDO YT belə işləyir. Nəzarətçi, vfc 0 ilə 5v arasında olan hər hansı bir OCXO üçün yaxşı tənzimləmə tapdı. GP siqnalını itirsək, tezlik heç hərəkət etmir. Siqnal yenidən görünəndə nəzarətçi son məlum dəyərini alır və əvvəlki kimi davam edir. İstiqamət osilatoru ilə. Siqnalın nə vaxt itdiyini və ya nə vaxt geri gəldiyini deyə bilmərik. Siqnal eynidir.

Kalibrdən sonra istəsəniz antenasız gpsdo istifadə edə bilərsiniz. Bir neçə montajdan sonra çox az sürüşmə olacaq. Amma…. nə qədər böyükdür? Bir izahat verməyin vaxtı gəldi.

Budur bəzi Riyaziyyat… Asan riyaziyyat, bu işlə məni izlə. İndiyə qədər alqoritm 6 mərhələdən ibarətdir. Hər mərhələ 1 ilə 1000 saniyə arasında bir nümunə alır, yaxşı pwm tənzimləməsini tapdı və daha dəqiqlik üçün ən uzun nümunələrə keçdi.

Dəqiqlik = (((Saniyə x 10E6) + 1)/saniyə sayı) - 10E6

Mərhələ 1, 10 saniyə üçün 1 saniyəlik nümunə +- 1 Hz dəqiqliyi üçün sayılır

faza 2, 100 saniyə üçün 10 saniyəlik nümunə +-0.1Hz dəqiqlik üçün sayılır

Faza 3, 600 saniyə üçün 60 saniyəlik nümunə +-0.01666 Hz dəqiqliyi üçün sayılır

Faza 4, 200 saniyə 2 000 000 000 000 nümunəsi +-0,005 Hz dəqiqlik üçün sayılır

Mərhələ 5, 900, 9 saniyə üçün 900 saniyəlik nümunə +-0.001111 Hz dəqiqliyi üçün sayılır

Faza 6, 10 milyard üçün 1000 saniyəlik nümunə +-0.001 Hz dəqiqliyi üçün sayılır

Ən pis halda. 6 -cı mərhələni əldə etdiyimiz zaman bu rəqəm hər 1000 saniyədə bir qədər dəyişə bilər. bir müddət sonra 10 000 000, 001 və ya 9, 999, 999, 999, +və ya - 1000 lər üçün 0, 000, 000.001 dəyişmə olacaq. İndi 1 saniyənin dəyərini bilməliyik.

10Mhz = 1 saniyə

1 saniyə üçün = 10, 000, 000, 001 say/1000s = 10, 000, 000.001 Hz (1 saniyə üçün ən pis vəziyyət)

10, 000, 000.001 - 10, 000, 000 = 0.001 Hz/s daha sürətli və ya daha yavaş

0.001Hz X 60 X 60 X24 X365 = 31536 Hz/il

Unutmayın, 10Mhz 1 saniyədir, 31536Hz X 1 / 10E6 = 0, 0031536 saniyə / il

Hesablamanın daha sürətli bir yolu. 10E9Mhz üçün bir miss 1/10E9 = 1E-10-dur

1E-10 x 60x60x24x365 = 0, 0031536 saniyə/il.

Bu sizin üçün kifayət qədər dəqiqdirmi?

Bununla birlikdə yaxşı bir OXCO -ya sahib olmalısınız. Double Fırın 12v Sinus çıxışına üstünlük verirəm. Daha sabit, sakit və dəqiq. Ancaq sadə 5V ilə eyni nəticə əldə etdim. Məsələn, bir stp 2187 2x10-12 = 0.000, 000, 000, 002 Hz sabitlik qısa müddətə (allan sapması) malikdir. Eyni zamanda, GPS nəbzi mövcud olduqda, Avr həmişə pwm (tezlik) düzəldəcək. UC hər zaman sayılır … həmişə. Bu o deməkdir ki, ekranda tarix və saatı görməyəcəksiniz. UC 900 -lərdən nümunə götürərkən, bu 900 saniyə məşğul olur. Bütün saatı saymaq lazımdır. Problem, uC 10Mhz -də işləyir. Hər saat sayılmalıdır. Özünü sayır. Yalnız bir saat çatışmırsa, nümunə yaxşı olmayacaq və pwm tənzimlənməsi düzgün olmayacaq. Ekranı hər saniyədə yeniləyə bilmirəm.

Nümunə götürməyə başlayanda. Taymeri saymağa başlayın0. Hər 256 saat bir fasilə yaradır. X reyestri artırılır. dolduqda Y reyestri artırılır və X sıfırlanır və s. Sonda, nəhayət ki, bir gps nəbzi sayılır. Və indi və yalnız indi ekranı yeniləyə və pwm hesablanması üçün bir az riyaziyyat edə bilərəm.

bilə -bilə, vaxtımı və ya digərini oxumaq və göstərmək üçün cəmi 25, 6 us (fasilədən əvvəl 256 saat) vaxtım var. Bu mümkün deyil. Bir fasilə 2 deyil, tamponlu ola bilər. 1000 -lərdən sonra vaxtı təzələyə bilərdim … ancaq 15, 16 dəqiqəlik fasilə ilə vaxt görmək praktik olmayacaq. Vaxtımı bilmək üçün saatım, saatım, cib telefonum var:) 10Mhz arayış edirəm. Saat deyil.

Başqa bir problemim var, bəzi avr təlimatlarında 2 dövr var. Rjmp təlimatı daxil olmaqla. Bu o deməkdir ki, ilk və ya son gps nəbzi 2 dövrəli təlimatla eyni vaxtda gəlsə, uC bir saatı əldən verəcək. Çünki uC fasiləyə başlamazdan əvvəl təlimatı bitirəcək. Beləliklə, sayğac bir dövrədən sonra başlayacaq və ya dayandıracaq. Buna görə vaxt gözləmə döngəsi edə bilmərəm … Amma əslində başqa seçimim yoxdur. Bir yerə dönmək lazımdı !! I Buna görə də rjmp və nop (bu heç nə etmir) təlimatından istifadə edirəm. Nop bir dövrəli təlimatdır. Atmega48 -də bir rjmp üçün 400 nop təlimatı qoydum. 2000 atmega88 və atmega328p versiyasında. İlk və ya son nəbzin rjmp təlimatına uyğun gəlməsi ehtimalı azdır. Bəli, bu mümkündür və əgər bu baş verərsə, bu səhv növbəti seçmədə düzəldiləcəkdir.

Ekran isteğe bağlıdır. Yalnız uC, OCXO və aşağı keçid filtri (müqavimət kondansatörü) ilə dövrə edə bilərsiniz, yandırın və gözləyin. 1 saatdan sonra məqbul tezliyə sahib olacaqsınız. Ancaq 6 -cı mərhələyə çatmaq bir neçə saat çəkir.

Pwm 16 bitdir. 65535 addım. 5v/65535 = 76, 295 uV

OCXO varyasyonu 2Hz 1V -dir. 1v/76, 295uV = 2 hz üçün 13107 addım. 2/13107 = 152.59uHz pwm addım

Mərhələ 5, pwm'yi 3, faza 6 2 -dir. Addım… Niyə 3? çünki 3 tezliyi 15 dəqiqəlik miqyasda 0.000.000.000.000.000 dəyişir. və 4 mənim alqoritmdəki sehrli nömrəmdir. Məsələn, birinci mərhələdə ilk tapılan tezlik 10.000, 003Mhz -dir. 0, 000, 000.4 pillə aşağı düşürəm.

Çox böyük bir addım 10.000003 -dən 10.000001 -ə və 9, 999998Hz -dən sonra keçə bilər. Hədəfi əldən verirəm.

0, 0000004 ilə. 0, 1 -dən daha sürətlidir və bir rəqəmi keçməməyimə daha çox əminəm. Və s. Eyni şeyi 10 saniyə, 60 saniyə və 200s fazası və 900s ilə edirəm. 1000s çalışır rejimindədir və 2 pwm addımını istifadə edin

Unutmayın ki, 5 -ci mərhələyə nail olmaq daha uzun müddətdir. 4 ilə 5 arasındakı boşluq daha böyükdür. Ancaq 5 -dən 6 -ya daha sürətli keçməyə kömək edir.

6 -cı mərhələ tam 10 milyard saydıqda, pwm dəyərləri eepromda saxlanılır. İndi işləmə rejiminin vaxtı gəldi. Bu, 1000 saniyəlik nümunə sayılır, ancaq yalnız 2 pwm ilə. Çalışma rejimində, real tezlik göstərilir və 1000 saniyəlik fasilələrlə yenilənir. Qaçış rejimində siqnal itirilərsə, öz -özünə işləyə bilər. Bu rejimdə pwm dəyişikliyi yoxdur. Siqnal geri qayıtdıqda yenidən sinxronizasiya üçün 5 -ci fazaya qayıdır.

Eeprom saxlanıldıqdan sonra dövrə çıxarılırsa. Bu, eeprom pwm dəyəri ilə açıldıqda 5 -ci mərhələdə başlayacaq.

Eeprom dəyərini silmək üçün başlanğıcdakı düyməni basmaq kifayətdir. Pwm 50% yük olacaq və kalibrləmə 1 -ci mərhələdən başlayacaq.

Fərqli bir şeyi, dövrə konfiqurasiyasını sınamaq üçün çox saat keçirəm. OP amp, tampon və digər çip ilə bir çox testlər etdim. Və sonunda … aldığım ən yaxşı nəticəyə ehtiyac yoxdur. Yalnız yaxşı bir sabit enerji təchizatı və bəzi filtrasiya kondansatörü. Buna görə də bunu sadə saxlayıram.

Addım 1: hissələri satın alın

Parçaları Alın
Parçaları Alın
Parçaları Alın
Parçaları Alın
Parçaları Alın
Parçaları Alın

Ediləcək ilk şey hissələri almaqdır. Çünki tez -tez göndərmə çox uzun olur.

GPS modulu: ublox neo-6m istifadə edirəm. Bunu ebaydan aldım. Axtarış edin, təxminən 7-10 ABŞ dollarına başa gəlir.

Varsayılan olaraq, bu qəbuledicinin saniyədə 1 nəbzi aktivdir. Heç nə etməyimizə ehtiyac yoxdur.

1 Hertz pulse çıxışı olan hər hansı bir GPS modulundan istifadə edə bilərsiniz. Biriniz var. Bundan istifadə et!

OCXO: 2 osilator sınadım. Cüt soba stp2187 12v sinus dalğa çıxışı. Və ISOTEMP 131-100 5V, kvadrat dalğa çıxışı. Hər ikisi ebaydakı radio hissələrindən16 gəlir. Onlardan çox yaxşı bir xidmət aldım və qiymət daha ucuzdu.

AVR: Kod bir az atmega48 -ə uyğundur. Ancaq bir atmega88 və ya atmega328p almağı təklif edirəm. Demək olar ki, eyni qiymətdir. Bunu digikey və ya ebay -dan satın alın. Dip versiyasını istifadə edirəm. Səth montaj versiyasını satın ala bilərsiniz, ancaq diqqət yetirin, sancaqlar sxemlə eyni deyil.

Lcd ekran: Hər hansı bir 4x20 HD44780 uyğun ekran işləyəcək. Haradan aldığımı təxmin et:) Bir neçə il əvvəl ebayda. İndi əvvəlkindən daha bahadır. Ancaq 20 ABŞ dollarının altında mövcuddur.

Bəlkə də yaxın gələcəkdə 2x16 ekran üçün bir kod hazırlayacağam. Bu ekranlar cəmi 4 dollardır. Səninlə mənim aramda 2 sətirlik bir ekran kifayət edər.

Bir AVR ISP Proqramçısı olmalıdır. AVR proqramlaşdırmaq Arduino kimi deyil. Arduino artıq serial portda ünsiyyət qurmaq üçün proqramlaşdırılmışdır. Yeni bir avr ISP və ya Paralel Yüksək Gərginlik Proqramçısı ilə proqramlaşdırılmalıdır. Burada isp istifadə edirik.

74hc04 və ya 74ac0, volt tənzimləyicisi 7812 və 7805, rezistorlar, kondansatör…. digay, ebay

Addım 2: Budur Şematik və Gpsdo_YT_v1_0.hex

Image
Image
Budur Şematik və Gpsdo_YT_v1_0.hex
Budur Şematik və Gpsdo_YT_v1_0.hex
Budur Şematik və Gpsdo_YT_v1_0.hex
Budur Şematik və Gpsdo_YT_v1_0.hex

Düşünürəm ki, bu layihəni həyata keçirmək üçün sxemə ehtiyacınız var. İstəyirsinizsə, aşındırma üsulu olan bir mis örtüklü taxtadan və ya sadəcə delikli taxtadan istifadə edə bilərsiniz.

İstədiyiniz qutudan istifadə edə bilərsiniz, amma metal bir qutu təklif edirəm. Və ya sadəcə mənim kimi əylənmək üçün çörək taxtasında:)

Layihəmi bir qutuya qoymaq üçün anten uzantısı və bnc konnektoru gözləyirəm.

Doğru qoruyucu biti seçməlisiniz. Xarici osilatörün seçildiyinə əmin olun. Xarici Osilatorla probleminiz varsa, Xarici Kristaldan istifadə edin. Və low.ckdiv8 saatı yoxlanılır. Şəkilə baxın. Diqqət yetirin, xarici saat bir az qoruyanda, kodu proqramlaşdırmaq və ya işə salmaq üçün xarici bir saat verməlisiniz. Başqa sözlə, Osilatörü xtal1 pininə bağlayın.

Yeri gəlmişkən … eyni koddan istifadə edərək 1 saniyəlik qapısı olan tezlik sayğacını edə bilərsiniz. Xtal1 pinlə ölçmək üçün saatı daxil edin və +-1 Hz tezlik sayğacınız olacaq.

Yeni şeylər əldə edən kimi layihəni yeniləyəcəyəm.

Bu arada, layihə sizi maraqlandırırsa, məndən əvvəl başlamağa və hətta bitirməyə kifayət qədər materialınız var

2 video yüklədim, birinci və sonuncu mərhələni görə bilərsiniz.

Hər hansı bir sual və ya şərh üçün hazıram. Çox sağ ol.

26 fevral 2017… Versiya 1.1 mövcuddur.

-atmega48 artıq dəstəklənmir. Kifayət qədər yer yoxdur.

-Əlavə edilmiş peyk sayı kilidləndi.

-2x16 lcd dəstəyi. 4x20 varsa, o da işləyəcək. Amma son 2 sətirdə heç nə göstərilməyəcək.

Addım 3: Eepromdakı qeydlər

Eepromda qeydlər
Eepromda qeydlər

İşləmə müddətindən bir neçə saat sonra eeprom tökülməsidir. Bunu necə oxuyacağımı izah edəcəyəm. Yenə də asan:)

00 ünvanında 01 pwm dəyəri saxlanılır. 5 -ci mərhələ 9 milyard sayar sayğac tam olaraq 10 milyarda çatanda pwm dəyəri yenilənir.

5 -ci mərhələdə olduğumuz anda bütün sayımlar pwm dəyərindən sonra eepromda saxlanılır. 02 ünvanından başlayın, 03 -dən sonra və s.

Bu nümunə 5 volt ocxo -dan gəldi. 0x9A73 = 39539 onluq pwm dəyərini 65536 -da oxuya bilərik. = 60, 33% və ya 3.0165 Volt.

Belə ki, 00:01 ünvanı 0x9A73 -dir

Sonra, 03 -ü oxuya bilərsiniz. 9, 000, 000, 003 üçün Pwm 3 -ə endirilir, çünki biz hələ 5 -ci mərhələdəyik.

10, 000, 000.000 pwm qalması üçün toxunulmazdır və qaçış rejiminə keçirik (mərhələ 6)

02 üçün 10, 000, 000.002 Bu vəziyyətdə, pwm dəyəri 2 -dən endirilir

01 üçün 10, 000, 000.001 pwm dəyəri 2 -dən endirildi

01, 10, 000, 000.001 pwm dəyəri üçün 2 -dən yenidən endirildi

10, 000, 000.000 pwm qalmaq üçün 00 toxunulmazdır

10, 000, 000.000 pwm qalmaq üçün 00 toxunulmazdır

10, 000, 000.000 pwm qalmaq üçün 00 toxunulmazdır

İndi eepromu necə oxumağı bilirsiniz. Hər 1000 saniyədə yeni bir dəyər eepromda yazılır. Eeprom dolduqda 2 ünvandan yenidən başlayır.

FF dəyəri 9, 999, 999.999 deməkdir

Bu zibillik ilə heç bir LCD ekran olmadan dəqiqliyi izləyə bilərsiniz.

Eeprom faylını bir isp proqramçısı ilə ata bilərsiniz.

Ümid edirəm sizə kifayət qədər məlumat verdim. Yoxdursa, mənə bildirin. Məsləhət, səhv, hər şey.

Yannick

Tövsiyə: