TCXO и точность частоты хотспота: почему модем уходит

Категория: КалибровкаСложность: ~9 минут

Хотспот собран, провижен прошёл, в логах вроде всё чисто, рация лежит в полуметре от платы — а связи нет. Или связь есть, но качество данных отвратительное: пакеты теряются, Last Heard моргает, SMS не доходит, а в логах модема растёт BER. В девяти случаях из десяти корень проблемы — не «софт глючит» и не «рация плохая», а уход частоты: реальная частота передатчика хотспота отличается от той, на которой слушает рация, на несколько килогерц. И главный виновник этого ухода — задающий генератор на плате модема. Разберёмся, почему дешёвый кварц «плывёт», что такое TCXO и как лечить уход и программно, и аппаратно.

Симптом: рация рядом, а связи нет

Классическая картина ухода частоты выглядит так:

  • Рация и хотспот стоят на одном столе, RSSI отличный (-40…-50 dBm), но декодирование рассыпается.
  • BER в логах модема стабильно высокий — не разовые всплески, а постоянные 3–10 % и выше, тогда как норма для уверенного приёма — единицы десятых процента.
  • Приём в одну сторону работает хуже другой: рация слышит хотспот, а хотспот рацию — нет, или наоборот.
  • Утром связь есть, к вечеру (когда плата прогрелась в корпусе) — пропадает. Или наоборот: «холодный» хотспот молчит, через 10–15 минут прогрева оживает.

Последний пункт — почти стопроцентный диагноз температурного ухода. Если поведение зависит от того, сколько модем проработал и насколько нагрелся, дело именно в стабильности задающего генератора.

Почему важна именно точностьВ DMR используется узкополосная 4FSK-модуляция с разносом несущей всего 12,5 кГц. Приёмник ожидает несущую в очень узком окне. Уход на 1–2 кГц уже сдвигает символы по частоте настолько, что демодулятор начинает путать дибиты — отсюда и рост BER без всякой связи с уровнем сигнала.

Причина: кварц уходит от температуры и разброса

Сердце любого радиомодема — опорный генератор, который задаёт точку отсчёта для синтезатора частоты. На бюджетных платах это обычный кварцевый резонатор (XO) на 12 МГц или 14,7456 МГц без какой-либо компенсации. У такого кварца две беды.

Начальный разброс. Заявленная точность дешёвого кварца — порядка ±20…±50 ppm (частей на миллион). На рабочей частоте 434 МГц даже 10 ppm — это уже 4,34 кГц ухода. То есть две одинаковые платы из одной партии могут с завода отличаться по частоте на несколько килогерц просто из-за допуска на изготовление резонатора.

Температурный дрейф. Частота кварца плавает по температуре по характерной параболической кривой. У обычного XO коэффициент может достигать тех же ±20…±40 ppm в диапазоне рабочих температур. Когда плата греется — от собственного потребления, от процессора Pi под ней, от закрытого корпуса, от летней жары — несущая уползает. Именно поэтому хотспот «уходит» в процессе работы: холодный старт даёт одну частоту, прогретый режим — другую.

Складываем разброс и дрейф — и получаем модем, который ни на заводской частоте не стоит, ни на месте не держится.

Что такое TCXO и как он это лечит

TCXO (Temperature Compensated Crystal Oscillator) — термокомпенсированный кварцевый генератор. Внутри корпуса, помимо самого резонатора, стоит схема компенсации: она измеряет температуру и подстраивает нагрузку на кварц так, чтобы скомпенсировать ту самую параболическую кривую дрейфа. На выходе — стабильная частота независимо от прогрева.

Цифры говорят сами за себя. Типичный TCXO для MMDVM-плат имеет точность ±0,5…±2 ppm против ±20…±50 ppm у голого кварца. На 434 МГц это разница между уходом в сотни герц и уходом в несколько килогерц. И, что важнее, TCXO держит эту частоту в диапазоне температур — хотспот ведёт себя одинаково и холодным, и прогретым.

Практический вывод: TCXO не отменяет калибровку (начальный сдвиг всё равно нужно выбрать программно), но он убирает плавание. Без него вы калибруете один раз на холодную, а через час всё разъезжается снова.

Как это проявляется на ADF7021-платах

Большинство любительских хотспотов построены на трансивере ADF7021 — это и HS_Hat (одночастотные платы для Raspberry Pi), и Dual_Hat (двухчастотные). ADF7021 сам по себе хороший чип, но его частотная стабильность целиком зависит от внешнего опорного генератора, который ему подаётся на вход REF.

Здесь и кроется главное различие версий плат:

  • Платы без TCXO (ранние и самые дешёвые клоны HS_Hat) тактируются обычным кварцем. Они дешевле, но страдают всеми описанными проблемами: их обязательно нужно калибровать, и они склонны уходить при прогреве.
  • Платы с TCXO (качественные HS_Hat и большинство Dual_Hat) ставят ±1…±2 ppm генератор на вход опоры. Такие держат частоту стабильно и требуют лишь однократной подстройки сдвига.

Если вы выбираете между вариантами, разница в платах подробно разобрана в материале про HS_Hat или Dual_Hat. Для борьбы с уходом частоты наличие TCXO — куда более значимый критерий, чем число частот.

Как отличить плату с TCXOЗагляните на плату рядом с микросхемой ADF7021: TCXO — это металлический прямоугольный корпус (обычно 3,2×2,5 мм или крупнее) с маркировкой частоты, иногда подписанный TCXO в шелкографии. Обычный кварц — это два-три вывода и характерная «бочка» или плоский корпус без схемы внутри. Если продавец молчит про TCXO — почти наверняка его там нет.

Лечение программное: RXOffset, TXOffset и калибровка по BER

Начальный сдвиг частоты (тот, что от заводского разброса) лечится без паяльника — программно. В конфигурации MMDVM есть два параметра:

  • RXOffset — поправка частоты приёмника, в герцах.
  • TXOffset — поправка частоты передатчика, в герцах.

Эти смещения сдвигают реальную частоту относительно заданной в прошивке, компенсируя уход опорного генератора. Задача калибровки — подобрать такие значения, при которых BER минимален. Удобнее всего идти от наблюдаемого BER: ставите рацию на фиксированную частоту, передаёте с хотспота и крутите TXOffset, пока BER в логах не упадёт к нулю; затем по обратному направлению подбираете RXOffset. Пошагово эта процедура и инструмент для неё описаны в гайдах по калибровке частоты и MMDVMCal по шагам.

Что считать хорошим результатом — смотрите в материале BER: норма: ориентир — устойчивые единицы десятых процента и ниже. Параллельно стоит проверить, что уровень приёма выставлен корректно, иначе хороший BER можно перепутать с проблемой усиления — об этом в заметке про RSSI-калибровку.

Важное ограничение. Программная калибровка фиксирует один сдвиг — на ту температуру, при которой вы калибровали. На плате с TCXO это работает прекрасно: подобрал раз и забыл. На плате без TCXO калибровка справится с разбросом, но не с дрейфом — прогрелась плата, и подобранный сдвиг снова неверен. Это фундаментальное различие: софт чинит постоянное смещение, аппаратная компенсация чинит плавание.

Лечение аппаратное: плата с TCXO

Если хотспот стабильно уходит именно при прогреве и никакой TXOffset не держится дольше получаса — это не лечится софтом. Варианты:

  • Заменить плату на версию с TCXO. Самое надёжное и, по совокупности нервов, самое дешёвое решение. Разница в цене между клоном без TCXO и нормальной платой — копеечная на фоне потраченного времени.
  • Перепаять опорный генератор. Для тех, кто дружит с паяльником: меняем кварц на TCXO той же частоты с выходом, совместимым со входом REF ADF7021. Требует аккуратности и понимания, какой именно сигнал ждёт чип.
  • Стабилизировать тепловой режим. Полумера: вынести плату из тесного корпуса, обеспечить обдув, исключить нагрев от Raspberry Pi. Уменьшает амплитуду дрейфа, но не убирает его.

При выборе диапазона и запаса по сдвигу полезно понимать пределы перестройки модема — это разобрано в заметке про диапазон модуляции и перестройки.

Как измерить уход

Прежде чем что-то лечить, уход надо увидеть в цифрах. Несколько практических способов:

  • По BER при свипе. Самый доступный метод без приборов: меняете TXOffset с шагом, скажем, 200–300 Гц и записываете BER на каждом шаге. Получается «ванна» — частота с минимумом BER и есть ваш реальный сдвиг. Расстояние от нуля до этого минимума — это и есть величина ухода.
  • Тёплый против холодного. Прокалибруйте плату сразу после включения, запишите оптимальный TXOffset. Дайте поработать час в корпусе и повторите свип. Разница в оптимальном смещении — это температурный дрейф вашего экземпляра. Большой разброс = нет TCXO.
  • По эталону. Если есть SDR-приёмник или анализатор спектра, ставите хотспот в режим несущей (CW-калибровка в MMDVMCal) и смотрите фактическую частоту против заданной напрямую.

Практические советы

  • Калибруйте на прогретой плате — в том режиме, в котором хотспот реально работает, а не сразу после включения.
  • Если уход больше ±2 кГц и зависит от температуры — не мучайте софт, плата без TCXO, берите другую.
  • Записывайте подобранные RXOffset/TXOffset — после перепрошивки или обновления конфига их легко потерять.
  • RX и TX калибруйте раздельно: ADF7021 может иметь разный сдвиг на приём и передачу, один общий offset не всегда корректен.
  • Не гоняйтесь за нулём любой ценой — стабильные 0,1–0,3 % BER на прогретой плате уже дают уверенную связь.

Стабильный хотспот — основа надёжной сети

Стабильный приём данных критичен для SMS и Last Heard в DMRhub: уход частоты бьёт по этим функциям первым. Калибровку мы подробно разбираем в наших гайдах.

Источники

  1. Jonathan Naylor (G4KLX). MMDVMCal — утилита калибровки MMDVM. github.com/g4klx/MMDVMCal
  2. Analog Devices. ADF7021 — High Performance Narrow-Band Transceiver IC, техническое описание (datasheet).
  3. Jonathan Naylor (G4KLX). MMDVMHost — параметры RXOffset/TXOffset в MMDVM.ini. github.com/g4klx/MMDVMHost
  4. Application note по применению TCXO как опорного генератора в узкополосных трансиверах (общая теория ppm и температурного дрейфа кварцевых резонаторов).
В сети DMRhub

Настроили рацию — заходите в эфир: свой мастер, хотспоты и приложение с DMR прямо в телефоне.

Войти в портал