Автор Тема: Управление гетеродином на основе ADF4350/ADF4351  (Прочитано 20556 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн GM

  • Старожил
  • ****
  • Сообщений: 201
  • Репутация: +45/-9
  • QRA: KO85SK
Re: Управление гетеродином на основе ADF4350/ADF4351
« Ответ #75 : 23 Февраль 2022, 16:59:18 »
Владимир, документация прекрасно оформлена, мне бы так научиться. Однако, на мой взгляд представленная программа 5Р1 не совсем рабочая по следующей причине. В соответствии с техническим описанием запись всех регистров R0-R5 должна заканчиваться записью в регистр R0. У вас этого нет.

Давайте разберем, что на самом деле происходит в программе. Перво-наперво вы выставляете частоту 2100 МГц, но она не будет генериться, так как регистр R0 выдается не последним. Затем программа в бесконечном цикле ОДИН раз вызывается с набором частот, скажем, из table2. Первым опять записывается регистр R0. Как только он будет записан, должна бы начать генериться частота 2100 МГц (table1), которая не соответствует положению переключателя, указывающего на table2. Да и остальные регистры R1-R5 и FRAC из R0, не соответствуют первому R0, так что 2100 тоже не будет.

Проблему легко разрешить, если для всех частот регистры записать в обратном порядке. То есть запись должна быть R5-R4-R3-R2-R1-R0, а не так как у вас R0-R1-R2-R3-R4-R5.
Делать надо сразу хорошо, а плохо - само получится.

Оффлайн R3GC Владимир

  • Ветеран
  • *****
  • Сообщений: 3264
  • Репутация: +622/-83
Re: Управление гетеродином на основе ADF4350/ADF4351
« Ответ #76 : 23 Февраль 2022, 20:15:43 »
Ну так я не программист. И к ним никаким боком не отношусь. Естественно программу можно оптимизировать и прочее. Но ранее никто ничего подобного не делал, печаток не выкладывал - вот и пришлось самому заниматься когда понадобилось. Мне главное чтобы работало.  Десятки таких генераторов у народа работают. Вроде никто не жаловался.

Оффлайн GM

  • Старожил
  • ****
  • Сообщений: 201
  • Репутация: +45/-9
  • QRA: KO85SK
Re: Управление гетеродином на основе ADF4350/ADF4351
« Ответ #77 : 23 Февраль 2022, 20:59:43 »
Программа - это практическая реализация технического описания по установке частоты синтезатора. Пока нет речи об оптимизации программы, в представленной программе реализация ТО нарушена.

Я вам просто советую переставить строки с регистрами наоборот. Не пойму, чего вы упираетесь - это же легко сделать: переставить и попробовать. Если станет хуже, вы скажете, Джордж, ты не прав. Если лучше - пойдёт в общую копилку знаний.

Для проверки поставьте первую частоту, скажем, 500 МГц, а вторую - 2100 и посмотрите, что будет.
Делать надо сразу хорошо, а плохо - само получится.

Оффлайн EW6FS

  • Старожил
  • ****
  • Сообщений: 240
  • Репутация: +169/-3
Re: Управление гетеродином на основе ADF4350/ADF4351
« Ответ #78 : 23 Февраль 2022, 21:15:52 »
Владимир, спасибо Вам за новую конструкцию!
У меня уже собрано несколько синтезаторов и трансвертеров R3GC на 5.6ГГц и up converter на 2400ГГц, которые работают без проблем. Собирался разобраться в программе и сделать маяк на 10ГГц, но Владимир предложил уже готовый вариант.
TNX, 73!

Оффлайн R3GC Владимир

  • Ветеран
  • *****
  • Сообщений: 3264
  • Репутация: +622/-83
Re: Управление гетеродином на основе ADF4350/ADF4351
« Ответ #79 : 23 Февраль 2022, 21:17:28 »
Не пойму, чего вы упираетесь - это же легко сделать: переставить и попробовать.
Не на чем пробовать. Печатки закончились, а новые пока в пути. Потом попробую.
Просто следую принципу: если оборудование работает - не лезь! Особенно в пятницу и после обеда.


Оффлайн RA3TES Андрей

  • Ветеран
  • *****
  • Сообщений: 1376
  • Репутация: +381/-47
  • Подпись находиться в стадии разработки
  • QRA: LO15VJ
Re: Управление гетеродином на основе ADF4350/ADF4351
« Ответ #80 : 23 Февраль 2022, 21:36:53 »
Особенно в пятницу и после обеда.
Работаю а РТ , все радикальные перемены и аварии случаются именно в это время :-)
to GM:
завтра попробую переставить загрузку регистров ADF по результатам отпишусь.
Че то даташит с Аналог дивайс грузится в усеченном виде... Хотел посмотреть как регистры грузятся.
зы Не програмер, спорить не буду...

Оффлайн EW6FS

  • Старожил
  • ****
  • Сообщений: 240
  • Репутация: +169/-3
Re: Управление гетеродином на основе ADF4350/ADF4351
« Ответ #81 : 23 Февраль 2022, 22:18:51 »
Как может вообще работать синтезатор если регистры загружены неправильно?!

Оффлайн GM

  • Старожил
  • ****
  • Сообщений: 201
  • Репутация: +45/-9
  • QRA: KO85SK
Re: Управление гетеродином на основе ADF4350/ADF4351
« Ответ #82 : 23 Февраль 2022, 22:47:27 »
Ну, смотрите. По включению МК и синтезатора в регистрах мусор (нули, или что-то другое). Сначала вызывается подпрограмма
Restore Freq_table1
Call Init_adf
И первым записывается регистр R0, после чего синтезатор начинает генерить "мусорную" частоту. Затем записываются R1-R2-R3-R4-R5, почти все они буферированы и переписываются в регистры только после записи в R0. Но R0 уже был, так что все остается в буферных регистрах.

Затем по состоянию переключателя определяется переменная К, которая определяет какая частота будет установлена. Посредством фрагмента
   Select Case K
      Case 30 : Call 5p1
      Case 29 : Call 5p2
      Case 27 : Call 5p3
      Case 23 : Call 5p4
      Case 15 : Call 5p5
   End Select
опять ОДНОКРАТНО вызывается подпрограмма записи регистров R0-R1-R2-R3-R4-R5
   Restore Freq_table2
   Call Init_adf
Опять первым в запись идёт новый R0, значит сработают предыдущие буферированные значения R1-R2-R3-R4-R5. Но ведь они никакого отношения не имеют к новому R0, значит, будет записан ошибочный набор регистров: предыдущие R1-R2-R3-R4-R5 и текущий (новый) R0.

И так раз за разом, вследствие алгоритма заложенного в программе, всегда пишутся предыдущие R1...R5 и новые R0.
Делать надо сразу хорошо, а плохо - само получится.

Оффлайн GM

  • Старожил
  • ****
  • Сообщений: 201
  • Репутация: +45/-9
  • QRA: KO85SK
Re: Управление гетеродином на основе ADF4350/ADF4351
« Ответ #83 : 23 Февраль 2022, 23:00:24 »
to GM:
завтра попробую переставить загрузку регистров ADF по результатам отпишусь.
Че то даташит с Аналог дивайс грузится в усеченном виде... Хотел посмотреть как регистры грузятся.
зы Не програмер, спорить не буду...

В приложении кратко описано, как регистры грузятся.
Делать надо сразу хорошо, а плохо - само получится.

Оффлайн RA3TES Андрей

  • Ветеран
  • *****
  • Сообщений: 1376
  • Репутация: +381/-47
  • Подпись находиться в стадии разработки
  • QRA: LO15VJ
Re: Управление гетеродином на основе ADF4350/ADF4351
« Ответ #84 : 24 Февраль 2022, 09:33:33 »
Нашел нормальный даташит
https://www.analog.com/media/en/technical-documentation/data-sheets/ADF4350.pdf
Вот выписка по поводу инициализации ADF. Последовательность записи регистров определена четко.
Пробовал в загрузчике R3GC тасовать загрузку регистров, разницы не обнаружил. Последний вариант оставил как в даташит. При загрузке три первых бита определяют определяют регистр в который пишется инфо-ция. В таблице 5 даташит есть описание.
Скорее всего без разницы в какой последовательности их писать, в программе от АналоДевайс, каждый регистр можно писать отдельно.   
"NITIALIZATION SEQUENCE
The following sequence of registers is the correct sequence for
initial power-up of the ADF4350 after the correct application of
voltages to the supply pins:
• Register 5
• Register 4
• Register 3
• Register 2
• Register 1
• Register 0"
Проверял, на плате запаяна панелька и в нее вставляется ПИК контроллер в дип корпусе.

Оффлайн RW3XL Игорь

  • Очный чемпионат
  • Ветеран
  • *****
  • Сообщений: 3940
  • Репутация: +928/-47
  • QRA: KO84dm
Re: Управление гетеродином на основе ADF4350/ADF4351
« Ответ #85 : 24 Февраль 2022, 10:15:03 »
Вот в даташите на странице 12 все как раз и написано.
Вольный перевод: "Некоторые установки ADF4350 имеют двойную буферизацию.
Это модуль, фаза, делитель на R, флаг умножителя опорной частоты, флаг делителя опорной частоты и установки тока петли ФАПЧ. Это значит, что для загрузки вышеперечисленных значений нужно два события. Первое, новое значение записывается в необходимый регистр. Второе, надо записать данные в регистр R0."
Другое дело, что в R1 есть флаг "разрешить/запретить буферизацию", но в даташите про то, как он работает ничего нет. Тем более, чтоб он заработал надо все-равно R0 обновить =)
aka RK3X & RC3XC

Оффлайн GM

  • Старожил
  • ****
  • Сообщений: 201
  • Репутация: +45/-9
  • QRA: KO85SK
Re: Управление гетеродином на основе ADF4350/ADF4351
« Ответ #86 : 24 Февраль 2022, 22:25:28 »
Скорее всего без разницы в какой последовательности их писать, в программе от АналоДевайс, каждый регистр можно писать отдельно.   
Проверял, на плате запаяна панелька и в нее вставляется ПИК контроллер в дип корпусе

Так вы на ПИКе проверяли? Разницы нет, но R0 должен быть последним!
« Последнее редактирование: 24 Февраль 2022, 22:53:57 от GM »
Делать надо сразу хорошо, а плохо - само получится.

Оффлайн GM

  • Старожил
  • ****
  • Сообщений: 201
  • Репутация: +45/-9
  • QRA: KO85SK
Re: Управление гетеродином на основе ADF4350/ADF4351
« Ответ #87 : 24 Февраль 2022, 22:29:58 »
Другое дело, что в R2 есть флаг "разрешить/запретить буферизацию", но в даташите про то, как он работает ничего нет. Тем более, чтоб он заработал надо все-равно R0 обновить

Есть, но трудно найти. Бит [13] регистра R2 =1 разрешает буферизацию битов [22-20] регистра R4, которые отвечают за значение выходного делителя.
Делать надо сразу хорошо, а плохо - само получится.

Оффлайн GM

  • Старожил
  • ****
  • Сообщений: 201
  • Репутация: +45/-9
  • QRA: KO85SK
Re: Управление гетеродином на основе ADF4350/ADF4351
« Ответ #88 : 24 Февраль 2022, 22:49:06 »
Ещё нашёл про регистр R0. В ADF4350 имеется 3 ГУНа с 16 поддиапазонами каждый, всего значица 48. Регистр R0 переписывается из сдвигового регистра в основной по положительному перепаду сигнала LE после записи всех остальных регистров. Тогда же все запомненные в буферах значения переписываются в регистры R1-R4. После записи R0 за 10 тактов fPFD по коду INT из R0 определяется один из 48 поддиапазонов ГУНов. Вот почему регистр R0 записывается последним

Ещё я понял, почему у Владимира R3GC вроде бы программа работает! У него все регистры для всех частот одинаковые.

' ДАННЫЕ ДЛЯ ЗАГРУЗКИ В ADF4350 ЧАСТОТА 2100 МГц  Опора 13 MHz
Freq_table1:
                                               '
Data &H00 , &HA1 , &H80 , &H08                              ' R0  00 A1 80 08
Data &H08 , &H00 , &H80 , &H69                             ' R1  08 00 80 69
Data &H18 , &H00 , &H4E , &H42                              ' R2  18 00 4E 42
Data &H00 , &H00 , &H04 , &HB3                              ' R3  00 00 04 B3
Data &H00 , &H96 , &H80 , &H3C                              ' R4  00 86 80 3C
Data &H00 , &H58 , &H00 , &H05                              ' R5  00 58 00 05


 ДАННЫЕ ДЛЯ ЗАГРУЗКИ В ADF4350 ЧАСТОТА 2200 МГц  Опора 13 MHz
Freq_table2:
                                               '
Data &H00 , &H54 , &H80 , &H18                              ' R0  00 54 80 18
Data &H08 , &H00 , &H80 , &H69                             ' R1  08 00 80 69
Data &H18 , &H00 , &H4E , &H42                              ' R2  18 00 4E 42
Data &H00 , &H00 , &H04 , &HB3                              ' R3  00 00 04 B3
Data &H00 , &H86 , &H80 , &H3C                              ' R4  00 86 80 3C
Data &H00 , &H58 , &H00 , &H05                              ' R5  00 58 00 05

и т.д.

Поэтому при записи текущего R0 нет разницы между предыдущими R1-R5 и текущими R1-R5.

« Последнее редактирование: 24 Февраль 2022, 23:02:05 от GM »
Делать надо сразу хорошо, а плохо - само получится.

Оффлайн LZ2WSG

  • Пользователь
  • **
  • Сообщений: 43
  • Репутация: +16/-0
  • QRA: KN34PC
Re: Управление гетеродином на основе ADF4350/ADF4351
« Ответ #89 : 26 Февраль 2022, 10:49:50 »
Некоторое время назад, при написании библиотеки Arduino для ADF (после аналог. эксп. с Si и AD) я пытался запустить ADF4351 RF Output Enable / reg_4, DB5. Изменение только в одном бите, пишем только reg_4. Манипуляция хорошая, телеграф звучит нормално, нет пиков, спуров в соседних каналов, нет изменение частоты... Преимущество: beacon можно локально прослушивать. А при необходимости (напр. длительная пауза между сообщениями) добавить CW-TX ключ на RF-драйвере/оконечном усилителе. Предлагаю вариант как еще один способ управления ADF.

Ниже: прием на 144.000 MHz с RTL2832U
Веселин, LZ2WSG