Автор Тема: DDS синтезатор передатчика  (Прочитано 133743 раз)

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

Оффлайн GM

  • Старожил
  • ****
  • Сообщений: 331
    • Просмотр профиля
Re: DDS синтезатор передатчика
« Ответ #195 : 14 Апрель 2019, 23:55:55 »
Вот код программы, скомилированный под 20 МГц тактовой частоты.

Получите и распишитесь :-).


ПРОТОКОЛ УПРАВЛЕНИЯ СИНТЕЗАТОРОМ

Программа написана для МК ATtiny2313, синхронизируемого кварцем 20 МГц. Программа затрачивает 10 тактов на одну выборку, т.е. частота выборок fS=2000 кГц. Используется 32-битный аккумулятор линейной фазы.

Программа управляется по последовательному каналу уарт, скорость 115200 бод, формат данных 8N1.

В протоколе передачи используются пакеты двух типов. Первый тип используется для управления частотой, второй тип – для изменения фазы, сохранения когерентности сигнала и управления усилителем мощности. Оба пакета состоят из 4 байт. Нумерация байт слева направо, т.е. 1,2,3,4. Старший байт (№ 1) передаётся первым. Нумерация бит в байте справа налево, т.е. 7,6,..,0. 7-й бит первого байта является битом модификации. В качестве признака работоспособности программа возвращает по уарту принятый пакет, как квитанцию.
Передача любого пакета заканчивается тайм-аутом 100 мкс.

1. Для установки частоты передается пакет, содержащий приращение фазы (так называемый код частоты). Признаком передачи первого пакета является наличие 0 в бите модификации. Допускаются любые значения от 0х00000000 до 0х7FFFFFFF. Переход к заданной частоте осуществляется примерно через 2 мкс после приёма последнего байта пакета.

2. Признаком передачи второго типа пакета является наличие 1 в бите модификации. Биты 6, 5 и 4 используются для указания информации контроллеру об изменении фазы, тона и PTT соответственно. Все биты независимы и могут передаваться в одном пакете.

2.1. Для передачи относительной фазы 6-й бит старшего байта устанавливается в 1. Код фазы передаётся во втором и третьем байтах. Второй байт является старшим байтом фазы. Дискретность фазы определяется единицей младшего бита 360/65536 = 0,0054932 градуса. Последний 4-й байт не несёт никакой информации и передается исключительно для получения равной длины обоих типов пакетов.

2.2. Для выключения тона (но сохранения когерентности синтезируемого сигнала) необходимо сбросить 5-й бит старшего байта. Для включения – соответственно установить его в 1.

2.3. Для включения передатчика (PD6 микроконтроллера) необходимо установить 4-й бит старшего байта. Для выключения – соответственно сбросить его в 0.

3. Программа микроконтроллера принимает пакеты и выполняет соответствующие действия, не прерывая генерации сигнала заданной частоты. После подачи питания программа вырабатывает синусоидальный сигнал частотой 137,5 кГц. Передатчик выключен.

Добавил ещё код под 12,8 МГц кварц.
Продублировал здесь http://136.su/index.php?action=post;msg=23549;topic=374.0.
« Последнее редактирование: 15 Апрель 2019, 17:49:33 от GM »
Зачем нам бумеранг? У нас грабли есть!

Оффлайн rn3aus

  • Ветеран
  • *****
  • Сообщений: 3648
    • Просмотр профиля
Re: DDS синтезатор передатчика
« Ответ #196 : 15 Апрель 2019, 07:19:07 »
Отлично,  спасибо!
Если не трудно - прошивку еще под 12,8 МГц.

Оффлайн GM

  • Старожил
  • ****
  • Сообщений: 331
    • Просмотр профиля
Re: DDS синтезатор передатчика
« Ответ #197 : 15 Апрель 2019, 17:52:54 »
Код под 12.8 разместил чуть выше. И немного подправил константы.
Зачем нам бумеранг? У нас грабли есть!

Оффлайн GM

  • Старожил
  • ****
  • Сообщений: 331
    • Просмотр профиля
Re: DDS синтезатор передатчика
« Ответ #198 : 22 Апрель 2019, 21:25:27 »
Александр, ну что, не выходит каменный цветок :-)?
Зачем нам бумеранг? У нас грабли есть!

Оффлайн rn3aus

  • Ветеран
  • *****
  • Сообщений: 3648
    • Просмотр профиля
Re: DDS синтезатор передатчика
« Ответ #199 : 23 Апрель 2019, 21:12:01 »
Александр, ну что, не выходит каменный цветок :-)?
Ответил здесь: http://136.su/index.php/topic,374.msg23565.html#msg23565
Чтобы мы не запутались о каких прошивках где говорится.
Надеюсь, в ближайшее время закончу новую версию программы DDS_ctrl с поддержкой прошивки от GM.
Кроме того, готовы мои обновленные и улучшенные прошивки для AtTiny2313 и 4313.
Осталось подождать немножко...

Оффлайн rn3aus

  • Ветеран
  • *****
  • Сообщений: 3648
    • Просмотр профиля
Re: DDS синтезатор передатчика
« Ответ #200 : 24 Апрель 2019, 22:17:12 »
Готова новая версия DDS_ctrl v.14.0.0 и новые прошивки для нашего DDS!
Для МК ATTiny2313 - версия 3.1
Для МК ATTiny4313 - версия 4.1
Доработки версии 3.1 устранили одну досадную неточность, что свело к минимуму разрывы фазы при обработке команд.
Доработки версии 4.1 очень существенные! В ней также, как и у GM (см. ниже) реализован прием команд установки частоты без прерывания формирования сигнала, что резко улучшило качество сигнала во всех режимах, где происходит частотная манипуляция (WSPR, HELL, HELL-IMAGE, JT9, MFSK, VOICE-FM и т.д.) Спектр сигнала теперь выглядит превосходно. Кроме того, сохранена полная совместимость со всеми предыдущими версиями. Функции автоматического маяка также немного расширены - помимо вдвое увеличенной памяти, теперь доступна качественная передача BPSK в этом автономном режиме, без компьютера.
Так что предлагаю всем желающим перейти именно на эту версию 4.1 для МК 4313. Просто прошиваете новый чип, вставляете в панельку на плате синтезатора - и все работает отлично!

Программа управления теперь поддерживает и "альтернативную" версию прошивки для МК 2313, разработанную GM. При этом доступны абсолютно все режимы (моды). Однако в прошивке GM_DDS не реализована работа в режиме автономного маяка и отсутствует управление кнопкой на лицевой панели. Достоинством прошивки GM является высокое качество формируемого сигнала, без прерываний на обработку команд от компьютера. Прошитый новый МК2313 также просто вставляем в панельку на плате синтезатора и все будет работать.
В программе DDS_ctrl появился пункт меню Device->GM_DDS. Выбрав его, можно начать работу с новой прошивкой. Для возврата к старой "родной" прошивке эту галочку в меню нужно снять.

Архив с программой версии 14.0.0, всеми прошивками под все частоты, схемами и платами: http://rn3aus.narod.ru/dds_tx/DDS-ctr_v14.0.0.0.zip



Оффлайн rn3aus

  • Ветеран
  • *****
  • Сообщений: 3648
    • Просмотр профиля
Re: DDS синтезатор передатчика
« Ответ #201 : 24 Апрель 2019, 22:22:59 »
Провел измерение спектров формируемого сигнала с помощью моей прошивки DDS_TX_v4.1 и альтернативной прошивки GM_DDS, используя одну и ту же аппаратную платформу синтезатора, просто заменяя чипы.
Сравнивались сигналы частоты 137500.
Спектры снимались в полосе 50-250 кГц и 120-150 кГц с разрешением 1 Гц.
Для моей прошивки показаны спектры в двух режимах - 24 бита (11 циклов на отсчет) и 32 бита (12 циклов на отсчет).
Прошивка GM работает все время с 32 битами, 10 циклов на отсчет.

Оффлайн rn3aus

  • Ветеран
  • *****
  • Сообщений: 3648
    • Просмотр профиля
Re: DDS синтезатор передатчика
« Ответ #202 : 24 Апрель 2019, 22:24:10 »
И в более широкой полосе.
Получается, что в 32-битном режиме обе прошивки близки по своим параметрам, у меня несколько меньше количество спуров, они реже расположены. По уровню спуров примерно  одно и то же. По уровню максимального выброса у GM есть какая-то одна пораженная частота, где спур вылазит почему-то выше (помечено маркером), на 2-3 дБ

PS измерения проводились на хорошей "круглой" частоте. На днях померяю, что будет происходить на дробной частоте.
« Последнее редактирование: 24 Апрель 2019, 22:37:54 от rn3aus »

Оффлайн GM

  • Старожил
  • ****
  • Сообщений: 331
    • Просмотр профиля
Re: DDS синтезатор передатчика
« Ответ #203 : 25 Апрель 2019, 23:49:39 »
Программа управления теперь поддерживает и "альтернативную" версию прошивки для МК 2313, разработанную GM. При этом доступны абсолютно все режимы (моды). Однако в прошивке GM_DDS не реализована работа в режиме автономного маяка и отсутствует управление кнопкой на лицевой панели. Достоинством прошивки GM является высокое качество формируемого сигнала, без прерываний на обработку команд от компьютера.
Ну, никто не ставил такой задачи, поэтому нет режима маяка. Что он должен делать этот маяк? Только бпск? И что за кнопка? Переключение фильтров?
Зачем нам бумеранг? У нас грабли есть!

Оффлайн GM

  • Старожил
  • ****
  • Сообщений: 331
    • Просмотр профиля
Re: DDS синтезатор передатчика
« Ответ #204 : 26 Апрель 2019, 00:00:30 »
Получается, что в 32-битном режиме обе прошивки близки по своим параметрам, у меня несколько меньше количество спуров, они реже расположены. По уровню спуров примерно  одно и то же. По уровню максимального выброса у GM есть какая-то одна пораженная частота, где спур вылазит почему-то выше (помечено маркером), на 2-3 дБ
Не знаю, что вы имеете в виду, говоря о "пораженной частоте" в синтезаторе. Поражённая частота в приемнике - это совсем другое.

По спурам. Я бы сравнивал так. Моя программа даёт 18 "палок" выше -70 дБ, а ваша Александр целых 25. Хотя и это сравнение - так себе. Надо сравнивать по классике: отношение мощности сигнала к мощности  цифрового шума в заданной полосе. Да и без сравнения ясно, что у меня будет всяко лучше, т.к. цифровой шум "размазывается" на более широкую полосу, поскольку частота выборок у меня выше, чем у вас.
Зачем нам бумеранг? У нас грабли есть!

Оффлайн rn3aus

  • Ветеран
  • *****
  • Сообщений: 3648
    • Просмотр профиля
Re: DDS синтезатор передатчика
« Ответ #205 : 26 Апрель 2019, 22:09:06 »
Сегодня удалось найти и исправить мелкую, но раздражающую ошибку в программе управления, связанную с восстановлением обмена по COM-порту между компьютером и синтезатором после сбоев (например, когда синтезатор выключили и вновь включили во время работы программы или когда наводки на кабель привели к сбоям обмена и т.п.). Теперь все заработало намного надежнее.

Многочисленные испытания последних дней показали, что новая прошивка 4.1 и подновленная версия управляющей программы 14.1.0.0 в сумме дают я бы сказал "качественный скачок" как в надежности работы, так и в качестве сигнала.

Так что рекомендую всем, кто часто пользуется синтезатором, перейти на новую версию DDS_ctrl v.14.1.0.0 и прошивку 3.1 для ATTiny2313 или еще лучше на 4.1 для ATTiny4313:
http://rn3aus.narod.ru/dds_tx/DDS-ctr_v14.1.0.0.zip


PS: рад был бы высказанным пожеланиям по дальнейшему совершенствованию набора функций и схемотехники синтезатора, чего еще бы хотелось? Надо бы довести до определенного совершенства и можно заказать на заводе печатные платы и все прочее, чтобы был такой доступный набор-конструктор для желающих. Вроде бы сейчас все это пока более-менее по деньгам доступно.

Оффлайн R7NT

  • Ветеран
  • *****
  • Сообщений: 1883
  • Александр KN97LF
    • Просмотр профиля
    • E-mail
Re: DDS синтезатор передатчика
« Ответ #206 : 27 Апрель 2019, 09:14:16 »
рад был бы высказанным пожеланиям по дальнейшему совершенствованию набора функций и схемотехники синтезатора, чего еще бы хотелось?
А возможно сделать вариант с 20МГц прошивкой ?
Ребята с Sunsdr применяют у себя во многих железках вот такой TXCO ( M572T33-20.000-0.5/-20+70 ) : https://www.datasheets360.com/pdf/633220209935214200  и готовы уступить такой весьма бюджетно для меня

Оффлайн R7NT

  • Ветеран
  • *****
  • Сообщений: 1883
  • Александр KN97LF
    • Просмотр профиля
    • E-mail
Re: DDS синтезатор передатчика
« Ответ #207 : 27 Апрель 2019, 09:32:03 »
Увидел прошивку для 20МГц в папке 2313 - спасибо!

Оффлайн Сергей UB1APE

  • Ветеран
  • *****
  • Сообщений: 6264
  • Я точно знаю, что ни чего не знаю
    • Просмотр профиля
    • E-mail
Re: DDS синтезатор передатчика
« Ответ #208 : 28 Апрель 2019, 11:50:23 »
речь идёт о схэ указанной в "ответе 168" ? Или о другом?
UB1APE ( RA1ADF) Сергей.

Оффлайн rn3aus

  • Ветеран
  • *****
  • Сообщений: 3648
    • Просмотр профиля
Re: DDS синтезатор передатчика
« Ответ #209 : 28 Апрель 2019, 12:14:38 »
Пожалуйста  :)

В архиве готовые прошивки на частоты:
- 10 МГц,
- 12 МГц,
- 12.8 МГц,
- 12.800175 МГц,
- 13 МГц,
- 13.5 МГц,
- 15.6 МГц,
- 16 МГц,
- 16.384 МГц,
- 20 МГц

Если понадобятся другие частоты - пишите здесь.