Arduino библиотека за управление на AD9835 / AD9835 Arduino Library
/kn34pc.com/справочник/...
Analog
Devices AD9835 - 50 MHz Direct Digital Synthesizer, Waveform Generator
Features:
- 50 MHz speed
- On-chip COS lookup table
- 10-bit DAC
- Serial loading
- Power-down option
- 200 mW power consumption
***
Честотата на опорния кварцов генератор е 50 MHz, но поради липса на такъв експериментите си проведох с кварцов генератор NKG-3
AXO-20150H с честота 66,666 MHz.
AD9835 функционира нормално и "оувърклокната"
.
Библиотека за управление на AD9835 под Arduino / AD9835 Arduino Library:
ad9835_lib_v0.3.zip
Тестовият Arduino sketch е за една постоянна изходна честота: (напр. 10 000 000
Hz).
AD9832 и AD9835 са еднакви по параметри и управление. Разликата е в максималната честота на опорния генератор Fmclk, която за AD9832 е 25 MHz, а за AD9835 е
50 MHz -> следва те се различават и по максималната възможна изходна честота.
При Fmclk с честота 50 MHz от опорния генератор, максималната изходна честота на DDS AD9835 е около
Fmclk/3 или Fmax = 50/3 = 16,600 MHz (с моя тестов работен кварцов генератор на 66,666 MHz -> Fmax = 22,222 MHz).
Бих могъл да използвам една библиотека на управление, но в
конструкциите си искам да диференцирам управлението на двата DDS чипа. Затова предпочитам библиотеките да са отделни.
***
Library constructor:
AD9835(uint8_t, uint8_t,
uint8_t);
Arduino изводи към FSYNC, CLK, DATA на AD9835
***
Публични процедури:
void init(uint32_t xt);
инициализация на библиотеката
xt - честота на опорния кварцов генератор, в Hz (напр. 50000000 Hz)
void set_freq(uint32_t frequency);
установяване на изходната честота
frequency = 0 ... Fxtal/3, Hz (0 ... 16600000 Hz)
void sleep(uint8_t state);
режим, изходно състояние
state = 0
DDS работи, изходът е включен (по подразбиране)
state = 1
DDS не работи, изходът е изключен
***
Пример 1: Прост VFO генератор за един обхват
ad9835_enc.zip
- VFO генератор на 20m: (14,000 ... 14,350) MHz
- с/без корекция на честотата с +/- IF (хетеродинен приемник / приемник с пряко преобразуване)
- механичен енкодер с 20 стъпки/оборот с бутон
- стъпки на изменение на честотата: 1 kHz, 500 Hz, 50 Hz
- "кръгово" превключване на стъпките: 1 kHz -> 500 Hz -> 50 Hz -> 1 kHz ...
***
За тест съм избрал VFO генератор за приемник на 20m с междинна честота IF =
8998500 Hz (кв. филтър XF-9B): Fhet = IF - Fin -> Fhet =
(5001500 ... 5351500) Hz.
Обхватът, границите му, междинната честота,
математическата функция между Fприемник/Fхетеродин/Fмеждинна
честота, стъпките на енкодера и др. в
програмния код са примерни. Дори в този си опростен вид
конструкцията е подходяща за сигнал-генератор, хетеродин и др.
Добре би било в изхода да се добави нископропускащ филтър,
буфер/усилвател.
AD9835, пример 1 - прост VFO генератор
за един обхват
Забележка: Програмният код (или части от него) е за некомерсиално използване!
Препратки и материали:
1. AD9835, Analog Devices -
50 MHz Direct Digital Synthesizer, Waveform Generator [pdf][735kb]
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), AD9835
5. Kenwood
TS-480HX/480SAT Service Manual, TX-RX unit [jpg][263kb]
6. AD7C AD9850 DDS VFO, www.ad7c.com
7. Arduino библиотека за управление на AD9832,
kn34pc.com
LZ2WSG, Силистра
8 октомври 2018 година