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 под 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, пример 1 - прост 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 година