Ранее изготовленный апконвертер на 2.4 ГГц имеет дефект в виде дрейфа частоты. Попробуем разобраться, чем вызван дефект, каковы возможные решения, и как они работают на практике.
Суть проблемы такова. В проекте использована плата на базе MAX2870. На плате находится опорный генератор 25 МГц. Генератор обладает некоторой температурной стабильностью. Точно мы ее не знаем. Допустим, что это хороший генератор со стабильностью 20 ppm (parts per million). Тогда на 2.4 ГГц частота может плавать на 2400 * 20 или ±48 кГц. На практике все менее ужасно, поскольку температура меняется не сильно. Но частота плывет, и корреспонденты это отмечают.
Существуют генераторы с температурной компенсацией, или TCXO (temperature compensated crystal oscillator). Хороший TCXO обладает стабильностью порядка 0.5 ppm. В нашем случае это все еще много, ±1200 Гц. К тому же, найти генератор на требуемую частоту, в нужном корпусе и с правильным напряжением питания может быть проблематично.
Что нам нужно – это термоcтатированный генератор, или OCXO (oven controlled crystal oscillator). Это кварцевый генератор, помещенный в корпус, где при помощи нагревательного элемента поддерживается постоянная температура. Распространенным и недорогим OCXO является OSC5A2B02. Он доступен как сам по себе, так и в виде плат с необходимой обвязкой.
Себе я взял плату:
Согласно даташиту [PDF], температурная стабильность OSC5A2B02 составляет 0.01 ppm, или 10 ppb (parts per billion). На частоте 2.4 ГГц это означает ±24 Гц. Ни в телефоне, ни в телеграфе этого никто никогда не заметит.
Существуют еще более точные генераторы со стабилизацией по атомным часам на GPS-спутниках, или GPSDO (GPS disciplined oscillator). Они обеспечивают стабильность порядка 0.5 ppb. Такая точность избыточна, быть может, кроме случая работы в цифровых видах связи. В рамках статьи GPSDO мы использовать не будем.
OSC5A2B02 неудобен тем, что имеет частоту 10 МГц, тогда как плате с MAX2870 нужны 25 МГц. Бывают OCXO и на 25 МГц, но они дороги, редки или обладают недостаточной стабильностью. Как же быть?
В ходе экспериментов был найден ряд решений, которые не работают:
Рабочее решение подсказал Алексей, R2AJP. В целом, MAX2870 может работать от опоры 10 МГц. Нужно только модифицировать прошивку или написать новую. На плате генератора использован микроконтроллер STM32F103. Ранее я использовал его во многих проектах, так что написать прошивку – не проблема.
Вот что получилось в итоге:
Генератор на 25 МГц выпаиваем. Вместо него подводим 10 МГц с OCXO. Места в корпусе не оставалось. Я просверлил отверстие под разъем SMA и разместил OCXO снаружи.
Дисплей не понадобится. Выпаиваем его для снижения потребления тока. Слева от дисплея разведен SWD. Подключаемся к нему STLink'ом.
Прошивка предсказуемо защищена от чтения. Ее можно сбросить, но нельзя записать. Обновить option bytes так, чтобы перейти с уровня защиты Level 1 на Level 0 не представляется возможным. Скорее всего, использован клон STM32F103, где защита flash-памяти реализовано неверно. Подробности можно почерпнуть из RM0394 Reference manual [PDF], раздела 3.5 Flash memory protection. Сдуваем и запаиваем нормальный STM32F103.
Код драйвера MAX2870 берем у Дмитрия, UA3REO. В его же блоге читаем про интерфейс между STM32 и MAX2870. Прозваниваем дорожки мультиметром. Узнаем, что соединение между МК и генератором следующее: CLK = PB15, DATA = PB14, LE = PB13, CE = PB12. Странная разводка. Она несовместима с аппаратным SPI. Ну что ж, будем дрыгать ногами программно. Исходный код прошивки, а также скомпилированные bin- и hex-файлы можно скачать здесь.
Подстройка частоты производится по WebSDR-приемнику после прогрева OCXO. На вход апконвертера подаем несущую. На плате OCXO крутим потенциометр так, чтобы сигнал попал на требуемую частоту.
С доработанным апконвертером я провел многие радиосвязи как телефоном, так и телеграфом. Частота стабильна. Дефект устранен.
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | Самодельный апконвертер для спутника QO-100 | 0 | 5 | 12-05-2026 |
| 2 | Коррекция частоты по маяку QO-100 для Gqrx | 0 | 5 | 07-06-2026 |
| 3 | Детектор наличия ВЧ сигнала от передатчика | 0 | 5 | 28-04-2026 |
| 4 | Как децимация связана с динамическим диапазоном | 0 | 5 | 04-06-2026 |
| 5 | Transistor supraconducteur à base de germanium en phase et en harmonies | 0 | 5 | 10-06-2025 |
| 6 | Opera 132.0.5905.102 Stable update | -8 | 2 | 27-06-2026 |
| 7 | Паяем ФАПЧ на основе чипа 74LV4046 | 0 | 5 | 28-05-2026 |
| 8 | Ветеран СВО рассказал о поразившем его радиоперехвате | 0 | 5 | 27-06-2026 |
| 9 | Ученые РФ работают над технологией, благодаря которой часы на спутниках могут стать точнее | 0 | 0 | 16-07-2019 |
| 10 | Debian Woody на qemu - не работает горячая смена дисков | -5 | 3 | 13-06-2026 |