Daftar Isi:

GPSDO YT, Frekuensi Referensi Oscillator 10Mhz Disiplin. Biaya rendah. Akurat.: 3 Langkah
GPSDO YT, Frekuensi Referensi Oscillator 10Mhz Disiplin. Biaya rendah. Akurat.: 3 Langkah

Video: GPSDO YT, Frekuensi Referensi Oscillator 10Mhz Disiplin. Biaya rendah. Akurat.: 3 Langkah

Video: GPSDO YT, Frekuensi Referensi Oscillator 10Mhz Disiplin. Biaya rendah. Akurat.: 3 Langkah
Video: SDG #07 Symmetricom GPSDO - 10MHz Frequency Reference - Part 1 2024, Juli
Anonim
GPSDO YT, Frekuensi Referensi Oscillator 10Mhz Disiplin. Biaya rendah. Tepat
GPSDO YT, Frekuensi Referensi Oscillator 10Mhz Disiplin. Biaya rendah. Tepat
GPSDO YT, Frekuensi Referensi Oscillator 10Mhz Disiplin. Biaya rendah. Tepat
GPSDO YT, Frekuensi Referensi Oscillator 10Mhz Disiplin. Biaya rendah. Tepat
GPSDO YT, Frekuensi Referensi Oscillator 10Mhz Disiplin. Biaya rendah. Tepat
GPSDO YT, Frekuensi Referensi Oscillator 10Mhz Disiplin. Biaya rendah. Tepat

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

BERHENTI BERHENTI BERHENTI BERHENTI BERHENTI BERHENTI BERHENTI BERHENTI BERHENTI

Ini adalah proyek usang.

Sebagai gantinya, periksa versi tampilan lcd 2x16 baru saya yang tersedia di sini:

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

Saya meninggalkan versi lama di sini untuk dokumentasi.

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

Halo kawan-kawan, Apa itu GPSDO? GPSDO berarti: Osilator disiplin GPS. GPS untuk sistem penentuan posisi global. Semua satelit GPS dilengkapi dengan jam atom yang disinkronkan. Modul GPS menerima sinyal ini dari beberapa satelit. Dan dengan triangulasi, dia tahu lokasinya. Namun disini yang menarik bagi kami adalah pulsa per detik yang terdapat pada modul tersebut. Dengan pulsa yang tepat ini (dari jam atom), kita dapat melakukan osilator yang sangat sangat akurat. Untuk apa ? Untuk referensi, untuk kalibrasi penghitung frekuensi atau hanya untuk bersenang-senang memilikinya di labnya.

Mereka banyak skema di internet. Saya telah mencoba beberapa. Beberapa bagus, satu dengan tiny2313 adalah 5 hertz terlalu lambat. Tapi milikku adalah yang paling sederhana, berguna dan nyaman. Dan saya memberi Anda kode.hex. Mereka tidak VCO dan tidak ada pembagi. Sirkuit dengan VCO berjalan dengan baik. Tapi, itu harus memiliki sinyal pulsa 10khz atau lebih terus menerus. Jika antena terlalu lemah, pulsa hilang atau tidak ada pulsa sama sekali, Oscillator (ocxo) berjalan dengan sendirinya dan VFC (Voltage Frequency Control) tidak akurat lagi. Umpan balik VCO membutuhkan frekuensi referensi untuk tetap bertahan. Jika tidak, Ini bervariasi dari 1 hingga 2 Hertz! Selain itu, modul gps yang lebih murah tidak berfungsi dalam konfigurasi ini. Kita harus memiliki minimal 10khz untuk membuat VCO. Saya mencoba dengan 1000 hertz. Kesenjangannya terlalu besar. Frekuensinya bervariasi. Jadi dengan ublox neo-6m Anda tidak dapat melakukan vco gpsdo yang bagus karena frekuensi output maksimum adalah 1000Hz. Anda harus membeli neo-7m atau lebih tinggi.

Beginilah cara kerja GPSDO YT saya. Kontroler menemukan penyesuaian yang baik untuk OCXO apa pun dengan vfc 0 hingga 5v. Jika kita kehilangan sinyal GP, frekuensi tidak bergerak sama sekali. Ketika sinyal muncul kembali, pengontrol mengambil nilai bagus terakhir yang diketahui dan melanjutkan seperti sebelumnya. Pada ruang lingkup, dengan osilator referensi. Kami tidak tahu kapan sinyal itu hilang atau kapan kembali. Sinyalnya sama.

Setelah kalibrasi, Anda dapat menggunakan gpsdo tanpa antena jika Anda mau. Beberapa gunung kemudian Anda akan memiliki penyimpangan yang sangat kecil. Tetapi…. seberapa besar? Sudah waktunya untuk beberapa penjelasan.

Berikut ini beberapa Matematika… Matematika mudah, ikuti saya dengan ini mudah. Sejauh ini algoritma memiliki 6 fase. Setiap fase mengambil sampel 1 hingga 1000 detik, menemukan penyesuaian pwm yang baik dan pergi ke sampel yang paling lama untuk akurasi lebih.

Akurasi = (((Jumlah detik x 10E6) + 1)/jumlah detik) - 10E6

Fase 1, sampel 1 detik untuk 10.000, 000 hitungan untuk akurasi +- 1 Hz

fase 2, sampel 10 detik untuk 100.000, 000 hitungan untuk akurasi +-0,1Hz

Fase 3, sampel 60 detik untuk 600.000, 000 hitungan untuk akurasi +-0,016666 Hz

Fase 4, 200 detik Sampel untuk 2.000, 000, 000 hitungan untuk akurasi +-0,005 Hz

Sampel fase 5, 900 detik untuk 9.000.000, 000 hitungan untuk akurasi +-0,001111 Hz

Fase 6, sampel 1000 detik selama 10 miliar hitungan untuk akurasi +-0,001 Hz

Kasus terburuk. Ketika kita mendapatkan fase 6. Angka ini dapat berubah sedikit setiap 1000 detik atau tidak. suatu saat akan menjadi 10.000, 000, 001 atau 9, 999, 999, 999 Jadi, +atau - 0, 000, 000.001 variasi untuk 1000 detik. Sekarang kita harus mengetahui nilai 1 detik.

10Mhz = 1 detik

Untuk 1 detik = 10.000, 000, 001 hitungan/1000s = 10.000, 000.001 Hz (kasus terburuk selama 1 detik)

10.000, 000.001 - 10.000, 000 = 0,001 Hz/s lebih cepat atau lebih lambat

0,001Hz X 60 X 60 X24 X365 = 31536 Hz/tahun

Jadi ingat, 10Mhz adalah 1 detik, 31536Hz X 1 / 10E6 = 0, 0031536 detik/ tahun

Metode lain yang lebih cepat untuk perhitungan. satu miss untuk 10E9Mhz adalah 1/10E9= 1E-10

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

Apakah itu cukup akurat untuk Anda?

namun, Anda harus memiliki OXCO yang baik. Saya lebih suka Double Oven 12v keluaran Sinus. Lebih stabil, tenang dan akurat. Tetapi saya memiliki hasil yang sama dengan 5V sederhana. Sebagai contoh, sebuah stp 2187 memiliki stabilitas waktu singkat (allan deviasi) sebesar 2x10-12 = 0,000, 000, 000, 002 Hz stabilitas. Pada saat yang sama, ketika pulsa gps tersedia, avr akan selalu mengoreksi pwm (frekuensi). UC selalu menghitung… selalu. Ini berarti bahwa pada layar Anda tidak akan melihat tanggal dan waktu. Ketika UC mengambil sampel 900-an, yang ini sibuk selama 900 detik. Itu harus menghitung semua jam. Masalahnya adalah UC berjalan pada 10Mhz. Setiap jam harus dihitung. Itu menghitung sendiri. Jika hanya satu jam yang hilang, sampel tidak akan baik dan penyesuaian pwm tidak akan tepat. Saya tidak dapat menyegarkan tampilan setiap detik.

Saat pengambilan sampel dimulai. Uc mulai menghitung timer0. Setiap 256 jam menghasilkan gangguan. Register X bertambah. ketika sudah penuh register Y bertambah dan X direset ke 0 dan seterusnya. Pada akhirnya, pada satu pulsa gps terakhir, hitungan dihentikan. Dan sekarang dan hanya sekarang saya dapat memperbarui tampilan dan melakukan beberapa matematika untuk perhitungan pwm.

mengetahui bahwa, saya hanya memiliki 25, 6 kami (256 jam sebelum interupsi) untuk membaca dan menampilkan waktu atau lainnya. Tidak mungkin. Satu interupsi bisa di-buff, bukan 2. Saya bisa me-refresh waktu setelah 1000 detik… tapi tidak praktis untuk melihat waktu dengan interval 15, 16 menit. Saya punya arloji, jam, ponsel untuk mengetahui waktu:) Saya sedang melakukan referensi 10Mhz. Bukan jam.

Masalah lain yang saya miliki, beberapa instruksi avr memiliki 2 siklus. Termasuk instruksi rjmp. Ini berarti jika pulsa gps pertama atau terakhir muncul bersamaan dengan instruksi 2 siklus, UC akan melewatkan satu jam. Karena UC akan menyelesaikan instruksi sebelum memulai interupsi. Jadi penghitung akan memulai atau menghentikan satu siklus nanti. Jadi saya tidak bisa melakukan time wait loop… Tapi nyatanya, saya tidak punya pilihan lain. Saya perlu mengulang di suatu tempat!! Saya Jadi saya menggunakan instruksi rjmp dan nop (ini tidak melakukan apa-apa). Tidak adalah instruksi satu siklus. Saya telah menempatkan 400 instruksi nop untuk satu rjmp di atmega48. 2000 pada versi atmega88 dan atmega328p. Jadi kemungkinannya lebih kecil untuk pulsa pertama atau terakhir datang pada instruksi rjmp. Tapi ya itu mungkin dan jika ini terjadi, kesalahan ini akan diperbaiki pada pengambilan sampel berikutnya.

Tampilan adalah opsional. Anda dapat melakukan rangkaian dengan, UC, OCXO dan filter low-pass (kapasitor resistor) saja, hidupkan dan tunggu. Setelah 1 jam Anda akan memiliki frekuensi yang dapat diterima. Namun untuk mencapai fase 6. Dibutuhkan beberapa jam.

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

Variasi OCXO adalah 2Hz kali 1V. 1v/76, 295uV = 13107 langkah untuk 2 hz. 2/13107 = 152,59uHz dengan langkah pwm

Fase 5, mengubah pwm dengan 3, fase 6 adalah 2. langkah… Mengapa 3 ? karena 3 berubah frekuensi sebesar 0,000, 000, 000, 4 pada skala 15 menit. dan 4 adalah angka ajaib saya dalam algoritma saya. Misalnya, jika pada fase satu, frekuensi pertama yang ditemukan adalah 10.000,003Mhz. Saya turunkan sebesar 0, 000, 000,4 langkah.

Langkah yang terlalu besar dapat melewati 10.000003 hingga 10.000001 dan setelah 9,99998Hz. Aku kehilangan target.

Dengan 0, 0000004. Ini lebih cepat dari 0, 1 dan saya lebih yakin untuk tidak melewati angka. Dan seterusnya. Saya melakukan hal yang sama dengan 10 detik, 60 detik dan fase 200-an dan 900-an. 1000s sedang menjalankan mode dan menggunakan langkah pwm 2

Harap dicatat bahwa fase 5 lebih lama untuk dicapai. Kesenjangan antara 4 dan 5 lebih besar. Tapi itu membantu untuk lulus dari 5 ke 6 lebih cepat.

Ketika fase 6 telah menghitung tepat 10 miliar, nilai pwm disimpan di eeprom. Sekarang, saatnya untuk menjalankan mode. Yang ini menghitung sampel 1000 detik tetapi hanya dengan 2 langkah pwm. Pada mode berjalan, frekuensi nyata ditampilkan dan diperbarui pada interval 1000 detik. Jika sinyal hilang dalam mode berjalan, sinyal tersebut lolos dalam mode berjalan sendiri. Tidak ada perubahan pwm dalam mode ini. Ketika sinyal kembali, ia kembali ke fase 5 untuk sinkronisasi ulang.

Jika sirkuit dicabut setelah eeprom disimpan. Yang ini akan dimulai pada fase 5 saat dihidupkan dengan nilai eeprom pwm.

Untuk menghapus nilai eeprom, cukup tekan tombol di saat start-up. Pwm 50% akan dimuat dan kalibrasi akan dimulai dari fase 1.

Saya menghabiskan waktu berjam-jam untuk mencoba hal yang berbeda, konfigurasi sirkuit. Saya melakukan banyak tes, dengan OP amp, buffer dan chip lainnya. Dan pada akhirnya… hasil terbaik yang saya dapatkan tidak membutuhkannya. Hanya catu daya stabil yang baik dan beberapa kapasitor penyaringan. Jadi saya tetap sederhana ini.

Langkah 1: Beli Suku Cadang

Beli Suku Cadang
Beli Suku Cadang
Beli Suku Cadang
Beli Suku Cadang
Beli Suku Cadang
Beli Suku Cadang

Hal pertama yang harus dilakukan adalah membeli suku cadang. Karena seringkali pengiriman sangat sangat lama.

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

Secara default, receiver ini mengaktifkan 1 pulsa per detik. Kita tidak perlu melakukan apapun.

Anda dapat menggunakan modul gps apa pun dengan output pulsa 1 Hertz. Kamu memiliki satu. Gunakan itu!

OCXO: Saya mencoba 2 osilator. Output gelombang sinus stp2187 12v oven ganda. Dan ISOTEMP 131-100 5V, output gelombang persegi. Keduanya berasal dari radioparts16 di ebay. Saya mendapat layanan yang sangat baik dari mereka dan harganya lebih murah.

AVR: Kode muat di atmega48 kecil. Tapi saya sarankan untuk membeli atmega88 atau atmega328p. Harganya hampir sama. Beli ini di digikey atau ebay. Saya menggunakan versi celup. Anda dapat membeli versi pemasangan permukaan, tetapi perhatikan, pin tidak sama dengan skema.

Layar LCD: Semua layar yang kompatibel dengan HD44780 4x20 akan berfungsi. Tebak di mana saya membeli milik saya:) Ya di ebay beberapa tahun yang lalu. Sekarang lebih mahal dari sebelumnya. Tapi tersedia di bawah $20 US.

Mungkin dalam waktu dekat, saya akan membuat kode untuk tampilan 2x16. Pajangan itu hanya 4$. Dan antara Anda dan saya, tampilan 2 baris sudah cukup.

Anda harus memiliki Programmer ISP AVR. Memprogram AVR tidak seperti Arduino. Arduino telah diprogram untuk berkomunikasi pada port serial. Sebuah avr baru harus diprogram dengan ISP atau Parallel High Voltage Programmer. Kami menggunakan ISP di sini.

Sebuah 74hc04 atau 74ac0, regulator volt 7812 dan 7805, resistor, kapasitor…. digikey, ebay

Langkah 2: Inilah Skema dan Gpsdo_YT_v1_0.hex

Image
Image
Ini Skema dan Gpsdo_YT_v1_0.hex
Ini Skema dan Gpsdo_YT_v1_0.hex
Ini Skema dan Gpsdo_YT_v1_0.hex
Ini Skema dan Gpsdo_YT_v1_0.hex

Saya pikir skema adalah semua yang Anda butuhkan untuk mewujudkan proyek ini. Anda dapat menggunakan papan berlapis tembaga dengan metode etsa atau hanya papan berlubang jika Anda mau.

Anda dapat menggunakan kotak apa pun yang Anda inginkan, tetapi saya menyarankan kotak logam. Atau hanya di papan tempat memotong roti untuk bersenang-senang seperti saya:)

Saya sedang menunggu perpanjangan antena dan konektor bnc untuk memasukkan proyek saya ke dalam kotak.

Anda harus memilih bit sekering yang tepat. Pastikan bahwa osilator eksternal dipilih. Jika Anda mengalami masalah dengan External Oscillator, coba External Crystal. Dan jam low.ckdiv8 tidak dicentang. Lihat gambar. Perhatikan, ketika jam eksternal sekering sedikit, Anda harus menyediakan jam eksternal untuk memprogram atau menjalankan kode. Dengan kata lain, sambungkan Osilator di pin xtal1.

Omong-omong… Anda dapat menggunakan kode yang sama untuk melakukan penghitung frekuensi dengan gerbang 1 detik. Cukup masukkan jam yang akan diukur dalam pin xtal1 dan Anda akan memiliki penghitung frekuensi +-1 Hz.

Saya akan memperbarui proyek segera setelah saya memiliki hal-hal baru.

Sementara itu, jika proyek itu menarik minat Anda, Anda memiliki cukup bahan untuk memulai dan bahkan menyelesaikannya sebelum saya

Saya mengunggah 2 video, Anda dapat melihat fase satu dan yang terakhir.

Saya tersedia untuk pertanyaan atau komentar apa pun. Terima kasih.

26 Februari 2017…. Versi 1.1 tersedia.

-atmega48 tidak didukung lagi. Tidak cukup ruang.

-Menambahkan jumlah satelit yang terkunci.

-Dukungan 2x16 lcd. Jika Anda memiliki 4x20, akan bekerja juga. Tetapi 2 baris terakhir tidak akan menampilkan apa pun.

Langkah 3: Masuk ke Eeprom

Masuk ke Eeprom
Masuk ke Eeprom

Ini adalah dump eeprom setelah beberapa jam waktu berjalan. Saya akan menjelaskan cara membaca ini. Sekali lagi, itu mudah:)

Pada alamat 00, 01 disimpan nilai pwm. Begitu tahap 5 menghitung 9 miliar, nilai pwm diperbarui setiap kali penghitung mencapai tepat 10 miliar.

Segera kita berada di fase 5. Semua hitungan disimpan di eeprom setelah nilai pwm. Mulai dari alamat 02, setelah 03 dan seterusnya.

Contoh ini berasal dari ocxo 5 volt saya. Kita dapat membaca nilai pwm dari 0x9A73 = 39539 desimal pada 65536. = 60, 33% atau 3,0165 Volt.

Jadi alamat 00:01 adalah 0x9A73

Selanjutnya bisa dibaca 03. Untuk 9, 000, 000, 003 Pwm diturunkan 3 karena kita masih di fase 5

00 untuk 10.000, 000.000 pwm tetap tidak tersentuh dan kami lolos ke mode berjalan (fase 6)

02 untuk 10.000, 000.002 Dalam hal ini, 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 menginap tidak tersentuh

00 untuk 10.000, 000.000 pwm menginap tidak tersentuh

00 untuk 10.000, 000.000 pwm menginap tidak tersentuh

Sekarang Anda tahu cara membaca eeprom. Setiap 1000 detik nilai baru ditulis dalam eeprom. Ketika eeprom penuh, restart dari alamat 2.

Nilai FF berarti 9, 999, 999,999

Anda dapat dengan dump ini melacak akurasi, tanpa layar LCD.

Anda dapat membuang file eeprom dengan programmer ISP.

Saya harap saya memberi Anda informasi yang cukup. Jika tidak, beri tahu saya. Saran, kesalahan, apa saja.

Yannick

Direkomendasikan: