Синтезатор для sdr своими руками

Обновлено: 05.07.2024

Программно определяемое радио/радиосистема (Software-defined radio, SDR) – радиопередатчик и/или радиоприёмник, использующий технологию, позволяющую с помощью программного обеспечения устанавливать или изменять рабочие радиочастотные параметры, включая, в частности, диапазон частот, тип модуляции или выходную мощность, за исключением изменения рабочих параметров, используемых в ходе обычной предварительно определённой работы с предварительными установками радиоустройства, согласно той или иной спецификации или системы (Википедия).

SDR выполняет значительную часть цифровой обработки сигналов на обычном персональном компьютере или на ПЛИС. Целью такой схемы является радиоприёмник или радиопередатчик произвольных радиосистем, изменяемый путём программной переконфигурации (отсюда происходит альтернативное наименование таких систем — программно конфигурируемые). В настоящее время подобные радиосистемы находят широкое применение, одним из их основных достоинств является возможность обслуживания большого количество радиопротоколов. Ряд экспертов полагают, что в будущем технология SDR станет доминирующей среди всех радиосистем.

Внешний вид проекта SDR радио на Arduino и DDS модуле AD9850

Оборудование для SDR обычно состоит из супергетеродинного приёмника, который преобразует сигнал с радиочастоты на промежуточную, аналого-цифрового и цифро-аналогового преобразователей (АЦП и ЦАП).

В данной статье мы рассмотрим реализацию технологии SDR на основе платы Arduino и DDS модуле AD9850.

Необходимые компоненты

  1. Плата Arduino Nano (купить на AliExpress).
  2. ЖК дисплей 16х2 (купить на AliExpress).
  3. DDS модуль AD9850 (купить на AliExpress).
  4. Инкрементальный энкодер c кнопкой (Rotary Encoder) (купить на AliExpress - не уверен в том, что в нем есть кнопка, но она точно есть в этом лоте - купить на AliExpress № 2, но он продается, к сожалению, только по 5 штук).
  5. Микросхема 74HC4066 (купить на AliExpress).
  6. Транзистор BF494 (2 шт.) (купить на AliExpress).
  7. Транзистор BC547 (2 шт.) (купить на AliExpress).
  8. Варикап BB212 (2 шт.).
  9. Резисторы, конденсаторы, катушки индуктивности согласно далее представленной схемы.

Основные принципы работы проекта

"Сердцем" проекта является DDS модуль AD9850, подключенный к плате Arduino. Аббревиатура DDS (Direct Digital Synthesis) означает прямой цифровой синтез. При этом способе любой сигнал можно сформировать в цифровом виде, а затем преобразовать его в аналоговый вид с помощью цифро-аналогового преобразователя (ЦАП). Ранее на нашем сайте мы рассматривали эту технологию в проекте генератора сигналов на Arduino и DDS модуле AD9833.

Внешний вид DDS модуля AD9850 показан на следующем рисунке.

Внешний вид DDS модуля AD9850

Ранее автор данного проекта (ссылка на оригинал приведена в конце статьи) создавал на основе модуля AD9850 и платы Arduino простой генератор переменной частоты (VFO), работу которого можно посмотреть в следующем видео:

Этот проект генератора переменной частоты он и использовал в качестве основы для создания данного проекта SDR радио на Arduino и DDS модуле AD9850.

Схема проекта

Аналоговая часть схемы нашего SDR приемника на основе платы Arduino и DDS модуле AD9850 представлена на следующем рисунке.

Аналоговая часть схемы SDR приемника на основе платы Arduino и DDS модуле AD9850

На входе схемы стоит приемник прямого преобразования (Direct Conversion receiver), на входе которого находится аттенюатор, роль которого выполняет потенциометр 1 кОм. Далее в схеме идет преселектор (входная цепь), переключаемый между диапазонами 7-14 МГц и 14-30 МГц. Настройка преселектора осуществляется с помощью потенциометра. Напряжение настройки стабилизируется с помощью варикапов BB212, но вместо них можно использовать и стабилитрон (zener diode) на 6.8 V или 8.2 V.

Далее в схеме располагается усилитель радиочастоты (УРЧ), который улучшает чувствительность приемника и предотвращает просачивание сигнала гетеродина (смесителя) в антенну. Смеситель построен на основе переключателя 74HC4066. С помощью потенциометра 5 кОм производится обнаружение самого слабого AM сигнала от мощных вещательных станций. Чаще всего это производится на критической (граничной) частоте, которую можно найти при помощи перестройки преселектора по диапазону частот. За смесителем следует однотранзисторный усилитель, выход которого подключается ко входу звуковой карты компьютера.

Цифровая часть схемы SDR приемника на основе платы Arduino и DDS модуле AD9850 представлена на следующем рисунке.

Аудио фильтрация выполняется одной из бесплатных программ для цифровой обработки сигналов (DSP), например:

  • HDSDR "http://www.hdsdr.de";
  • SDRadio "https://www.sdradio.eu/weaksignals/sdradio/index.html".

Во время записи видео условия для распространения коротких волн (SW) были достаточно плохими, по сравнению с RTLSDR наш проект обеспечивает немного более худшие результаты, но зато как приятно будет многим насладиться приемом коротких волн на радиоприемнике, собранным своими руками.

Исходный код программы (скетча)

Полный комплект всех необходим программ и библиотек для данного проекта от его автора можно скачать по этой ссылке. Здесь, в коде программы я привел только файл основной программы проекта из скачанного архива под названием AD9850_LCD_ROTARY_WMENUS.ino с частично переведенными мною комментариями.

Скетч в файле AD9850_LCD_ROTARY_WMENUS.ino используется для формирования сигнала на выходе схемы в диапазоне от 1 до 30 МГц. Начальная частота устанавливается при помощи внесения изменений в строку: int_fast32_t rx=7200000. Значение частоты на выходе проекта отображается на экране ЖК дисплея 16х2. Если у вас есть возможность воспользоваться калиброванным частотомером, то его с помощью вы можете настроить частоту int32_t freq = frequency * 4294967295/125000000;" чтобы на выходе модуля AD9850 обеспечить более точное значение частоты. При использовании данного скетча вам не нужно подключать переключатель и резистор к контакту A5 платы Arduino.

Также в скачанном архиве проекта вы найдете скетч с именем AD9850_LCD_ROTARY_WMENUS_IF . С помощью этого скетча на выходе устройства также формируется частота в диапазоне от 1 до 30 МГц. Но данный скетч также использует и промежуточную частоту (Intermediate frequency, IF). Начальная частота настраивается также, как и в предыдущем скетче. В случае использования данного скетча вам необходимо подключить переключатель и резистор к контакту A5 платы Arduino как показано на представленной выше схеме проекта. Промежуточная частота (IF) в данном скетче задается с помощью строки: int_fast32_t iffreq = 4192000. Это значение частоты будет вычитаться из частоты нашего основного сигнала. Когда контакт A5 платы Arduino будет замкнут на землю (на нем будет low), то выходная частота и частота, отображаемая на ЖК дисплее, будут равны. А когда на контакте A5 платы Arduino будет напряжение высокого уровня (high), то выходная частота устройства будет равна разности частот, отображаемой на ЖК дисплее, и промежуточной частоты.

Данный синтезатор построен на базе синтезатора частот от трансивера UBITX_V5, по другому она называется RADUINO.

Отличие заключаются в следующем:

1. Изменен контроллер на Arduino Pro Mini (в оригинале Arduino Nano)

2. Изменена схема, а именно добавлены ключики для управления релле ДПФ и усилителя мощности.

3. Изменена прошивка синтезатора, отключен выход 45МГц и перестроен второй выход на ПЧ 8.864МГц (LSB) и 8.867(USB), можно изменять в скетче прошивки, ниже раскажу где. Позже допишу менюшку чтобы можно было указывать ПЧ непосредственно через трансивер.

Принципиальная схема синтезатора (скажу сразу рисовальщик никудышний, но постарался описать все как есть).


Как видим, схема не отличается высокой сложностью и состоит и собственно самого контроллера Arduino Pro Mini (Можно использовать и Nano, Uno), микросхемой синтезатора частот Si5351, а также обвязки для формирования напряжений +5V для Arduino и +3,3V для питания Si5351.

Также на плате присутсвуют Транзисторы для переключения ДПФ построенных на базе BC817 и S8550, данное схемное решение была выбрано из того что находилось под рукой, вместо транзисторных сборок вполне можно использовать микросхему K155ID10 или же её зарубежный аналог 74LS145, но так как данных микросхем у меня небыло сделал вот так, как нарисовано по схеме.

На схеме и на плате, можно также обратить внимание на два разьема IC1 и IC2 для подключения дисплеев.

В этом синтезаторе можно подключить дисплее следующих типов по шине I2C LCD1602, LCD2004, а также можно подключить 2 дисплея LCD1602 (взамен 2004 или если вам информации на LCD1602 покажется мелкая), вот для этого и разрисовал 2 разьема.

Печатная плата в формате lay6

Ниже по ссылке выкладываю плату синтезатора частот, Вы также можете ее редактировать на свой вкус.


Также вы можете скачать его с моего GIT репозитария Ссылка

Настройка синтезатора

1. Чуть позже когда буду возле трансивера, напишу мануал как и где настраивать.

Сборка прошивки из исходных кодов.

Для сборки прошивки нам понадобится:

1. Arduino IDE, скачать можно с официального сайта

2. Плата Arduino Pro Mini (с переходником на USB) либо же другая плата Arduino если вы решили модифицировать под себя.

3. Исходники, которые вы можете скачать выше по ссылкам.

4. Ну и хорошее настроение =)

И так поехали:

1. Запускаем Arduino IDE по ярлыку который у Вас должен появится на рабочем столе после установки.


2. После запуска IDE выбираем где находятся исходники и открываем их, после открытия перед вами откроется несколько вкладок, связанные с проэктом.


3. По умолчанию частот в прошивке записана 8.864 для LSB и 8.867 для USB, вы же можете поменять данные параметры во вкладке ubitx_20 и параметр SECOND_OSC_LSB и SECOND_OSC_USB, на свои (если ПЧ отличается от моей).


4. Во вкладке ubitx.h вы можете выбрать тип используемого дисплея будь-то LCD1602 или же LCD2004, также возможна работа с цветными дисплеями NEXTION (Так как таких у меня нет в наличии, подтвердить немогу)


5. После всех правок нажимаем кнопочку проверить (отмеченная красным кружком на картинке) и начнется процесс компиляции.


6. Если все хорошо, и небыло допущенно ошибок внизу вы увидите сколько использовано места, значит можно подключать Вашу Arduino и прошивать, не забыв при этом выбрать тип платы, и порт на котором она висит.

Диапазон рабочих частот - 0,1 - 99 МГц.
Промежуточная частота (bfo) - устанавливается пользователем от 100кГц до разумного предела
Расстройка +- пока без ограничения, до разумного предела.
Память - 5 ячеек.
Управление АТТ.
Шаг перестройки 10Гц, 100Гц, 500Гц, 1кГц, 10кГц, 100кГц.
Функция точной настройки - включение дополнительного "телеграфного" гетеродина.
Переключение диапазона при превышении частоты 2,4мГц.
При изменении вида модуляции с АМ на LSB USB на выводе JP8 появляется лог 1.

Выходы синтезатора :
CLK0- гетеродин приемника VFO+BFO_AM
CLK1- опорный генератор в режиме LSB USB, в АМ - "телеграфный" гетеродин.
CLK2- VFO в АМ при передаче.

Обновленная схема синтезатра



SDR
SDR синтезатор RZ6FY,модуль сопряжения с com портом на PIC16F628A

Особая благодарность UT3MK за оказанную помощь и содействие!.






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

Читайте также: