Генератор для приёма QO-100 на MAX2870

в 13:47, , рубрики: bluepill, diy или сделай сам, QO-100, Rust, rust embedded, Разработка систем связи
Генератор для приёма QO-100 на MAX2870 - 1

Не так давно заинтересовался связью через катарский спутник QO-100. Собственно, он такой единственный геостационарный радиолюбительский, что делает его совершенно уникальным. Странно, что про него на хабре ничего не писали, технически это совершенно новый уровень радиолюбительской связи. Работает он в СВЧ диапазоне, поэтому к аппаратуре предъявляются специфические требования. В этой заметке хотел бы рассказать, как решал неожиданную для меня проблему создания высококачественного генератора на MAX2870 с использованием Bluepill и Rust.

Для тех, кто первый раз слышит о спутнике QO-100, поясню, что для связи с ним достаточно иметь вполне доступную аппаратуру. Для работы используется обычная тарелка спутникового телевидения, приём ведется в диапазоне 10 ГГц с использованием обычного телевизионного конвертера с вертикальной поляризацией.  В качестве приёмника может быть использован простой, дешёвый и широкодоступный RTL SDR, либо любой другой SDR, способный принимать на частоте 740 МГц – это промежуточная частота, которую выдаёт на выходе спутниковый конвертер. Приёмник соединяется с конвертером через простейший инжектор питания. Запускаем на компьютере бесплатную программу SDRConsole, настраиваемся там на частоту в районе 740 МГц и можно слушать передачи радиолюбителей со спутника.

Генератор для приёма QO-100 на MAX2870 - 2

Для настройки тарелки на спутник используются три маяка, которые спутник постоянно передаёт. По максимальному принимаемому сигналу маяков ориентируем тарелку.

Генератор для приёма QO-100 на MAX2870 - 3

Для передачи в космос используется диапазон 2,4 ГГц, что позволяет использовать в качестве усилителей обычные бытовые усилители WiFi сигнала и модули, доступные на алиэкспресс. Для передачи используется, правда, не обычная WiFi антенна, нужен облучатель тарелки с круговой поляризацией. Конструкция его примитивна, описание разных вариантов самостоятельного изготовления доступно в сети. Я в качестве универсального приёмника и передатчика использую ADALM PLUTO SDR и антенну, известную в сети как POTY, сделанную из куска медной водопроводной трубы и пары латунных пластин. Насколько я понимаю, это наиболее простой способ обеспечить передачу на спутник. Мощности в пару ватт и тарелки диаметром 80 см достаточно чтоб вас услышала вселенная.

Я довольно быстро собрал и настроил приёмную часть, но тут же столкнулся с проблемой, о которой многие писали – приём передач со спутника идёт как в старой ламповой радиоле. Пока лампы не прогреются, звук принимаемых станций “плавает”. Так и в случае с приёмом спутника приходится полчаса “прогревать” аппаратуру, пока станции не перестанут убегать с настроенной частоты. Но и после прогрева всё равно приходится вести ручную подстройку.

Причина проблемы кроется в конструкции спутникового конвертера. В современных моделях конвертеров для опорного генератора используется обычный кварцевый резонатор на 25 МГц, частота которого где-то в недрах конвертера умножается в 390 раз, смешивается с сигналом со спутника, после чего мы и получаем на выходе конвертера 740 МГц. Я всегда считал кварцевые генераторы очень стабильными, но при работе на СВЧ они уже не выглядят хорошим решением. Их стабильности частоты уже недостаточно для комфортного приёма узкополосных радиосигналов, которые используются радиолюбителями. 

Хитрая программа SDRConsole содержит в себе возможное программное решение проблемы. Поскольку точно известны частоты передаваемых спутником маяков, то можно настроить приём на один из них и указать программе следить за принимаемой частотой маяка. Если частота убегает, то программа самостоятельно будет подстраивать приём так, чтобы частота маяка оставалась постоянной.

Некоторое время я использовал такой вариант приёма, он вполне рабочий, но всё же не совсем комфортный. Внутренний перфекционист во мне желал лучшего. А для этого нужно было сделать и подключить к конвертеру высокостабильный генератор. Задача мне не показалось сложной, поскольку в сети есть масса примеров как это сделать, начиная от самостоятельной доработки конвертера и заканчивая всевозможными схемами генераторов. Стоит отметить, что уже доработанные конверторы, да и полные комплекты можно купить, в том числе и в РФ, например, у RA3APW. Мне же хотелось самому попробовать всё, что возможно, сделать своими руками и поэкспериментировать.

Примерно так выглядит плата LNB после доработки
Примерно так выглядит плата LNB после доработки

Доработка конвертера сводится к тому, чтобы удалить у него с платы кварцевый резонатор и к одному из выводов подключения резонатора через простую согласующую цепь подвести сигнал с внешнего стабильного генератора. Для удобства доработки обычно берут конвертеры с выходами на два телевизора. Один из выходов удобно использовать как разъем для подключения генератора. Я пробовал переделывать разные модели конвертеров и надо сказать, более современные модели переделать было несколько сложнее – там используются очень мелкие SMD детали и, при всей простоте переделки, нужны хорошие навыки пайки.

Но самое главное – это генератор. Я сразу наметил, что хочу использовать в качестве опоры так называемый GPS DОCXO, что по-русски обозначает термостабилизированный кварцевый генератор, автоматически подстраиваемый по сигналу часов со спутников GPS. Условно говоря, спутники передают сигналы точного времени, которые выдают бортовые атомные часы очень высокой точности и стабильности. Эти сигналы используются для постоянной корректировки частоты кварцевого генератора. На том же Алиэкспрессе достаточно предложений таких генераторов. Я купил один такой, но у него выходная частота оказалась нерегулируемой, она всегда 10 МГц. Теперь нужно было как-то переделать её в 25 МГц.

Первый вариант, который я опробовал, это использование удобной микросхемы ICS512. Внутри она содержит PLL синтезатор, и эта микросхема как раз способна умножать частоту в 2,5 раза. Очень удобное и недорогое решение проблемы, думал я, пока не узнал, что такое фазовый шум. Я быстро сделал на этой микросхеме умножитель и подключил к конвертеру. Но вместе с ожидаемым стабильным приёмом я получил странный эффект – принимаемые сигналы стали слабыми и менее разборчивыми. На форумах вычитал, что это может быть следствием высокого фазового шума. На простой измерительной аппаратуре, которая мне доступна, фазовый шум  измерить трудно, а при умножении частоты в 390 раз шум многократно возрастает и портит приём. При делении же частоты фазовый шум вроде как уменьшается. Самое же неприятное, что простыми средствами, типа установки фильтров, сложно уменьшить этот вид шума.

Тем не менее, я решил попробовать вариант с фильтром. Сделал делитель частоты 10 Мгц на 2 на 155ТМ2. У полученного на выходе меандра в 5 МГц как раз 5 гармоника нужной мне частоты 25 МГц. Купил горсть кварцев на эту частоту, промерил параметры, отобрал похожие дабы сделать узкополосный фильтр, чтобы хоть как-то уменьшить фазовый шум. Но с аналоговой техникой у меня всегда проблемы с настройкой – при узкой полосе трудно попасть чтоб 25 МГц было в полосе пропускания, пришлось полосу расширять. В итоге сделал 4 кристальный фильтр, усилитель после него еще поставил, тогда конвертер заработал. Надо сказать, что результат получил намного лучше, чем с ICS512. Однако сложность настройки мне не понравилась, решил попробовать что-то ещё.

Генератор для приёма QO-100 на MAX2870 - 5

Поиск возможных вариантов на Алиэкспресс навёл меня на модуль генератора на микросхеме MAX2870. Она не такая дешевая, как ICS512, но обладает гораздо большими возможностями. Самое главное, внутри у неё имеется основной СВЧ генератор от 3 ГГц до 6 ГГц, делением частоты которого получается выходной сигнал. Как следствие, у микросхемы заявлен низкий уровень фазового шума. Ещё у выбранного модуля есть вход для внешнего опорного генератора, который может использоваться вместо распаянного на модуле. То, что мне нужно. Как оказалось при осмотре готового модуля, этот вход по факту является выходом установленного кварцевого генератора. Так что переключение на внешний потребует удаления перемычек – не очень это всё удобно. Сама плата средненького качества, видна ручная пайка всего, да и разводка высокочастотных цепей оставляет вопросы. Экранирования нет вообще. Но для нужной мне выходной частоты в 25 МГц это не так принципиально.

Единственный существенный для меня недостаток – необходимость управляющего микроконтроллера, который по интерфейсу SPI должен запрограммировать нужную выходную частоту. Всё это усложняет конструкцию и потребление энергии.

В запасниках у меня был модуль bluepill на stm32, его то я и решил использовать для настройки генератора. Возможности bluepill, конечно же, явно избыточны для такой задачи, но цена его бросовая, почему бы и нет? Кроме того, у него как раз 3 вольтовая логика, не надо преобразователей уровней, которые бы понадобились при использовании какого-нибудь Arduino. Blupill напрямую подключается к модулю генератора, больше никаких деталей не надо. Нужна только прошивка для настройки генератора.

Генератор для приёма QO-100 на MAX2870 - 6

Тут надо сказать, что я являюсь энтузиастом использования языка Rust для создания программ для МК, поэтому я сразу отправился на crates.io в поисках драйвера для MAX2870. К сожалению, ничего не нашёл, но поиск в сети навел на пару библиотек для Arduino, которые я использовал в качестве шпаргалки. Кроме того, китайский продавец модуля прислал мне какой-то код настройки, написанный на C. Как оказалось, для запуска генератора в него нужно отправить пару десятков байт, так что программа оказалась совсем простой. Вопрос только как определить значения этих байт. Судя по даташиту на микросхему, при одной и той же заданной выходной частоте генератора есть несколько вариантов настроек. Мне кажется, тут возможность выбора лишняя, так что удобной в использовании MAX2870 я назвать не могу. В конце концов я вручную рассчитал все значения и захардкодил их в программу.

Программу можно скачать здесь https://github.com/lesha108/max2870gen

Удивительно, но программа заработала с первого раза и генератор выдал ожидаемую частоту. И тут не обошлось без ложки дёгтя – сигнал на выходе оказался совсем не синусоидальным и с частоколом гармоник. Так что без ФНЧ на выходе работать с этим генератором нельзя. Я применил фильтр по такой схеме, с ней конвертер завелся и заработал вполне хорошо.

Генератор для приёма QO-100 на MAX2870 - 7

Пока я использую модуль со встроенным опорным генератором, следующим шагом будет подключение к GPS DO. Как выяснилось, у него оказался выход синусоидального сигнала 10 МГц, так что мне еще предстоит сделать преобразователь в меандр с уровнями 3 вольтовой логики, да такой, чтоб джиттер был небольшой. Так что поле для творчества и экспериментов еще большое. Если кто-то уже решал подобную задачу, поделитесь в комментариях.

В заключение пожелаю всем энтузиастам спутниковой связи хорошего приёма на 59!

Автор:
lesha108

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js