Автор Тема: ADF4350  (Прочитано 160952 раз)

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

Оффлайн R6DZ Александр

  • Очный чемпионат
  • Ветеран
  • *****
  • Сообщений: 1380
  • Репутация: +123/-16
Re: ADF4350
« Ответ #255 : 14 Июнь 2019, 22:41:59 »
   Для GM. Мне нравится и спасибо вам за бескорыстную работу.

Оффлайн GM

  • Старожил
  • ****
  • Сообщений: 201
  • Репутация: +45/-9
  • QRA: KO85SK
Re: ADF4350
« Ответ #256 : 15 Июнь 2019, 07:18:36 »
Александр, на здоровье.
Делать надо сразу хорошо, а плохо - само получится.

Оффлайн UR5EIN Вячеслав

  • Ветеран
  • *****
  • Сообщений: 710
  • Репутация: +134/-14
  • QRA: KN78MM
Re: ADF4350
« Ответ #257 : 15 Июнь 2019, 09:59:05 »
Для GM. Мне нравится и спасибо вам за бескорыстную работу...
Полностью присоединяюсь к Александру! Спасибо Вам огромное. Но..., немного печально, Джордж, за это:
...Я новичок на вашем форуме, не ругайте сильно. Мне страшно интересно, прочитал всю эту тему с 1-й по 17-ю страницу...
Нужно было Вам это сделать намного раньше! Моей задачей было (сообщ №77,78,217) создать девайс (в одном ящике) по принципу:
1. Плата ADF4350 - это QRPР CW TX с манипуляцией по чипу (проверено, сообщ. № 182).
2. Свисток RTL SDR - для RX.
3. USB интерфейс для возможности работы с ПК.
4. USB hub для "однопроводного" подключения всех блоков к ПК.
5. Как "опционные" узлы - ПФ, МШУ, QRP  PA ... и т.д.
Это в одном корпусе + индикатор WH1602, кнопки управления, и т.д.
Пока это в стадии отложенного (ненадолго) "строительства" - все силы сейчас на подготовку к ПД.
Ваши наработки в корне меняют ситуацию! Например, для меня (для VHF) актуальны 3 частоты. Это
- 144,100 МГц
- 435,100 МГц
- 438,100 МГц - перестройка от центральной частоты по выводу коррекции частоты ОГ: проверял, для 144 МГц прибл. +- 20...30 кГц, соотв. для 432 МГц х3.
Ваши наработки полностью меняют подход к реализации!! Это все можно сделать (для 3-х частот) в одной "мыльнице", как портативку! Три кнопки управления (без индикатора), вход key CW, внутренний Li-Ion АКБ (хватит на сутки), ручка управления+-F (настройка на частоту корреспондента визуально по RTL SDR)!...Запасная плата под ADF4350 есть, она размером с банковскую карточку, там много лишнего, можно сделать как спичечный коробок! Опять же, упоминал, нет времени, ПД... !
А относительно этого:
Из 8-ногой тиньки ещё не всё выжато :-). Подумал тут, что можно прикрутить
- все зависит от назначения синтезатора. Я с очень большой осторожностью отношусь к подобным "наворотам" в чипе управляющего МК, т.к. у меня были случаи сбоя синтезатора. Особенно, если это синтез гетеродина трансвертера. Назначение МК - выдать коды управления и ВСЕ! Дальше МК должен "молчать" - в чипе АДФ есть внутренние защелки (проверял - если аккуратно вынуть из панельки чип, м/сх синтеза продолжает работать). Например, для работы в многочастотном режиме (как у Вас) - чип МК должен постоянно работать - опрос состояний выводов для "кнопок" управления частотой. 73!
« Последнее редактирование: 15 Июнь 2019, 10:34:05 от UR5EIN Вячеслав »

Оффлайн RA3APW Карен

  • Ветеран
  • *****
  • Сообщений: 896
  • Репутация: +346/-12
    • http://www.ra3apw.ru
  • QRA: KO85UV
Re: ADF4350
« Ответ #258 : 15 Июнь 2019, 12:23:14 »
GM, также присоединяюсь с благодарностью взяться за работу по разработке ПО для ADF4350/51.

В моем случае актуально было бы следующее ТЗ:
- синтезатор ADF4350 или ADF4351
- микроконтроллер ATTiny 13
- порт микроконтроллера PB3 (контакт 2 ATTiny 13) используются для выбора одной из 2 частот
- значения выходных частот синтезатора записываются во флеш память микроконтроллера, то есть компиляция ПО при изменении частоты не требуется
- шестнадцатеричные значения регистров R0-R5 для ADF4350/51, которые записываются во флеш память Attiny13, берутся из ПО "Analog Devices ADF435x Software" (см. изображение ниже)
- анализ сигнала Lock Detect PLL от ADF4350/51 на ATTiny13 обязателен - порт  PB4 (контакт 3 ATTiny 13)
- выход на LCD и кнопки не требуется.

Заранее благодарен.


 
« Последнее редактирование: 15 Июнь 2019, 12:28:09 от RA3APW Карен »
Карен, RA3APW                   www.ra3apw.ru

Оффлайн GM

  • Старожил
  • ****
  • Сообщений: 201
  • Репутация: +45/-9
  • QRA: KO85SK
Re: ADF4350
« Ответ #259 : 15 Июнь 2019, 17:56:04 »
- шестнадцатеричные значения регистров R0-R5 для ADF4350/51, которые записываются во флеш память Attiny13, берутся из ПО "Analog Devices ADF435x Software"
- анализ сигнала Lock Detect PLL от ADF4350/51 на ATTiny13 обязателен - порт  PB4 (контакт 3 ATTiny 13)

Карен,

1) вы указали только одну частоту, хотя говорили о двух. Предлагаю вам заполнить "заявку" на частоты по форме, приведенной ниже и переслать мне, будет меньше работы. Регистры записаны в обратном порядке, т.к. запись в AD4350 начинается с регистра 5 (REG5) и заканчивается регистром 0 (REG0).

   .cseg
   .org   0x100
frq0:                        ;хххх MHz
   .db   0x00,0x58,0x00,0x05         ;REG5
   .db   0x00,0x9C,0x80,0x3C         ;REG4
   .db   0x00,0x00,0x04,0xB3         ;REG3
   .db   0x00,0x01,0x0E,0x42         ;REG2
   .db   0x08,0x00,0x80,0xC9         ;REG1
   .db   0x00,0x2E,0x00,0x10         ;REG0
frq1:                        ;уууу MHz
   .db   0x00,0x58,0x00,0x05         ;REG5
   .db   0x00,0x9C,0x80,0x3C         ;REG4
   .db   0x00,0x00,0x04,0xB3         ;REG3
   .db   0x00,0x01,0x0E,0x42         ;REG2
   .db   0x08,0x00,0x80,0xC9         ;REG1
   .db   0x00,0x2E,0x00,0x20         ;REG0

2) Что делать с анализом сигнала Lock Detect PLL от ADF4350/51? Вот мы его обнаружили - делаем то-то, вот мы его не обнаружили - делаем то-то. Опишите процесс анализа.
Кстати, есть биты в REG5 - analog lock detect или digital lock detect? Ещё есть биты в REG2 - с ними что делать?
Делать надо сразу хорошо, а плохо - само получится.

Оффлайн RA3APW Карен

  • Ветеран
  • *****
  • Сообщений: 896
  • Репутация: +346/-12
    • http://www.ra3apw.ru
  • QRA: KO85UV
Re: ADF4350
« Ответ #260 : 15 Июнь 2019, 19:52:10 »
GM, извините не знаю Вашего имени,

благодарю за скорый ответ.

По Вашим вопросам:

1) Суть моего ТЗ состоит в том, что каждый пользователь может самостоятельно внести значения регистров во флеш память ATTiny13 при программировании микроконтроллера без компиляции основной программы.
От Вас нужно:
  • hex файл прошивки ATTiny, который будет отсылать по шине SPI данные регистров R0-R5 в ADF4350/1, зашитых во флеш память микроконтроллера
  • указания места регистров R0-R5 во флеш памяти ATTiny13 для ввода значений регистров в виде шестнадцатеричного кода из ПО "Analog Devices ADF435x Software"

Поэтому можно начать с одной частоты, например 1968 МГц, значения которой для регистров были указаны на картинке ранее, а именно:

REG5 = 0x D80005
REG4 = 0x 9A003C
REG3 = 0x 4B3
REG2 = 0x 1A005E42
REG1 = 0x 8008029
REG0 = 0x 620020

Можно эту же частоту записать и во вторую ячейку памяти, потом при программировании отредактируем.

2) При пропадании сигнала Lock Detect микроконтроллер должен повторить отправку команд управления по SPI на синтезатор.
Следует использовать сигнал Digital Lock Detect.
Состояние регистров указано на картинке в моем предыдущем сообщении http://forum.vhfdx.ru/eteo-teato/adf4350/?action=dlattach;attach=130962;image
 
Карен, RA3APW                   www.ra3apw.ru

Оффлайн GM

  • Старожил
  • ****
  • Сообщений: 201
  • Репутация: +45/-9
  • QRA: KO85SK
Re: ADF4350 - Karen
« Ответ #261 : 15 Июнь 2019, 20:53:52 »
Карен,

Переписал немного программу, прошивка в приложении. Теперь сами заполняете форму и прошиваете всё вместе. [Я-то думал, вы заполните форму, т.е. сделаете черновую работу, а я прошью...]

Программа загружает регистры синтезатора для одной из частот, в зависимости от положения переключателя. После загрузки добавил ещё ожидание 1 сек, чтобы произошёл захват, иначе программа будет загружать все регистры каждые 0.5 мс.

Две частоты начинаются с того же самого адреса 0x100, остальное делаете, как описано в сообщении 252. Вот что находится в таблице частот в вашей прошивке adf4350karen.hex.

   .org   0x100
frq0:                        ;1151 MHz
   .db   0x00,0x58,0x00,0x05         ;REG5
   .db   0x00,0x9C,0x80,0x3C         ;REG4
   .db   0x00,0x00,0x04,0xB3         ;REG3
   .db   0x00,0x01,0x0E,0x42         ;REG2
   .db   0x08,0x00,0x80,0xC9         ;REG1
   .db   0x00,0x2E,0x00,0x10         ;REG0
frq1:                        ;1152 MHz
   .db   0x00,0x58,0x00,0x05         ;REG5
   .db   0x00,0x9C,0x80,0x3C         ;REG4
   .db   0x00,0x00,0x04,0xB3         ;REG3
   .db   0x00,0x01,0x0E,0x42         ;REG2
   .db   0x08,0x00,0x80,0xC9         ;REG1
   .db   0x00,0x2E,0x00,0x20         ;REG0
Делать надо сразу хорошо, а плохо - само получится.

Оффлайн GM

  • Старожил
  • ****
  • Сообщений: 201
  • Репутация: +45/-9
  • QRA: KO85SK
Re: ADF4350
« Ответ #262 : 15 Июнь 2019, 21:41:10 »
Нужно было Вам это сделать намного раньше!
Раньше я был далеко, в западном полушарии :-).

Ваши наработки в корне меняют ситуацию! Например, для меня (для VHF) актуальны 3 частоты.
- 144,100 МГц
- 435,100 МГц
- 438,100 МГц - перестройка от центральной частоты по выводу коррекции частоты ОГ: проверял, для 144 МГц прибл. +- 20...30 кГц, соотв. для 432 МГц х3.
Что за наработки, которые в корне меняют ситуацию?

И что конкретно имеется в виду "перестройка от центральной частоты по выводу коррекции частоты ОГ"? Подстройка выходной частоты, корректируя частоту ОГ? Турки так примерно делают, фирма ERASYNTH.

Это все можно сделать (для 3-х частот) в одной "мыльнице", как портативку! Три кнопки управления (без индикатора), вход key CW, внутренний Li-Ion АКБ (хватит на сутки), ручка управления+-F
Ну, у ATtiny13 не хватит ножек, чтобы обеспечить столько подсоединений. Тут надо брать МК покрупнее, скажем ATtiny2313, ATtiny4313, ATtiny861А.

Кстати, есть прекрасные МК нового поколения ATtiny1614, ATtiny1616, ATtiny1617. Много всяких вкусностей, вагон флеши и озу, новая периферия, потребление 100 нА в айдле. Тот же набор команд.

А относительно этого:
Из 8-ногой тиньки ещё не всё выжато
- все зависит от назначения синтезатора. Я с очень большой осторожностью отношусь к подобным "наворотам" в чипе управляющего МК, т.к. у меня были случаи сбоя синтезатора. Особенно, если это синтез гетеродина трансвертера. Назначение МК - выдать коды управления, дальше МК должен "молчать". Например, для работы в многочастотном режиме (как у Вас) - чип МК должен постоянно работать - опрос состояний выводов для "кнопок" управления частотой
Ну так, не нажимайте кнопки лишний раз :-). Что до МК, его можно отправить в глубокий сон, чтобы он просыпался по некоторому событию, нажатие кнопки или появление захвата или ещё что...Что касается тиньки и моей программы - это просто попытка показать возможности даже такой крохи...Возможно, вы знаете, есть и 6-ногие тиньки. И есть 8-ногие армы (кортекс м3).
« Последнее редактирование: 15 Июнь 2019, 21:48:57 от GM »
Делать надо сразу хорошо, а плохо - само получится.

Оффлайн UA3ATQ

  • Ветеран
  • *****
  • Сообщений: 2010
  • Репутация: +198/-21
  • QRA: KO85QV
Re: ADF4350
« Ответ #263 : 15 Июнь 2019, 22:40:26 »
И есть 8-ногие армы (кортекс м3).

Оптимальнее наверное как раз 14-20 ногие кортексы M0(+) для перспективных изделий. И мелкие еще, и ног уже нормально, и единая отладка/программирование по SWD.

Оффлайн GM

  • Старожил
  • ****
  • Сообщений: 201
  • Репутация: +45/-9
  • QRA: KO85SK
Re: ADF4350
« Ответ #264 : 15 Июнь 2019, 23:23:04 »
Оптимальность, она тоже разная бывает. Иногда не стоит стрелять из пушки по воробьям. И 100 наноампер потребления - тоже не жук на палочке.

Что касается армов, то везде все по-разному. Программирование на АРМ Кортекс М0 отличается от АРМ Кортекс М3, программирование АРМ Кортекс М3 STM32 отличается от АРМ Кортекс М3 Миландр (наш российский Кортекс). Правда, всего один проект делал на М0, и на Миландре - 3, а на кортекс М3 не менее сотни, даже был проект с CAN Open, достаточно сложный: 1-2 и 7 уровни OSI.
Делать надо сразу хорошо, а плохо - само получится.

Оффлайн UA3ATQ

  • Ветеран
  • *****
  • Сообщений: 2010
  • Репутация: +198/-21
  • QRA: KO85QV
Re: ADF4350
« Ответ #265 : 16 Июнь 2019, 00:55:50 »
Программирование на АРМ Кортекс М0 отличается от АРМ Кортекс М3

Вы собрались писать на ассемблере для них? Я за последнее время сделал 2 небольших проекта - один на STM32F030 (М0) а другой на STM32F103 (М3) - и отличия радикальными не показались, особенно при продуманном BSP. Сейчас опять в доработках старый большой проект на NXP LPC1768 (М3) - и не чую я глобальной разницы. Главное не лезть к периферии мимо HAL или его заменителя.

Оффлайн GM

  • Старожил
  • ****
  • Сообщений: 201
  • Репутация: +45/-9
  • QRA: KO85SK
Re: ADF4350
« Ответ #266 : 16 Июнь 2019, 08:24:58 »
Вы собрались писать на ассемблере для них? Я за последнее время сделал 2 небольших проекта - один на STM32F030 (М0) а другой на STM32F103 (М3) - и отличия радикальными не показались, особенно при продуманном BSP. Сейчас опять в доработках старый большой проект на NXP LPC1768 (М3) - и не чую я глобальной разницы. Главное не лезть к периферии мимо HAL или его заменителя.
В основном я пишу на С, иногда на С++, иногда на С#, зависит от многих причин. Иногда на паскале или делфи.. И всегда находится узкое место, где без ассемблера не обойтись. Тогда вставляю куски чистого асма. А вообще 11 лет писал почти всё на ассемблере для тексасовских DSP - больно быстрые процессы были и требовалось их быстро обработать. В основном расчет спектров, аналитические функции, преобразование Гильберта, разнообразная фильтрация..
NXP для меня немного тяжеловат, лучше STM. Ну, а HAL - это на любителя, все ж получше бейсика :-).
Делать надо сразу хорошо, а плохо - само получится.

Оффлайн UA3ATQ

  • Ветеран
  • *****
  • Сообщений: 2010
  • Репутация: +198/-21
  • QRA: KO85QV
Re: ADF4350
« Ответ #267 : 16 Июнь 2019, 10:22:22 »
Ну, а HAL - это на любителя, все ж получше бейсика :-)

HAL - это Hardware Abstraction Layer, то что скрывает от основной части кода "тонкости" железа, на котором оно все работает. ;) Может оно и на любителя, не знаю даже...

Но еще раз повторю как то года 2 назад прозвучавшее предложение - совместными усилиями сделать ТЗ на "контроллер мечты" для синтезатора, чтобы было в нем все что только можно придумать - загрузку синта для трансвертера на переходах прием/передача при работе сплитом, дистанционное программирование по RS485 удаленно установленных трансвертеров (с адресацией на одной шине), и вообще все, самые дикие хотелки (но без поддержки дисплеев и вычурных комбинаций кнопок - тут сколько людей столько вариантов предпочтений и это можно на другой удаленный контроллер возложить, если уж приспичит, а этому команды по шине отдавать). Потом прикинуть под эту задачу оптимальный кристалл и реализовать раз и надолго, вместе с конфигурационным софтом. Причем с заменяемыми модулями интерфейса конкретных синтезаторов (хотя я сторонник все же готовые загрузочные слова хранить в "боевом" контроллере, не пытаться в нем еще и вычисления делать - тогда можно очень универсальным сделать чип).
« Последнее редактирование: 16 Июнь 2019, 10:34:14 от UA3ATQ »

Оффлайн RA3APW Карен

  • Ветеран
  • *****
  • Сообщений: 896
  • Репутация: +346/-12
    • http://www.ra3apw.ru
  • QRA: KO85UV
Re: ADF4350
« Ответ #268 : 16 Июнь 2019, 10:45:30 »
Хотел бы добавить, что на мое ТЗ сильно повлияло сообщение R3ZI №213 в этой теме (http://forum.vhfdx.ru/eteo-teato/adf4350/msg355891/#msg355891), которое было проверено и показало прекрасные результаты. Еще раз большое спасибо R3ZI за прекрасную идею, которую в первую очередь оценят радисты, а не программисты  ;)  ! 
Карен, RA3APW                   www.ra3apw.ru

Оффлайн GM

  • Старожил
  • ****
  • Сообщений: 201
  • Репутация: +45/-9
  • QRA: KO85SK
Re: ADF4350
« Ответ #269 : 17 Июнь 2019, 16:22:23 »
В очередной раз переписал программу. Теперь она читает из иипрома один набор регистров или другой в зависимости от положения ключа на РВ3 и загружает его в регистры ADF4350. Кроме того, она следит за состоянием сигнала Digital Lock Detect синтезатора, если сигнал равен логическому нулю, то программа повторно загружает выбранный набор регистров. Чтобы загрузить данные для другой частоты надо изменить положение ключа на РВ3 и нажать кнопку сброс (или передёрнуть питание МК).

Поскольку содержимое регистров находится в иипром, нет необходимости перешивать основную программу для изменения регистров, достаточно перепрошить иипром.

Данные в иипром расположены в следующем формате, начиная с нулевого адреса.

   .eseg
   .org   0x00
frq0:                        ;1151 MHz
   .db   0x00,0x58,0x00,0x05         ;REG5
   .db   0x00,0x9C,0x80,0x3C         ;REG4
   .db   0x00,0x00,0x04,0xB3         ;REG3
   .db   0x00,0x01,0x0E,0x42         ;REG2
   .db   0x08,0x00,0x80,0xC9         ;REG1
   .db   0x00,0x2E,0x00,0x10         ;REG0
frq1:                        ;1152 MHz
   .db   0x00,0x58,0x00,0x05         ;REG5
   .db   0x00,0x9C,0x80,0x3C         ;REG4
   .db   0x00,0x00,0x04,0xB3         ;REG3
   .db   0x00,0x01,0x0E,0x42         ;REG2
   .db   0x08,0x00,0x80,0xC9         ;REG1
   .db   0x00,0x2E,0x00,0x20         ;REG0
   .exit

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