Найти в Дзене
Terrabyte

Синтезатор частоты для любительского радиоприемника на SI5351: вариант на Arduino Pro Micro

Оглавление

Друзья привет!

Бывают у меня в жизни дни, когда очень хочется послушать любительский эфир - проникнуться духом, так сказать. И как настоящий радиолюбитель я считаю ниже своего достоинства покупать для этой цели промышленный радиоприемник! Это ж сколько удовольствия пропадет! Так вот, довольно давно я собрал для любительского приема несложную схему приемника прямого преобразования на микросхеме R174ХА2. В свое время эту микросхему для коротковолновиков открыл замечательный специалист-ученый-радиолюбитель Владимир Тимофеевич Поляков. Одна из его первых схем на этой микросхеме была опубликована в 12-м номере журнала Радио за 1997 год.

Радиоприемник Полякова на 174ХА2, Радио, №12, 1997г.
Радиоприемник Полякова на 174ХА2, Радио, №12, 1997г.

С тех пор эта схема многократно видоизменялась под различную элементную базу. Добавлялись усилители, менялись фильтры, варианты настройки, входные цепи. Одну из таких вариаций я и собрал в свое время. Получилась вот такая конструкция:

Моя конструкция радиоприемника на К174ХА2
Моя конструкция радиоприемника на К174ХА2

Вначале она была без фальш-панели и настройка производилась при помощи вращения конденсатора переменной емкости напрямую! Ох и мучений было с точной настройкой! Дышать нельзя было при настройке! Потом, когда появился 3D-принтер, я добавил фальш-панель, под которой скрыл самодельный редуктор (тоже изготовленный методом 3D-печати). Стало гораздо удобнее! А вот крышку так и не доделал!

Так вот, недавно я извлек этот приемничек из коробки - дай, думаю, послушаю, что за жизнь идет на 40 метрах. Включил и очень удивился! Кроме жутких помех - ничего! Оно днем так всегда было, но та же картина меня ждала и ночью! Хорошо, попробую на другом диапазоне. Попробовал на 20 метрах. Та-же картина! Антенна у меня - 10-метровый кусок витой пары, протянутый снаружи дома между окнами и балконом. Не фонтан, но раньше много чего ловил с ней. Слышал Урал, Сибирь и Средиземноморье... А уж китайские вещалки, так просто оглохнешь!

Я полез на форумы радиолюбителей. Может уже никто не работает? Нет, работают! Даже в Москве работают! И разобрала меня охота просканировать разные любительские диапазоны, а попутно удовлетворить и инженерное самолюбие. То есть сделать своими силами что-то на современном уровне. Может SDR, может еще что! Пока не знаю. Скорее всего SDR. В следующих статьях узнаем... А, как известно, любой приличный приемник начинается с гетеродина или ГПД. А любой многодиапазонный приемник начинается с синтезатора частоты. Так пусть это будет первым шагом в моих поисках места в эфире, в котором можно удовлетворить свои коротковолновые хотелки!

Итак, делаем синтезатор частоты для приема радиолюбительских КВ-станций с перспективой его использования в радиолюбительском приемнике.

Схема и элементная база синтезатора частоты

Основные варианты синтезаторов, которые обсуждаются в радиолюбительском пространстве строятся либо на чипах SI5351, либо на AD9850 (AD9851). Почитав о преимуществах и недостатках обеих микросхем, я остановился на первой. Если вкратце, то вот почему: больше диапазон, многоканальность, высокий уровень сигнала, согласованный с 50-омным выходом, меньший уровень интерференционных частот (спуров). AD9850, конечно, позволяет получать гармонический сигнал (у SI5351 только прямоугольный), но для схемотехники современных ключевых смесителей это требование необязательно. Единственная сильная вещь у AD - беспроблемное получение сдвинутых по фазе сигналов, что важно для использования в квадратурных смесителях. SI-шка в этом плане более проблемна. Но, формировать сигналы со сдвигом на 90 градусом можно и по-другому... Наконец, в пользу выбора SI5351 играет его цена, которая в разы меньше чем у AD. Выбор сделан!

Схемотехника синтезаторов частоты на SI5351 хорошо известна. Более того, в продаже можно найти относительно недорогие готовые изделия (от 2,5 тысяч рублей), построенные на знаменитых Atmel-овских процессорах. Для страстных радиолюбителей в интернете есть много проектов синтезаторов, построенных на недорогих готовых модулях. В основе таких проектов, как правило, лежит микроконтроллер Arduino Nano или Mini. Один из таких проектов я решил и взять за основу. Речь идет о проекте универсального синтезатора на микросхеме SI5351 Николая Большакова, RA3TOX, из Нижнего Новгорода. Ссылку не привожу, она все равно без VPN не открывается. Но если очень захочется, то через поиск можно найти. Прошивка микроконтроллера обеспечивает работу синтезатора в диапазоне от 10 кГц до 100 МГц. Кроме того, предусмотрено формирование сигнала основной частоты (для передатчика), частоты гетеродина для 1-го преобразования частоты и промежуточной частоты для 2-го. То есть на основе синтезатора вполне можно сделать и трансивер. Я себе такой задачи не ставлю, но возможность пусть остается.

Я решил творчески подойти к проекту и немного доработать/переработать его. Во-первых, вместо Arduino Nano или Mini я решил использовать Arduino Pro Micro, на микроконтроллере Mega 32U4. По цене это то же самое, а то и дешевле, но способность этой платформы прошиваться и работать c USB лично у меня вызывает полный восторг! В свое время я успешно использовал этот контроллер в конструкции безопорного руля для компьютерных гонок.

Его и буду использовать.

За основу для синтезатора я тоже возьму готовый модуль, который недорого продается сейчас во всех интернет-маркетах. Вот так он выглядит.

Плата генератора на базе SI5351
Плата генератора на базе SI5351

Есть версия с разъемами, чуть дороже, но они нам не очень-то и нужны. Можно найти и микросхему, но придется повозится с согласованием уровней. SI-шка требует 3,3 Вольта, а Arduino - 5 вольт. На плате же уже установлены преобразователи уровней и, в качестве дополнительного бонуса, отдельный стабилизатор напряжения, что говорит в пользу такого решения. Да и вся остальная разводка и обвязка микросхемы тоже сделана на уровне!

Основной элемент управления - обычный энкодер, а устройство отображения - OLED-дисплей диагональю 0,96 дюйма.

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

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

Схема соединений модулей синтезатора частоты
Схема соединений модулей синтезатора частоты

В оригинальном проекте Николая Большакова есть еще пара кнопок ("Калибровка", "Смена частоты передачи") и переключатель расстройки. Я решил пока их не добавлять, но при необходимости сделать это не составит труда. Приступаем к изготовлению!

Изготовление синтезатора частоты на SI5351

Все узлы, которые нам понадобятся я сложил на столе.

Узлы для сборки синтезатора частоты
Узлы для сборки синтезатора частоты

В основу конструкции я заложил макетную плату-слепыш размером 3 на 7 сантиметров. Она уже снабжена крепежными отверстиями по углам, которые мы, в последствии, используем при сборке готового изделия. Полагаю, что особо комментировать здесь нечего. Все компоненты я ранее упомянул. Начинаем сборку.

Прежде всего, проделаем в плате два отверстия диаметром 2 мм для крепления энкодера. Отверстия точно совпадают с отверстиями печатной платы. Размечать ничего не нужно. Просто сверлим.

Отверстия для установки энкодера (справа)
Отверстия для установки энкодера (справа)

Относительно горизонтальной оси симметрии отверстия смещены вверх.

Устанавливаем энкодер, используя просверленные отверстия для продевания его крепежных ушек.

Энкодер установлен
Энкодер установлен

Крепежные ушки с обратной стороны загибаются, а выводы припаиваются к монтажной панели.

Энкодер с обратной стороны
Энкодер с обратной стороны

С другого края платы запаивается уголковый 4-пиновый разъем. Этот разъем предназначен для подключения питания и подключения к микроконтроллеру по последовательному интерфейсу UART. Последняя функция - на всякий случай, поскольку у нашей Micro есть поддержка USB. Тем не менее, я решил сделать UART - мало ли что!

Установлен разъем питания-UART
Установлен разъем питания-UART

Следующим шагом запаиваются две 4-пиновых гребенки вертикальных штырьковых контактов. Они потребуются для крепления платы микроконтроллера.

Две группы контактов крепления микроконтроллера
Две группы контактов крепления микроконтроллера

У него конечно больше выводов, но больше нам не потребуется.

Теперь Нужно примерить микроконтроллер, надев его на впаянные штырьки.

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

Сделать это нужно чтобы правильно установить 4-пиновую колодку под модуль синтезатора. Видно, что между платой контроллера и гребенкой синтезатора есть свободный ряд контактов. после этого микроконтроллер можно впаять на место. Впаивать желательно так, чтобы гребенки лишь слегка (не более 1 мм) выступали над поверхностью платы.

Установка микроконтроллера Arduino Pro Micro
Установка микроконтроллера Arduino Pro Micro

После этого, с обратной стороны прокладываем дорожки питания и последовательного интерфейса.

Дорожки питания и UART
Дорожки питания и UART

Дорожки выполнены из откусанных выводов DIP-элементов. Обратите внимание, что верхний контакт внешнего разъема сейчас подключен к пину Vcc микроконтроллера. На этот пин должно быть подано +5 В. Но, во время отладки питание будет подаваться через USB-разъем, а в реальной конструкции, скорее всего, питание будет не 5-вольтовым, а, например, 9-ти. Тогда, подавать питание нужно будет через пин RAW микроконтроллера, который снабжен стабилизатором. Для этого соединить крайний пин внешнего разъема нужно с крайним пином контроллера. Это Вывод A на фото выше. Символ "01" как раз и обозначает место короткой перемычки, которую надо установить в этом случае.

Следующий шаг - соединяем средний вывод энкодера и один из контактов его кнопки перемычкой. Это общий провод.

Общий провод энкодера
Общий провод энкодера

Переворачиваем плату и с другой стороны соединяем проводом тот же средний вывод и вывод "Земли" микроконтроллера. Я использую провода от старых витых пар Ethernet-кабелей.

Земля энкодера соединяется с землей контроллера
Земля энкодера соединяется с землей контроллера

Внимание! На фото выше я немного ошибся! Подключил землю к выводу RST контроллера. Нужно было подпаять левый конец провода к следующему пину (левее). Я потом перепаял.

Дальше подключаем все выводы энкодера к микроконтроллеру используя имеющиеся навыки художественной укладки провода.

Энкотер подключен к микроконтроллеру
Энкотер подключен к микроконтроллеру

Надеюсь, что по фото все понятно.

На следующем шаге запаиваем плату синтезатора.

Установлен модуль синтезатора на SI5351
Установлен модуль синтезатора на SI5351

Модуль устанавливается примерно на том же уровне, что и плата микроконтроллера. Должны оказаться распаянными выводы питания, "Земли" и интерфейса I2C (SDA и SCL).

Переворачиваем конструкцию и с обратной стороны подводим к модулю SI5351 провода питания и земли.

Подпаиваем провода питания и земли
Подпаиваем провода питания и земли

Желтый - провод питания рекомендуется заменить на индуктивность 100 мкГн для снижения уровня пульсаций. Вместе с входным конденсатором стабилизатора напряжения на плате синтезатора они образуют хороший фильтр подавления импульсных помех. Я сообразил это потом. Может быть поставлю, если будут проблемы. Пока оставил так.

Монтируем OLED-дисплей.

Установлен OLED-дисплей на контроллере SSD1306
Установлен OLED-дисплей на контроллере SSD1306

Чтобы было понятнее, в какие отверстия монтировать, привожу вид с обратной стороны.

Вид с обратной стороны
Вид с обратной стороны

Справа остается три пустых отверстия. Дальше, контакты экрана соединяются с контактами платы микроконтроллера при помощи коротких проводков.

Соединение экрана с платой микроконтроллера
Соединение экрана с платой микроконтроллера

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

Питание экрана подпаивается к пину VCC
Питание экрана подпаивается к пину VCC

На последнем этапе соединяем выводы интерфейса I2C синтезатора и контроллера двумя проводками.

Соединение синтезатора и микроконтроллера
Соединение синтезатора и микроконтроллера

Все! Конструкция готова. У меня все это заняло примерно 2 часа. Вот так выглядит собранная конструкция. Все вполне прочно и жестко.

Собранная конструкция
Собранная конструкция

Кстати, обратите внимание - вывод земли от энкодера уже припаян правильно.

Настройка, софт и испытания синтезатора

Управляющую программу, которую автор конструкции выложил в открытый доступ пришлось серьезно переделывать. Прежде всего? это было связано, конечно же, с использованием Arduino Pro Micro вместо Nano. Тем не менее, каково же было мое изумление, когда запустив черновик переделанной программы (просто чтобы убедиться в работоспособности конструкции) я увидел на экране вместо стабильной частоты какие-то "игры разума". Частота гуляла как только ей заблагорассудится. Нажатие пальцем на кварц синтезатора вообще уводило частоту непонятно куда и даже ее среднее значение не было близко к заданной величине. Кроме того генерация регулярно срывалась.

Самопроизвольный срыв генерации (выставлена частота 500 кГц)
Самопроизвольный срыв генерации (выставлена частота 500 кГц)

Конечно такого быть не должно. Я начал рассматривать модуль под сильным увеличением. Выяснилось, что в модуле установлена не оригинальная SI5351, а ее китайский клон MS5351. Я было полез в интернет, но очень быстро убедился, что по своим характеристикам они примерно равноценны. Так утверждал знающий народ и оснований не верить ему не было. Остается кварц. Что хотите со мной делайте, но кварц должен оставаться кварцем даже при нажатии на него пальцем. Да, частота плыть может, особенно при умножении, но не в разы же! Залез в интернет-магазин, в котором покупал плату, читаю в комментариях - точно! Кварцы - общая беда всех китайских плат. Ставят что попало! Народ смело меняет их! Причем рекомендуют кварцы от материнских плат, отличающиеся, как правило, хорошими характеристиками. У меня как раз в наличии была старенькая донорская плата от Asus. Я с нее уже кое-что поснимал!

Донорская материнская плата от Asus
Донорская материнская плата от Asus

А теперь внимание!

Кварц на 25 МГц
Кварц на 25 МГц

Вот то, что мне нужно! Выпаиваю кварц из старой материнки.

Выпаянный кваревый резонатор
Выпаянный кваревый резонатор

Кварц с платы синтезатора выпаиваю тоже. Даже без подогрева и фена. Просто сверху паяльник, разогретый до 300 градусов приложил и через 5 секунд кварц отлепился!

Модуль синтезатора без кварца
Модуль синтезатора без кварца

Я думал, что греть феном придется, поэтому предварительно снял провода I2C-интерфейса, но греть не пришлось! Легко снялся так. Теперь устанавливаем кварц с материнской платы предварительно немного подогнув его ножки вовнутрь.

Установлен кварц от материнской платы
Установлен кварц от материнской платы

Если посмотреть ближе:

Кварц от материнской платы на модуле синтезатора
Кварц от материнской платы на модуле синтезатора

Держится прочно, хотя эстетика немного пострадала. Для любителей эстетики можно заказать кварц в ЧИП-ДИП-е.

Только после описанной процедуры сигнал застыл как вкопанный! Вот 500 кГц.

Сигнал 500 кГц
Сигнал 500 кГц

А вот 10 МГц. Тут уже щуп осциллографа начинает оказывать заметное влияние.

Сигнал 10 МГц (заметно влияние щупа)
Сигнал 10 МГц (заметно влияние щупа)

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

А вот с софтом нехорошо получилось! Софт пришлось перелопатить кардинально, начиная от использованных библиотек и заканчивая логикой работы отдельных функций. Все стало лаконичнее и компактнее. Собственно, надо отдать должное автору - он предупреждал, что программистом не является и решал только задачу реализации определенного функционала. За это ему большое спасибо! А мы уж доработаем. В конце я приложу свой вариант софта со всеми необходимыми библиотеками. Удалось снизить объем кода примерно на 30 процентов. С большой радостью я избавился от Adafruit-овских библиотек работы с OLED, заменив их более подходящей и легковесной OLED_I2C-master. Кстати, выяснилось, что библиотеки от Adafruit некорректно работают с контроллером SSD1315, которым внезапно оказался оснащен мой OLED-экранчик. Изображение выводилось через строку. Кроме того я переделал общую структуру программы, убрав из нее ненужные функции калибровки и расстройки частоты. Корректировка частоты теперь задается константой, а расстройку, при необходимости легко вернуть. Для остальных функций памяти тоже еще достаточно.

не исключаю, что в будущем софт еще раз придется пересмотреть в зависимости от логики управления приемником-смесителем, может фильтрами... Не знаю пока. Главное, возможностей, на мой взгляд, вполне достаточно.

Еще, я немного переделал вывод на экран. Теперь показания частоты читаются проще. Вот несколько скринов с показаниями экрана и формой сигнала.

1 МГц
1 МГц
30 МГц
30 МГц

На 30 МГц сигнал на моем осциллографе становился совсем похожим на синус,а амплитуда потихоньку начала убывать. Но ближе к 50 Мегагерцам она снова стала расти. Максимум достигался на 55 Мегагерцах.

55 МГц
55 МГц

Дальше опять пошло снижение. Наконец, почти максимальная частота для моего изделия, но не для микросхемы, которая может в разы выше. Мне просто не надо! Вообще, хватило бы и 30!

99 МГц
99 МГц

Дисплей крупным планом.

Дисплей синтезатора
Дисплей синтезатора

Как видно, частота выводится в Герцах с разделительными точками для удобства восприятия.

На этом первый вариант к современному приемнику радиолюбителя можно считать законченным. Дальше что? Наверное смеситель. А может и весь приемник сразу... Пока не решил. Разбираюсь с вариантами. Присоединяйтесь!

Архив с программным обеспечением (скетч и необходимые библиотеки) доступен по ссылке:

SI5351-synthesizer.zip

Спасибо, что читаете-смотрите Terrabyte! Подписывайтесь, если вам интересна радиолюбительская тематика, микроконтроллеры, мини-ПК, необычные компьютерные решения и инновационные разработки! Спасибо всем, кто поддерживает меня своими комментариями и лайками!

Наша группа ВК: https://vk.com/terrabyte

Наш канал на VK-Video: https://vk.com/video/@terrabyte/all

Интересные самоделки: