Программирование синтезаторов частоты ADF
Ханс Вагеманс, ON4CDU
https://on4cdu.net/programming-adf-frequency-synthesizers/
Настройки синтезаторов ADF (частота фазового детектора, выходная частота, ток и т. д.) определяются содержимым ряда регистров в ADF.Содержимое этих регистров для АПД можно рассчитать с помощью программного обеспечения Analog Devices. Это программное обеспечение опубликовано на страницах Analog Devices (Engineering). Например, для АПД 4002: найдите программное обеспечение ADI PLL Int-N, для АПД4351: найдите EVAL-ADF4351 или ADF435x, для АПД5355: найдите EVAL ADF5355.
Программирование АПД с помощью Arduino очень просто. Чтобы не использовать преобразователи уровней, рекомендуется использовать Arduino с напряжением 3,3 В. Arduino с USB-интерфейсом упрощает подключение к компьютеру.
Вот 2 примера:
1) Arduino Leonardo Pro Micro 3,3 вольта
2) PRO-MICRO 3,3 вольта от Diymore
Схема довольно проста. Сигналы Data, LE и CLK используются для заполнения регистров ADF. При включении CE (= Chip Enable) ADF разблокируется. Разъем CE ADF также может быть постоянно подключен к линии 3,3 В.
На схему добавлен светодиод, который загорается во время передачи данных на АПД. Кнопка позволяет перезагрузить Arduino.
Практическая реализация
ADF5355
Микросхема ADF5355 имеет 13 32-битных регистров. Регистры заполняются один за другим: сначала регистр 12, затем регистр 11 и так далее до регистра 0. Для заполнения этих регистров 32 бита данных (линия данных) подаются на 32-битный сдвиговый регистр ADF по каждому восходящему фронту тактового сигнала (CLK). Данные поступают сначала в старший бит (MSB). Передача данных из сдвигового регистра в один из 13 защелок происходит по восходящему фронту сигнала LE (разрешение загрузки).
Программное обеспечение Arduino для программирования синтезатора ADF5355 (опорная частота 26 МГц, Fout = 400 МГц).
// Version 0.1 june 2020 // Простой скетч Arduino для настройки регистров ADF5355. // Комментарии приветствуются на on4cdu'at'uba.be int LEpin = 6, datapin = 8, clkpin = 7, CEpin = 9 ; // Определение пинов данных и тактового сигнала ADF5355 int ledpin = 10; unsigned long Reg00, Reg01, Reg02, Reg03, Reg04, Reg05, Reg06, Reg07, Reg08, Reg09, Reg10, Reg11, Reg12; // define registers void writeregister(unsigned long regword) { // процедура синхронизирует 32-битное слово (регулярное слово) в ADF for (int pos = 32; pos > 0; pos --) { // Регистровое слово имеет 32 бита. if (regword & 0x80000000) { digitalWrite(datapin, HIGH); // записать 1 в регистр ADF } else { digitalWrite(datapin, LOW); // записать 0 в регистр ADF } digitalWrite(clkpin, HIGH); digitalWrite(clkpin, LOW); regword = regword << 1; // поверните влево для следующего бита } digitalWrite(LEpin, HIGH); // защелка в регистровом слове на восходящем фронте LE digitalWrite(LEpin, LOW); } // end writeregister void write13registers() { // записать 13 регистров в ADF digitalWrite(ledpin, HIGH); writeregister(Reg12); writeregister(Reg11); writeregister(Reg10); writeregister(Reg09); writeregister(Reg08); writeregister(Reg07); writeregister(Reg06); writeregister(Reg05); writeregister(Reg04); writeregister(Reg03); writeregister(Reg02); writeregister(Reg01); delay(0.1); writeregister(Reg00); digitalWrite(ledpin, LOW); } void setup () { pinMode(ledpin, OUTPUT); pinMode(clkpin, OUTPUT); pinMode(datapin, OUTPUT); pinMode(CEpin, OUTPUT); pinMode(LEpin, OUTPUT); digitalWrite(ledpin, LOW); digitalWrite(clkpin, LOW); digitalWrite(datapin, LOW); digitalWrite(CEpin, LOW); digitalWrite(LEpin, LOW); delay (500); digitalWrite(CEpin, HIGH); // Установка регистров для Fout= 400MHz и 26MHz опорной частоты. PFD = REF Reg00 = 0x00200F60; Reg01 = 0x02762761; Reg02 = 0x13B20002; Reg03 = 0x00000003; Reg04 = 0x3000BD84; Reg05 = 0x00800025; Reg06 = 0x15802076; Reg07 = 0x120000E7; Reg08 = 0x102D0428; Reg09 = 0x0B0B3CC9; Reg10 = 0x00C0193A; Reg11 = 0x0061300B; Reg12 = 0x0001041C; write13registers(); } void loop() { // пустой главный цикл }Для других ADF синтезаторов программа будет аналогичная. Меняется только количество регистров и их содержимое.
Плата ADF5355 подключена к Arduino.
Материал подготовил Николай Большаков - RA3TOX
Январь 2026
[ На главную ] [ Синтезаторы ]