Arduino библиотека за управление на AD9850 / AD9850 Arduino Library
/kn34pc.com/справочник/...

Analog Devices AD9850 - CMOS, 125 MHz Complete DDS Synthesizer

Features:

- 125 MHz Clock Rate
- On-Chip High Performance DAC and High Speed Comparator
- DAC SFDR > 50 dB @ 40 MHz AOUT
- 32-Bit Frequency Tuning Word
- Simplified Control Interface: Parallel Byte or Serial Loading Format
- Phase Modulation Capability
- 3,3 V or 5 V Single-Supply Operation
- Low Power: 380 mW @ 125 MHz (5 V)
- Low Power: 155 mW @ 110 MHz (3,3 V)
- Power-Down Function

***


AD9850, China module - принципна електрическа схема




AD9850, China module


AD9850 - тестова схема

Библиотека за управление на AD9850 под Arduino / AD9850 Arduino Library:
ad9850_lib_v0.2.zip

Тестовият Arduino sketch е за една постоянна изходна честота: (напр. 10 000 000 Hz).

AD9850 и AD9851 са еднакви по управление. Разликата между двата DDS-а е в множителя REFCLK Multiplier, който за AD9850 е равен на 1 (максимална честота на опорния генератор Fmclk max = 125 MHz), а при AD9851 е равен на 6 (максимална честота на опорния генератор Fmclk max = 30 MHz х 6 = 180 MHz) => следва DDS се различават и по своята максимална възможна изходна честота. За AD9850: Fmax = 125/2 = 62,5 MHz, а за AD9851: Fmax = 180/2 = 90 MHz, но имайки предвид параметрите на изходния сигнал, би било добре изходната честота да не превишава Fmclk/3 [2] - за AD9850: Fmax = 125/3 = 41,6 MHz, за AD9851: Fmax = 180/3 = 60 MHz.

За AD9850 и AD9851 бих могъл да използвам една библиотека на управление, но в конструкциите си искам да диференцирам управлението на двата DDS чипа. Затова предпочитам библиотеките да са отделни.

***

Library constructor:

AD9850(uint8_t, uint8_t, uint8_t);

Arduino изводи към FQ_UD, W_CLK, D7 на AD9850

***

Публични процедури:

void init(uint32_t xt);
инициализация на библиотеката

xt - честота на опорния кварцов генератор, в Hz (напр. 125000000 Hz)

void set_freq(uint32_t frequency);
установяване на изходната честота

frequency = 0 ... Fxtal/2, в Hz (0 ... 62500000 Hz)

void power_control(uint8_t state);
режим, изходно състояние

state = 0
power-down, DDS не работи, изходът е изключен

state = 1
power-up, DDS работи, изходът е включен (по подразбиране)

***

Пример 1: VFO генератор за два обхвата
ad9850_lcd_enc_80m_20m.zip

- VFO генератор за два обхвата: 80m: (3,500 ... 3,800) MHz и 20m: (14,000 ... 14,350) MHz
- с/без корекция на честотата с +/- IF (хетеродинен приемник / приемник с пряко преобразуване)
- механичен енкодер с 20 стъпки/оборот с бутон
- стъпки на изменение на честотата: 1 kHz, 500 Hz, 50 Hz
- "кръгово" превключване на стъпките: с кратко задържане бутона на енкодера: 1 kHz -> 500 Hz -> 50 Hz -> 1 kHz ...
- "кръгово" превключване на обхватите: с дълго задържане бутона на енкодера: 80m -> 20m -> 80m ...
- изходен сигнал за управление на реле/релета при превключване на обхватите: лог. 0 - 80m, лог. 1 - 20m

***

За тест съм избрал VFO генератор за QRP на два обхвата: 80m и 20m с междинна честота IF = 9001500 Hz (кв. филтър XF-9B):

Fhet 80m = IF - Fin = (5501500 ... 5201500) Hz
Fhet 20m = IF + Fin = (23001500 ... 23351500) Hz

При това разпределение на честотите, превключване LSB/USB в BFO не е необходимо (за 80m: LSB, за 20m: USB). За BFO използвам един кварцов резонатор (в случая: с честота 9001500 Hz).

Двата обхвата, границите им, междинната честота, математическата функция между Fприемник/Fхетеродин/Fмеждинна честота, стъпките на енкодера и др. в програмния код са примерни. Конструкцията е подходяща за сигнал-генератор, хетеродин, QRP и др.

Добре би било в изхода да се добави допълнителен нископропускащ филтър и буфер/усилвател към смесителя.


AD9850, пример 1 - VFO генератор за два обхвата

Забележка: Програмният код (или части от него) е за некомерсиално използване!

Препратки и материали:
1. AD9850, Analog Devices - CMOS, 125 MHz Complete DDS Synthesizer [pdf][346kb]
2. ADIsimDDS (Direct Digital Synthesis), AD9850
3. AD7C AD9850 DDS VFO, www.ad7c.com
4. Homebrew Radio JA2NKD
5. JA2GQP’s Blog
6. AD9850 module sch [jpg][164kb]
7. AD9850 module pcb [jpg][303kb]
8. Arduino библиотека за управление на AD9851, kn34pc.com

LZ2WSG, Силистра
15 октомври 2018 година