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 под 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 година