Рубрики
Схемы на Arduino

SDR радио на Arduino и DDS модуле AD9850

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

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

Оборудование для 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.

AD9850 – это устройство с высокой степенью интеграции, в котором используется комбинация усовершенствованной технологии прямого цифрового синтеза (DDS, direct digital synthesis), высококачественного цифро-аналогового преобразователя и компаратора, обеспечивающая функции синтеза частоты с цифровым программным управлением и генерации тактовых сигналов. При работе от точного опорного источника тактового сигнала AD9850 формирует стабильный аналоговый выходной синусоидальный сигнал с программируемыми частотой и фазой. Этот синусоидальный сигнал может быть использован непосредственно в качестве источника частоты или преобразован внутренними средствами компонента в прямоугольное колебание. Более подробно о данном модуле можно прочитать на сайте analog.com.

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

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

Этот проект генератора переменной частоты он и использовал в качестве основы для создания данного проекта 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».

Автор проекта использовал программу SDRadio как самую простую для обработки радиосигналов. Также с нашим приемником можно использовать бесплатную программу «MULTIPSK» (http://f6cte.free.fr/index_anglais.htm), с помощью которой можно декодировать различные цифровые радиосигналы, например, от WeatherFAX – это можно посмотреть на представленном ниже видео проекта.

Во время записи видео условия для распространения коротких волн (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), то выходная частота устройства будет равна разности частот, отображаемой на ЖК дисплее, и промежуточной частоты.

Видео, демонстрирующее работу проекта

Также можете посмотреть еще очень подробное обучающее видео (на английском языке) по принципам работы технологии SDR (если кто то хочет разобраться в этих вопросах поглубже).

Источник статьи

6 ответов к “SDR радио на Arduino и DDS модуле AD9850”

Здравствуйте. У меня для дипломного проекта это. Как мне сделать это?.

Ну здесь вроде все описано как его делать, у вас какой то конкретный вопрос?

Добрый день. Ну обычно все подобные простые SDR устройства подключаются к компьютеру для удобства отображения информации. А без компьютера вы что с его помощью хотите делать?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *