Перейти к содержанию

Частотная ошибка и автоподстройка частоты (AFC)

Передатчик и приёмник тактируются разными кварцами, и их частоты расходятся на десятки ppm. На 868 МГц это десятки килогерц — сопоставимо с полосой узкого канала. Поэтому трансиверы измеряют частотную ошибку и подстраиваются под неё. Разбираем, как это сделано в CC1101 и SX1276.

Обновлено Редакция GAW

Частотная ошибка (frequency offset) — расхождение между несущей частотой передатчика и частотой, на которую настроен приёмник. Её причина — кварцы: синтезаторы частоты обоих устройств умножают частоту своих опорных генераторов, а у каждого кварца свой допуск, температурный дрейф и старение. Автоподстройка частоты (AFC) — механизм приёмника, который измеряет ошибку и компенсирует её.

Сколько это

Ошибку удобно считать в ppm:

Δf=fcarrier⋅ppm⋅10−6\Delta f = f_{carrier} \cdot ppm \cdot 10^{-6}

На 868 МГц кварц с уходом ±20 ppm даёт ±17,4 кГц, а расхождение двух устройств в худшем случае — 40 ppm, около 34,7 кГц. TI в даташите CC1101 указывает допуск синтезатора ±40 ppm, определяемый кварцем, и отмечает, что нужная точность зависит от диапазона и ширины канала. Для узкого канала это существенно: при шаге каналов 100 кГц ошибка 35 кГц — треть канала.

CC1101: компенсация в демодуляторе

У CC1101 при FSK и MSK демодулятор сам оценивает центр принимаемого сигнала и компенсирует расхождение в пределах FOC_LIMIT — доли полосы канала. TI пишет, что компенсация большого расхождения улучшает чувствительность. Оценку можно прочитать из FREQEST и записать в FSCTRL0.FREQOFF — синтезатор получит постоянную поправку. Чтобы алгоритм не уходил, отслеживая шум, его можно заморозить до обнаружения несущей.

SX1276: FEI и AFC

У Semtech SX1276 в режиме FSK индикатор FEI измеряет ошибку по преамбуле, обновляя её каждые 4 бита, а AFC вычитает измеренное значение из регистра частоты. На время AFC можно включить более широкую полосу приёма, чтобы захватить сигнал с большой ошибкой. В LoRa при полосах уже 62,5 кГц Semtech рекомендует TCXO — с обычным кварцем ошибка сопоставима с полосой. Подробнее — на странице SX1276/SX1278.

Как уменьшить

  • Кварц с малым допуском и правильной нагрузочной ёмкостью.
  • TCXO для узких каналов и широкого диапазона температур.
  • Калибровка частоты каждого устройства при производстве.
  • AFC в приёмнике и запас по ширине канала.

Частые вопросы

Сколько килогерц даёт уход кварца 20 ppm?

Частотная ошибка в герцах равна частоте несущей, умноженной на ppm и на 10⁻⁶. На 868 МГц уход 20 ppm — это 17,4 кГц. Если передатчик ушёл на +20 ppm, а приёмник на −20 ppm, расхождение 40 ppm, то есть 34,7 кГц. На 433 МГц те же ppm дают вдвое меньше — 17,3 кГц.

Зачем SX1276 при узкой полосе LoRa нужен TCXO?

При полосе LoRa 7,8–62,5 кГц уход обычного кварца на десятки ppm сопоставим с самой полосой, и сигнал выходит за пределы, в которых модем его принимает. Semtech рекомендует для полос уже 62,5 кГц термокомпенсированный генератор TCXO: у него уход частоты намного меньше, чем у кварца с конденсаторами.

Почему автоподстройку частоты включают только после обнаружения сигнала?

Без сигнала алгоритм отслеживает шум и может уйти к краю допустимого диапазона, после чего настоящий сигнал будет принят хуже. Поэтому CC1101 позволяет заморозить компенсатор до обнаружения несущей, а SX1276 считает оценку FEI достоверной только во время преамбулы.

Источники

  1. Texas Instruments. CC1101 Low-Power Sub-1 GHz RF Transceiver, SWRS061I — табл. 15: шаг программирования частоты fXOSC/2¹⁶ — 397–412 Гц при кварце 26–27 МГц; допуск частоты синтезатора ±40 ppm определяется кварцем, нужная точность с учётом температуры и старения зависит от диапазона и ширины канала; разд. 14.1: при 2-FSK, GFSK, 4-FSK и MSK демодулятор компенсирует расхождение частот передатчика и приёмника в пределах, заданных FOCCFG.FOC_LIMIT как доля полосы канала; компенсация большого расхождения улучшает чувствительность; FOC_BS_CS_GATE замораживает компенсатор до обнаружения несущей, чтобы он не уходил, отслеживая шум; FOC_PRE_K и FOC_POST_K — усиление петли до и после синхрослова; оценка расхождения доступна в FREQEST, её запись в FSCTRL0.FREQOFF даёт постоянную поправку синтезатора
  2. Semtech. SX1276/77/78/79 137 MHz to 1020 MHz Low Power Long Range Transceiver, Datasheet Rev. 5 (August 2016) — разд. 4.1, примечание к табл. 12: для полос LoRa уже 62,5 кГц рекомендуется TCXO, чтобы выполнить требования к частотной ошибке; разд. 4.1.5: в LoRa ошибка частоты читается из RegFei, её вычитают из частоты и поправляют скорость модема; разд. 4.2.3.4: в FSK индикатор FEI измеряет расхождение запрограммированной частоты и несущей принимаемого сигнала, обновляется каждые 4 бита, достоверен только во время преамбулы; разд. 4.2.3.5: AFC основана на FEI, AfcValue вычитается из регистра частоты FRF; AfcAutoOn — AFC при каждом включении приёма; AfcAutoClearOn — начинать с исходной частоты или с уже поправленной (полезно при накопленном дрейфе, например от старения кварца); RegAfcBw — более широкая полоса приёма на время AFC

Нашли ошибку?