Pertama kalinya dalam hidup saya, saya menggunakan ini Chip DDS (AD9850) untuk membuat gelombang sinus pada freq yang diinginkan, di mana saya upload kode tabel dan freq diinginkan. perintah melalui dengan micro-controller. Jadi pengetahuan saya saat ini sangat terbatas.
Masalahnya tampaknya baik-baik saja sejauh ini tetapi masalahnya adalah pada frekuensi yang sangat rendah. Pada 1Hz dan bahkan 0,5Hz tampaknya baik-baik saja. Tapi saya juga perlu turun ke 0.1Hz.
Ini adalah output DDS ketika saya mengirim angka 0,1 ke DDS melalui pengontrol mikro:
Dalam kode saya, saya mengirim perintah dari PC ke mikro sebagai string dan mengubahnya menjadi dua kali lipat. Tetapi untuk kesederhanaan dan untuk memverifikasi saya menggunakan kode ini , dan untuk 0,1 Hz saya mengatur sendFrequency (0,1) dalam loop.
Tetapi seperti yang Anda lihat, waktunya sekitar 11,5 detik, bukan 10 detik untuk perintah 0,1 Hz.
Saya harap saya bisa menjelaskan masalah ini dengan baik. Apakah ada cara untuk mengkalibrasi atau menyempurnakan ini sehingga saya akan mendapatkan hasil yang lebih akurat? Atau saya harus hidup dengan akurasi? Btw di mana dalam lembar data orang bisa merujuk pada ketidakpastian relatif seperti itu?
Jawaban:
Ini bukan hal yang akurat - resolusi itu.
Bagian depan lembar data menentukan resolusi tuning 0,0291Hz dengan jam 125MHz.
Jadi itu sekitar 30% dari frekuensi output yang Anda inginkan. Itu berasal dari hasil menambahkan LSB dari kata tuning ke akumulator fase pada 125MHz- untuk frekuensi clock yang diberikan, itu melekat pada chip dan jumlah bit yang mereka pilih untuk akumulator fase dan kata tuning.
Anda dapat mencoba mengurangi frekuensi clock - minimum adalah 1MHz sehingga Anda harus dapat meningkatkan resolusi lebih dari dua urutan besarnya, menjadi sekitar +/- 0,23% pada 0,1Hz.
Sayangnya, hal-hal lain harus berubah untuk kinerja yang optimal (terutama filter keluaran- yang biasanya merupakan filter LC elips urutan ke-7 pada modul-modul ini).
Jika Anda tidak perlu pergi ke atas, katakanlah, 1Hz, Anda cukup menambahkan filter RC dengan cutoff, katakanlah, 100Hz ke output yang ada dan itu akan dapat diterima untuk banyak tujuan.
sumber
Apa yang Anda cari pada lembar data adalah resolusi penyetelan frekuensi. Untuk chip ini adalah 0,0291 Hz untuk input clock referensi 125 MHz. Frekuensi Anda akan dibulatkan ke kelipatan angka ini. Nomor ini didasarkan pada frekuensi input clock dari chip.
Misalnya, 0,1 Hz akan dibulatkan menjadi 0,0873 Hz (0,0291 * 3). Periode untuk 0,0873 Hz adalah 11,5 detik yang Anda lihat.
Frekuensi clock input yang lebih rendah akan memberikan akurasi yang lebih tinggi pada frekuensi yang lebih rendah. Jadi jika Anda menginginkan akurasi yang lebih baik pada frekuensi yang lebih rendah maka turunkan frekuensi clock.
sumber