Isi kandungan:

GPSDO YT, Frekuensi Rujukan Oscillator 10Mhz Berdisiplin. Kos rendah. Tepat: 3 Langkah
GPSDO YT, Frekuensi Rujukan Oscillator 10Mhz Berdisiplin. Kos rendah. Tepat: 3 Langkah

Video: GPSDO YT, Frekuensi Rujukan Oscillator 10Mhz Berdisiplin. Kos rendah. Tepat: 3 Langkah

Video: GPSDO YT, Frekuensi Rujukan Oscillator 10Mhz Berdisiplin. Kos rendah. Tepat: 3 Langkah
Video: LFO с синхронизацией - низкочастотный осциллятор со сбросом - со схемой 2024, November
Anonim
GPSDO YT, Frekuensi Rujukan Oscillator 10Mhz Berdisiplin. Kos rendah. Tepat
GPSDO YT, Frekuensi Rujukan Oscillator 10Mhz Berdisiplin. Kos rendah. Tepat
GPSDO YT, Frekuensi Rujukan Oscillator 10Mhz Berdisiplin. Kos rendah. Tepat
GPSDO YT, Frekuensi Rujukan Oscillator 10Mhz Berdisiplin. Kos rendah. Tepat
GPSDO YT, Frekuensi Rujukan Oscillator 10Mhz Berdisiplin. Kos rendah. Tepat
GPSDO YT, Frekuensi Rujukan Oscillator 10Mhz Berdisiplin. Kos rendah. Tepat

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

HENTIKAN HENTIKAN HENTIKAN HENTIKAN HENTIKAN

Ini adalah projek usang.

Sebaliknya periksa versi paparan lcd 2x16 baru saya yang terdapat di sini:

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

Saya meninggalkan versi lama di sini untuk dokumentasi.

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

Hai semua, Apa itu GPSDO? GPSDO bermaksud: Pengayun berdisiplin GPS. GPS untuk sistem penentududukan global. Semua satelit GPS dilengkapi dengan jam atom yang disegerakkan. Modul GPS menerima isyarat ini dari beberapa satelit. Dan dengan triangulasi, dia mengetahui lokasinya. Tetapi di sini, yang menarik bagi kita ialah denyutan sesaat yang terdapat pada modul. Dengan nadi tepat ini (dari jam atom), kita dapat melakukan pengayun yang sangat tepat. Untuk apa ? Sebagai rujukan, untuk penentukuran pembilang frekuensi atau hanya untuk bersenang-senang untuk mendapatkannya di makmalnya.

Mereka banyak skema di internet. Saya telah mencuba beberapa. Ada yang baik, satu dengan2323 kecil 5 hertz terlalu perlahan. Tetapi milik saya adalah yang paling mudah, berguna dan senang. Dan saya memberi anda kod.hex. Mereka bukan VCO dan tidak ada pembahagi. Litar dengan VCO berfungsi dengan baik. Tetapi, ia mesti mempunyai isyarat denyut 10khz atau lebih berterusan. Sekiranya antena terlalu lemah, kehilangan nadi atau tidak ada nadi sama sekali, Oscillator (ocxo) berjalan dengan sendirinya dan VFC (Voltage Frequency Control) tidak lagi tepat. Maklum balas VCO memerlukan kekerapan rujukan untuk terus bertahan. Sekiranya tidak, ia berbeza dari 1 hingga 2 Hertz! Juga, modul gps yang lebih murah tidak berfungsi dalam konfigurasi ini. Kita mesti mempunyai sekurang-kurangnya 10khz untuk membuat VCO. Saya mencuba dengan 1000 hertz. Jurangnya terlalu besar. Kekerapannya berbeza-beza. Oleh itu dengan ublox neo-6m anda tidak dapat melakukan vco gpsdo yang hebat kerana frekuensi output maksimum adalah 1000Hz. Anda mesti membeli neo-7m atau lebih tinggi.

Inilah cara GPSDO YT saya berfungsi. Pengawal mendapati penyesuaian yang baik untuk mana-mana OCXO dengan vfc 0 hingga 5v. Sekiranya kita kehilangan isyarat GP, frekuensi tidak bergerak sama sekali. Apabila isyarat muncul semula, pengawal mengambil nilai terakhir yang diketahui dan diteruskan seperti sebelumnya. Pada ruang lingkup, dengan pengayun rujukan. Kami tidak dapat mengetahui bila isyarat itu hilang atau kapan ia kembali. Isyaratnya sama.

Selepas penentukuran, anda boleh menggunakan gpsdo tanpa antena jika anda mahu. Beberapa pemasangan kemudian anda akan mengalami drift yang sangat sedikit. Tetapi…. berapa besar? Sudah tiba masanya untuk beberapa penjelasan.

Berikut adalah beberapa Matematik … Matematik yang mudah, ikuti saya dengan mudah. Setakat ini algoritma mempunyai 6 fasa. Setiap fasa mengambil sampel 1 hingga 1000 saat, mendapati penyesuaian pwm yang baik dan pergi ke sampel yang paling panjang untuk lebih tepat.

Ketepatan = (((Bilangan detik x 10E6) + 1) / bilangan saat) - 10E6

Contoh fasa 1, 1 saat untuk 10, 000, 000 mengira ketepatan + - 1 Hz

fasa 2, 10 saat sampel untuk 100, 000, 000 kiraan untuk ketepatan + -0.1Hz

Fasa 3, 60 saat sampel untuk 600, 000, 000 kiraan untuk ketepatan + -0.01666 Hz

Fasa 4, 200 saat Contoh untuk 2, 000, 000, 000 kiraan untuk ketepatan + -0.005 Hz

Fasa 5, 900 saat sampel untuk 9, 000, 000, 000 kiraan untuk + -0.001111 Hz ketepatan

Fasa 6, 1000 saat sampel untuk 10 bilion dikira untuk ketepatan + -0.001 Hz

Kes terburuk. Apabila kita mendapat fasa 6. Nombor ini boleh berubah sedikit setiap 1000 saat atau tidak. suatu masa akan menjadi 10, 000, 000, 001 atau 9, 999, 999, 999 Jadi, + atau - 0, 000, 000.001 variasi untuk 1000s. Sekarang kita mesti mengetahui nilai selama 1 saat.

10Mhz = 1 saat

Untuk 1 saat = 10, 000, 000, 001 kiraan / 1000s = 10, 000, 000.001 Hz (keadaan terburuk selama 1 saat)

10, 000, 000.001 - 10, 000, 000 = 0.001 Hz / s lebih pantas atau lebih perlahan

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

Oleh itu, ingat, 10 MHz adalah 1 saat, 31536Hz X 1 / 10E6 = 0, 0031536 saat / tahun

Kaedah lain yang lebih pantas untuk pengiraan. satu ketinggalan 10E9Mhz ialah 1 / 10E9 = 1E-10

1E-10 x 60x60x24x365 = 0, 0031536 saat / tahun.

Adakah itu cukup tepat untuk anda?

namun, anda mesti mempunyai OXCO yang baik. Saya lebih suka keluaran Double Oven 12v Sinus. Lebih stabil, tenang dan tepat. Tetapi saya mempunyai hasil yang sama dengan 5V sederhana. Sebagai contoh, stp 2187 mempunyai kestabilan masa yang singkat (penyimpangan allan) 2x10-12 = 0.000, 000, 000, 002 Hz kestabilan. Pada masa yang sama, apabila nadi gps tersedia, Avr akan sentiasa membetulkan pwm (frekuensi). UC sentiasa dikira … selalu. Ini bermaksud bahawa di paparan anda tidak akan melihat tarikh dan masa. Semasa uC mengambil sampel 900-an, yang ini sibuk selama 900 saat. Ia mesti dikira sepanjang masa. Masalahnya ialah uC berjalan pada 10Mhz. Setiap jam mesti dikira. Ia mengira sendiri. Sekiranya hanya satu jam yang hilang, sampel tidak akan baik dan penyesuaian pwm tidak akan betul. Saya tidak dapat memuat semula paparan setiap saat.

Semasa persampelan dimulakan. Uc mula mengira pemasa0. Setiap jam 256 menghasilkan gangguan. Daftar X bertambah. apabila penuh Y register meningkat dan X ditetapkan semula ke 0 dan seterusnya. Pada akhirnya, pada nadi terakhir satu gps, kiraan dihentikan. Dan sekarang dan hanya sekarang saya dapat mengemas kini paparan dan melakukan beberapa matematik untuk pengiraan pwm.

mengetahui bahawa, saya hanya mempunyai 25, 6 kita (256 jam sebelum mengganggu) untuk membaca dan memaparkan waktu atau yang lain. Itu mustahil. Satu gangguan dapat disangga, bukan 2. Saya dapat menyegarkan masa setelah 1000an … tetapi tidak praktikal untuk melihat masa dengan selang 15, 16 minit. Saya mempunyai jam tangan, jam, telefon bimbit untuk mengetahui masa:) Saya melakukan rujukan 10Mhz. Bukan jam.

Masalah lain yang saya hadapi, beberapa arahan avr mempunyai 2 kitaran. Termasuk arahan rjmp. Ini bermaksud jika nadi gps pertama atau terakhir muncul pada masa yang sama arahan 2 kitaran, uC akan kehilangan satu jam. Kerana uC akan menyelesaikan arahan sebelum memulakan gangguan. Jadi kaunter akan memulakan atau menghentikan satu pusingan kemudian. Oleh itu, saya tidak dapat melakukan penangguhan masa … Tetapi sebenarnya, saya tidak mempunyai pilihan lain. Saya perlu pergi ke suatu tempat !! Oleh itu, saya menggunakan arahan rjmp dan nop (ini tidak melakukan apa-apa). Nop adalah arahan satu kitaran. Saya telah meletakkan arahan 400 nop untuk satu rjmp pada atmega48. 2000 pada versi atmega88 dan atmega328p. Oleh itu, peluang lebih rendah untuk nadi pertama atau terakhir datang pada arahan rjmp. Tetapi ya itu mungkin dan jika ini berlaku, kesalahan ini akan diperbaiki pada persampelan berikutnya.

Paparan adalah pilihan. Anda hanya boleh melakukan litar dengan, uC, OCXO dan penapis lorong rendah (resistor kapasitor) sahaja, hidupkan dan tunggu. Selepas 1 jam anda akan mendapat frekuensi yang boleh diterima. Tetapi untuk mencapai fasa 6. memerlukan beberapa jam.

Pwm ialah 16 bit. 65535 langkah. 5v / 65535 = 76, 295 uV

Variasi OCXO adalah 2Hz oleh 1V. 1v / 76, 295uV = 13107 langkah selama 2 hz. 2/13107 = 152.59uHz mengikut langkah pwm

Fasa 5, mengubah pwm dengan 3, fasa 6 adalah 2. langkah… Mengapa 3? kerana 3 berubah frekuensi sebanyak 0.000, 000, 000, 4 pada skala 15 minit. dan 4 adalah nombor ajaib saya dalam algoritma saya. Sebagai contoh, jika pada fasa satu, frekuensi pertama yang dijumpai ialah 10.000, 003Mhz. Saya turun dengan 0, 000, 000.4 langkah.

Langkah yang terlalu besar boleh dilalui dari 10.000003 hingga 10.000001 dan selepas 9, 999998Hz. Saya kehilangan sasaran.

Dengan 0, 0000004. Lebih cepat daripada 0, 1 dan saya lebih yakin tidak memintas nombor. Dan sebagainya. Saya melakukan perkara yang sama dengan 10 saat, 60 saat dan fasa 200-an dan 900-an. 1000s sedang menjalankan mod dan menggunakan langkah 2 pwm

Harap maklum bahawa fasa 5 lebih panjang untuk dicapai. Jurang antara 4 dan 5 lebih besar. Tetapi ia membantu melewati 5 hingga 6 lebih cepat.

Apabila fasa 6 telah menghitung tepat 10 bilion, nilai pwm disimpan dalam eeprom. Sekarang, sudah tiba masanya untuk mod berjalan. Yang satu ini mengira 1000 saat sampel tetapi dengan 2 langkah pwm sahaja. Pada mod berjalan, frekuensi sebenar dipaparkan dan dikemas kini pada selang 1000 saat. Sekiranya isyarat hilang dalam mod berjalan, ia akan berjalan secara automatik. Tidak ada perubahan pwm dalam mod ini. Apabila isyarat kembali, ia kembali ke fasa 5 untuk menyegerakkan semula.

Sekiranya litar dicabut setelah eeprom disimpan. Yang ini akan bermula pada fasa 5 semasa dihidupkan dengan nilai eeprom pwm.

Untuk menghapus nilai eeprom, cukup tekan butang pada permulaan. Pwm 50% akan dimuat dan penentukuran akan bermula dari fasa 1.

Saya menghabiskan masa berjam-jam untuk mencuba pelbagai perkara, konfigurasi litar. Saya melakukan banyak ujian, dengan OP amp, buffer dan cip lain. Dan pada akhirnya … hasil terbaik yang saya dapat tidak memerlukannya. Cukup bekalan elektrik stabil dan kapasitor penapisan. Oleh itu, saya tetap mudah.

Langkah 1: Beli Bahagian

Beli Bahagian
Beli Bahagian
Beli Bahagian
Beli Bahagian
Beli Bahagian
Beli Bahagian

Perkara pertama yang perlu dilakukan ialah membeli alat ganti. Kerana penghantaran sering sangat lama.

Modul Gps: Saya menggunakan ublox neo-6m. Saya membeli yang ini di ebay. Lakukan carian, harganya sekitar 7 hingga 10 dolar AS.

Secara lalai, penerima ini mengaktifkan 1 denyutan demi detik. Kami tidak perlu melakukan apa-apa.

Anda boleh menggunakan modul gps dengan output nadi 1 Hertz. Awak ada satu. Gunakan itu!

OCXO: Saya mencuba 2 pengayun. Ketuhar gelombang ganda stp2187 12v output gelombang sinus. Dan keluaran gelombang persegi ISOTEMP 131-100 5V. Kedua-duanya berasal dari radioparts16 di ebay. Saya mendapat perkhidmatan yang sangat baik dari mereka dan harganya lebih murah.

AVR: Kod sesuai pada sedikit atmega48. Tetapi saya mencadangkan untuk membeli atmega88 atau atmega328p. Harganya hampir sama. Beli ini di digikey atau ebay. Saya menggunakan versi dip. Anda boleh membeli versi pemasangan permukaan, tetapi perhatikan, pin tidak sama dengan skema.

Paparan lcd: Sebarang paparan serasi 4x20 HD44780 akan berfungsi. Teka di mana saya membeli tambang:) Ya di ebay beberapa tahun yang lalu. Sekarang lebih mahal dari sebelumnya. Tetapi boleh didapati di bawah $ 20 AS.

Mungkin dalam masa terdekat, saya akan membuat kod untuk paparan 2x16. Paparan tersebut hanya 4 $. Dan antara anda dan saya, paparan 2 baris akan mencukupi.

Anda mesti mempunyai Pengaturcara ISP AVR. Memprogram AVR tidak seperti Arduino. Arduino telah diprogramkan untuk berkomunikasi di port bersiri. Avr baru mesti diprogramkan dengan ISP atau Parallel High Voltage Programmer. Kami menggunakan isp di sini.

A 74hc04 atau 74ac0, pengatur volt 7812 dan 7805, perintang, kapasitor…. digikey, ebay

Langkah 2: Inilah Skema dan Gpsdo_YT_v1_0.hex

Image
Image
Inilah Skema dan Gpsdo_YT_v1_0.hex
Inilah Skema dan Gpsdo_YT_v1_0.hex
Inilah Skema dan Gpsdo_YT_v1_0.hex
Inilah Skema dan Gpsdo_YT_v1_0.hex

Saya berpendapat bahawa skematik adalah semua yang anda perlukan untuk merealisasikan projek ini. Anda boleh menggunakan papan berpakaian tembaga dengan kaedah etsa atau hanya papan berlubang jika anda mahu.

Anda boleh menggunakan kotak apa sahaja yang anda mahukan, tetapi saya mencadangkan kotak logam. Atau hanya di papan roti untuk bersenang-senang seperti saya:)

Saya sedang menunggu sambungan antena dan penyambung bnc untuk meletakkan projek saya dalam kotak.

Anda mesti memilih bit fius yang betul. Pastikan pengayun luaran dipilih. Sekiranya anda menghadapi masalah dengan External Oscillator, cubalah External Crystal. Dan jam low.ckdiv8 tidak dicentang. Lihat gambar. Perhatikan, apabila jam luaran menyatu sedikit, anda mesti menyediakan jam luaran untuk memprogram atau menjalankan kodnya. Dengan kata lain, sambungkan Oscillator dalam pin xtal1.

By the way … anda boleh menggunakan kod yang sama untuk melakukan pembilang frekuensi dengan gerbang 1 saat. Cukup masukkan jam untuk diukur dalam xtal1 pin dan anda akan mempunyai pembilang frekuensi + -1 Hz.

Saya akan mengemas kini projek sebaik sahaja saya mendapat barang baru.

Sementara itu, jika projek menarik minat anda, anda mempunyai cukup bahan untuk memulakan dan menyelesaikannya sebelum saya

Saya memuat naik 2 video, anda dapat melihat fasa satu dan yang terakhir.

Saya bersedia untuk sebarang pertanyaan atau komen. Terima kasih.

26 Februari 2017…. Versi 1.1 ada.

-atmega48 tidak disokong lagi. Tidak cukup ruang.

-Bilangan satelit yang dikunci.

-Sokong 2x16 lcd. Sekiranya anda mempunyai 4x20, akan berfungsi juga. Tetapi 2 baris terakhir tidak akan menunjukkan apa-apa.

Langkah 3: Log masuk Eeprom

Log masuk di Eeprom
Log masuk di Eeprom

Inilah pembuangan eeprom setelah beberapa jam dalam masa berjalan. Saya akan menerangkan cara membaca ini. Sekali lagi, senang:)

Di alamat 00, 01 disimpan nilai pwm. Sebaik sahaja fasa 5 mengira 9 bilion, nilai pwm dikemas kini setiap kali kaunter mencapai tepat 10 bilion.

Sebaik sahaja kita berada di fasa 5. Semua kiraan disimpan dalam eeprom selepas nilai pwm. Mulakan di alamat 02, selepas 03 dan seterusnya.

Contoh ini berasal dari ocxo 5 volt saya. Kita boleh membaca nilai pwm 0x9A73 = 39539 perpuluhan pada 65536. = 60, 33% atau 3.0165 Volt.

Jadi alamat 00:01 adalah 0x9A73

Seterusnya, anda boleh membaca 03. Untuk 9, 000, 000, 003 Pwm diturunkan sebanyak 3 kerana kita masih dalam fasa 5

00 untuk 10, 000, 000.000 pwm tinggal tidak dapat disentuh dan kami lulus ke mod berjalan (fasa 6)

02 untuk 10, 000, 000.002 Dalam kes itu, nilai pwm diturunkan dari 2

01 untuk 10, 000, 000.001 nilai pwm diturunkan dari 2

01 untuk 10, 000, 000.001 nilai pwm diturunkan dari 2 lagi

00 untuk 10, 000, 000.000 pwm tinggal tidak dapat disentuh

00 untuk 10, 000, 000.000 pwm tinggal tidak dapat disentuh

00 untuk 10, 000, 000.000 pwm tinggal tidak dapat disentuh

Sekarang anda sudah tahu membaca eeprom. Setiap 1000 saat nilai baru ditulis dalam eeprom. Apabila eeprom penuh, dimulakan semula dari alamat 2.

Nilai FF bermaksud 9, 999, 999.999

Anda boleh menggunakan pembuangan ini dengan tepat, tanpa paparan LCD.

Anda boleh membuang fail eeprom dengan pengaturcara isp.

Saya harap saya memberi anda maklumat yang mencukupi. Sekiranya tidak, beritahu saya. Nasihat, kesilapan, apa sahaja.

Yannick

Disyorkan: