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

Analog Devices AD9832 - 25 MHz Direct Digital Synthesizer, Waveform Generator

Features:

- 25 MHz speed
- On-chip SIN lookup table
- 10-bit DAC
- Serial loading
- Power-down option
- 200 mW power consumption

***


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




LZ2WSG AD9832 module

Библиотека за управление на AD9832 под Arduino / AD9832 Arduino Library:
ad9832_lib_v0.3.zip

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

AD9832 и AD9835 са еднакви по параметри и управление. Разликата е в максималната честота на опорния генератор Fmclk, която за AD9832 е 25 MHz, а за AD9835 е 50 MHz -> следва те се различават и по максималната възможна изходна честота.

При Fmclk с честота 25 MHz от опорния генератор, максималната изходна честота на DDS AD9832 е около Fmclk/3 или Fmax = 25/3 = 8,300 MHz.

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

***

Library constructor:

AD9832(uint8_t, uint8_t, uint8_t);

Arduino изводи към FSYNC, CLK, DATA на AD9832

***

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

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

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

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

frequency = 0 ... Fxtal/3, в Hz (0 ... 8300000 Hz)

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

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

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

***

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

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

***

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

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

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


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

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

Препратки и материали:
1. AD9832, Analog Devices - 25 MHz Direct Digital Synthesizer, Waveform Generator [pdf][558kb]
2. Application Note AN-621, Analog Devices - Programming the AD9832/AD9835[pdf][208kb]
3. Application Note AN-1108, Analog Devices - AD9832/AD9835 Programming Examples by Liam Riordan [pdf][315kb]
4. ADIsimDDS (Direct Digital Synthesis), AD9832
5. AD7C AD9850 DDS VFO, www.ad7c.com
6. Arduino библиотека за управление на AD9835, kn34pc.com

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