форум Радиолюбительского ДВ портала > Технический раздел

DDS для диапазона ДВ на микроконтроллере

<< < (2/3) > >>

GM:
Добавлю ещё, в одном вложении файлы не помещаются.

На осциллограмме видно, что синусоидальный сигнал выглядит вполне прилично, никакого джиттера.

На спектрограмме видно, что у ДДС с НЧ фильтром на выходе пропали спуры, которые при перестройке частоты "выскакивали" в неожиданных местах. Вообще, шумовая "подошва" стала ровной до 50 МГц. Уровень несущей более, чем на 60 дБ выше уровня шумов. Точнее не могу сказать, т.к. при выключении сигнала уровень шума на анализаторе не изменяется. Вот доберусь до своего crony (закадычного дружбана), у него есть хьюлет-паккардовский анализатор, вот тогда померяю точно.

GM:
По просьбе Александра RN3AUS переработал программу синтезатора (http://136.su/index.php/topic,117.195.html). Протокол обмена немного изменился, но старый протокол можно по-прежнему использовать для управления частотой синтезатора.

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

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

Программа управляется по последовательному каналу уарт, скорость 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 кГц. Передатчик выключен.

rn3aus:

--- Цитировать ---Александр, ну что, не выходит каменный цветок :-)?
--- Конец цитаты ---
В процессе. :)
Отвечаю здесь, чтобы не запутаться где о каком изделии идет речь.
Прошил контроллер, установил его в один из своих синтезаторов (в самый первый, еще без кнопки управления). Заработало, на выходе идет синус, все в порядке.
Сегодня хорошо продвинулся с адаптацией программы DDS_ctrl под эту прошивку и протокол управления. Установка частоты, вкл-откл PTT  и Tone работают. Соответственно, заработали все режимы, где используется управление частотой: DFCW, HELL, VOICE-FM, WSPR, JT-9.
Интересно, обнаружилось, что включение тона инвертировано: когда ставлю управляющий бит в 1 - тон выкл, а при 0 - вкл.
Пока что не совсем разобрался с управлением фазой. Протокол обмена с МК разваливается, откуда-то на приеме возникает лишний байт. Возможно, в программе управления где-то я еще не углядел и не модифицировал какую-то команду. Надеюсь скоро это выяснить.

Работа идет не быстро, так как одновременно подкорректировал свои версии прошивок, добавилась новая функциональность, да и программу управления нужно отшлифовать и проверить тщательно.

GM:

--- Цитата: rn3aus от 23 Апрель 2019, 21:09:05 ---Пока что не совсем разобрался с управлением фазой. Протокол обмена с МК разваливается, откуда-то на приеме возникает лишний байт
--- Конец цитаты ---
Имеется в виду, что МК посылает лишний байт?

GM:

--- Цитата: rn3aus от 23 Апрель 2019, 21:09:05 ---Интересно, обнаружилось, что включение тона инвертировано: когда ставлю управляющий бит в 1 - тон выкл, а при 0 - вкл.
--- Конец цитаты ---
Скорее всего, рука пронесла :-). Ну, это легко поправить, вернее, инвертировать инверсию.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Перейти к полной версии