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

Analog Devices AD5932 - Programmable Frequency Scan Waveform Generator

Features:

Programmable frequency profile
Output frequency up to 25 MHz
Preprogrammable frequency profile minimizes number of DSP/microcontroller writes
Sinusoidal/triangular/square wave outputs
Automatic or single pin control of frequency stepping
Power-down mode: 20 μA
Power supply: 2.3 V to 5.5 V

***

AD5932 - Test circuit
AD5932 - тестова схема

AD5932 - LZ2WSG module

AD5932 - LZ2WSG module
LZ2WSG AD5932 module

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

В библиотеката е реализирано САМО установяване на една постоянна изходна честота. Функциите за сканиращ режим не са реализирани напълно: време, брой междинни честоти са зададени по подразбиране или са private и нямат възможност за външен контрол (засега).

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

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

Поради липса на монолитен опорен генератор 50 MHz, на тестовия модул съм сглобил еднотранзисторен осцилатор с честота 50,075 MHz (5-ти х-к), зададена от руски кварцов резонатор РГ-05 (подарък от LZ2PT, SK). Температурната стабилност на честотата на DDS е достатъчна за работа в късовълновите диапазони.

***

Library constructor:

AD5932(uint8_t, uint8_t, uint8_t, uint8_t);

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

***

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

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

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

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

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

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

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

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

void set_waveform(uint8_t wave);
избор на форма на изходния сигнал

wave = SINE
синусоидален изходен сигнал (по подразбиране)

wave = TRIANGLE
триъгълен изходен сигнал

***

Пример 1: Прост VFO генератор за един обхват
ad5932_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-трансиверче.

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

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

AD5932 - Simple VFO

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

Препратки и материали:
1. AD5932, Analog Devices - Programmable Frequency Scan Waveform Generator [pdf][605kb]
2. Application Note AN-1044, Analog Devices - Programming the AD5932 for Frequency Sweep and Single Frequency Outputs by Liam Riordan[pdf][208kb]
3. ADIsimDDS (Direct Digital Synthesis), AD5932
4. AD7C AD9850 DDS VFO, www.ad7c.com

5. Routinen zur Ansteuerung des AD5932 DDS-Chips, www.mikrocontroller.net

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