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

ФАПЧ: фазовая автоподстройка частоты

ФАПЧ подстраивает генератор так, чтобы его частота, делённая на N, совпала по фазе с опорной. В результате из кварца на 8 МГц получаются 72 МГц для ядра микроконтроллера, а из опорных 30 кГц — сетка радиоканалов около 960 МГц с точностью кварца. Разбираем узлы петли, её уравнения, полосу и шум, целочисленные и дробные синтезаторы — по документам TI и даташитам 74HC4046A и STM32F103.

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

Фазовая автоподстройка частоты (ФАПЧ, PLL — phase-locked loop) — петля обратной связи, которая подстраивает генератор так, чтобы его частота, делённая на N, совпала по частоте и фазе с опорной. TI определяет её как простую структуру с отрицательной обратной связью, которая экономично умножает частоту кварца на большие перестраиваемые коэффициенты (SWRA029). ФАПЧ стоит в каждом микроконтроллере, где тактовая частота ядра выше частоты кварца, в радиомодулях, в USB и Ethernet, в восстановлении тактового сигнала из потока данных. Короткая словарная статья с настройкой PLL в STM32 — «PLL в микроконтроллере».

Коротко

Выход
fvco = N · fx / R
Шаг сетки
= fr (целочисленный N)
Фазовый шум
+20 · lg N дБ
Затухание
ζ = 0,7…2
Время перестройки
≈ 10 / ωn (ζ = 1)
Запас по фазе
не меньше 40–45°

Как устроена петля

Синтезатор частоты на ФАПЧ состоит из четырёх узлов: генератора, управляемого напряжением (ГУН), частотно-фазового детектора, делителей и петлевого фильтра (TI SWRA029, с. 8). Опорную частоту кварца fx делят на R и получают частоту сравнения fr. Выходную частоту ГУН делят на N и сравнивают с fr. Если ГУН «убегает», детектор вырабатывает сигнал ошибки, фильтр превращает его в управляющее напряжение, и ГУН подстраивается. В состоянии захвата (SWRA029, ур. 1–3):

fvcoN=fxR=fr,fvco=Nfr\frac{f_{vco}}{N} = \frac{f_x}{R} = f_r, \qquad f_{vco} = N f_r
Структура синтезатора частоты на ФАПЧКварцевый генератор с частотой fx делится на R и даёт частоту сравнения fr. Частотно-фазовый детектор сравнивает fr с частотой ГУН, делённой на N, и управляет накачкой заряда. Импульсы тока сглаживает петлевой фильтр, его напряжение перестраивает генератор, управляемый напряжением. Выход fvco через делитель N возвращается на детектор. В захвате fvco = N·fr = N·fx/R.Кварцfx÷RfrЧФДPFDНакачказарядаФильтрпетлиVупрГУНVCOfvco÷Nfvco/NВ захвате: fvco/N = fx/R = fr → fvco = N·fr
Синтезатор частоты на ФАПЧ: делитель опоры R, частотно-фазовый детектор, накачка заряда, фильтр, ГУН и делитель N в цепи обратной связи

Пример TI (SWRA029, с. 6). fr = 30 кГц, N = 32 000 — единственное устойчивое состояние петли — 960 МГц. Если записать N = 32 001, петля перестроится на 960,03 МГц: шаг сетки равен частоте сравнения. Захваченный ГУН получает точность опоры: при кварце с точностью 1 ppm выходная частота точна до ±960 Гц.

ФАПЧ — частный случай отрицательной обратной связи, только сравниваются не напряжения, а фазы. Поэтому к ней применимы те же понятия: петлевое усиление, полоса петли, запас по фазе.

Узлы

Генератор, управляемый напряжением

ГУН — генератор с резонатором, частоту которого меняют напряжением, обычно через варикап в контуре (SWRA029, с. 8). Его главная характеристика — крутизна Kv: на сколько мегагерц меняется частота при изменении управляющего напряжения на 1 В. Шум на управляющем входе модулирует частоту пропорционально Kv, поэтому ГУН с меньшей крутизной и более добротным контуром шумит меньше, зато перестраивается в меньшем диапазоне. Нелинейность Kv по диапазону меняет полосу петли, шум и время перестройки (с. 9). Как генераторы запускаются и почему добротность определяет стабильность, разобрано в статье «Генераторы колебаний».

Частотно-фазовый детектор

Простой фазовый детектор — смеситель или исключающее ИЛИ — различает разность фаз только в пределах ±π. Частотно-фазовый детектор (ЧФД, PFD) на двух триггерах различает и ±2π и больше, то есть «видит» разность частот, и поэтому петля быстрее входит в захват (SWRA029, с. 11). Он работает в трёх режимах:

  • частотный — разность фаз больше 2π: выход постоянно тянет частоту в нужную сторону;
  • фазовый — разность меньше 2π: выход включается на часть периода, пропорциональную разности фаз;
  • захват — разность близка к нулю: остаются узкие импульсы на частоте fr из-за конечной скорости логики; их нужно отфильтровать, иначе они промодулируют ГУН и дадут паразитные составляющие на ±fr от несущей (с. 11–12).

Накачка заряда и петлевой фильтр

У большинства микросхем ФАПЧ выход детектора — источник тока, накачка заряда (charge pump): на время импульса ошибки он втекает в фильтр или вытекает из него (SWRA029, с. 14). Ток интегрирует конденсатор C1, последовательный резистор R задаёт затухание петли, а небольшой C2 параллельно им подавляет импульсы на частоте сравнения. С C2 петля становится третьего порядка, и TI советует брать C2 < C1/10, чтобы запас по фазе остался достаточным (с. 22, 24).

Пассивный петлевой фильтр после накачки зарядаВыход накачки заряда — источник тока ±Icp. Он соединён с управляющим входом ГУН. От этого узла на общий провод включены две ветви: последовательно резистор R и конденсатор C1, и параллельно им небольшой конденсатор C2. C1 интегрирует ток, R добавляет ноль и задаёт затухание, C2 (меньше C1/10) сглаживает импульсы на частоте сравнения.±IcpRC1C2к ГУНC1 — интегратор, R — затухание, C2 < C1/10 — подавление импульсов fr
Пассивный фильтр петли после накачки заряда: C1 интегрирует ток, R задаёт затухание, C2 сглаживает импульсы

Активный фильтр на ОУ нужен, когда ГУН требует управляющего напряжения больше, чем может дать микросхема ФАПЧ, — в широкодиапазонных синтезаторах (SWRA029, с. 14).

Делители

Делитель опоры R работает на низкой частоте и строится на обычном счётчике. Делитель N в радиосинтезаторах работает на сотнях мегагерц и выше, поэтому его строят на делителе с двумя коэффициентами P/P+1 и двух счётчиках, которые решают, сколько раз делить на P + 1 (SWRA029, с. 13). Непрерывный ряд коэффициентов такой делитель даёт не с единицы, а от P² − P: у 16/17 — от 240. Например, N = 960 — это 60 раз по 16, а 961 — 59 раз по 16 и один раз по 17; а вот 103 из 16 и 17 не составить никак. Делитель с тремя коэффициентами 64/65/72 даёт непрерывный ряд от 1096 вместо 4032 у 64/65 (с. 13–14).

Уравнения петли

Для фазы ГУН — интегратор: частота пропорциональна напряжению, а фаза — интеграл частоты, поэтому его передаточная функция Kv/s. Обозначив K = Kv·Kd (Kd — крутизна детектора) и H(s) — передаточную функцию фильтра, TI получает передачу фазы опоры на выход (SWRA029, ур. 8):

φoφr(s)=KH(s)s+KH(s)/N\frac{\varphi_o}{\varphi_r}(s) = \frac{K H(s)}{s + K H(s)/N}

На низких частотах это N — петля работает как умножитель; на высоких передача падает — петля ведёт себя как фильтр нижних частот, сдвинутый на несущую. Граница — полоса петли. Без фильтра (H = 1) это просто полюс на ω = K/N. Пример TI: K = 28·10⁶ с⁻¹ и N = 1000 — петля перестаёт следить за опорой выше примерно 4,4 кГц от несущей (наш пересчёт: 28·10⁶/(2π·1000) ≈ 4456 Гц), и на отстройке 100 кГц шум кварца ослабляется ещё на 27 дБ (SWRA029, с. 17).

С фильтром-интегратором петля становится второго порядка с собственной частотой ωn и затуханием ζ. Для накачки заряда с фильтром R + C1 (SWRA029, ур. 15):

ωn=KNC1,R=2ζNKC1\omega_n = \sqrt{\frac{K}{N C_1}}, \qquad R = 2\zeta \sqrt{\frac{N}{K C_1}}

При ζ < 1 петля входит в захват с колебаниями, при ζ > 1 — монотонно. Большинство разработчиков берут ζ от 0,7 до 2. Шумовая полоса петли BL = ωn(ζ + 1/(4ζ))/2 минимальна при ζ = 0,5 (SWRA029, ур. 12). ωn/2π часто и называют полосой петли.

Время перестройки. Петля подходит к новой частоте асимптотически, и время считают до заданной погрешности. В примере TI скачок на 20 МГц с установлением до 1 кГц при ζ = 1 занимает около 10/ωn (SWRA029, ур. 18). Чем шире полоса, тем быстрее.

Устойчивость. В непрерывной модели петля второго порядка с идеальной накачкой заряда устойчива при любом ζ > 0 (SWRA029). Но накачка работает импульсами раз в период частоты сравнения, то есть петля на самом деле дискретная, и непрерывная модель верна, только пока полоса петли много меньше fr; при полосе, сравнимой с fr, петля может потерять устойчивость (наша оговорка; дискретную модель разбирает книга Ф. Гарднера «Phaselock Techniques», на которую ссылается SWRA029, — мы её не использовали). С C2 (третий порядок) и выше нужно проверять запас по фазе: TI требует не меньше 40–45° (SWRA029, с. 25). Что такое запас по фазе и как он связан с выбросом — в статье «Устойчивость и частотная коррекция».

Шум и паразитные составляющие

Умножение увеличивает фазовый шум. TI формулирует это как основной принцип синтеза: умножение частоты на N увеличивает фазовый шум сигнала в N раз, то есть на 20·lg N дБ, а деление на столько же уменьшает (SWRA029, с. 15). Наглядно: сигнал 1 МГц с джиттером 1 пс, умноженный до 1 ГГц, сохраняет те же 1 пс, но период стал в 1000 раз короче — отношение периода к джиттеру ухудшилось на 60 дБ. В радиосинтезаторе с N = 30 000 это около 90 дБ (наш пересчёт: 89,5 дБ), в STM32F103 с множителем 9 — около 19 дБ. О связи фазового шума и джиттера — в словарных статьях.

Петля формирует спектр. Внутри полосы петли выход повторяет опору и детектор (умноженные на N), за её пределами — собственный шум ГУН, который петля внутри полосы подавляет. Петля «развязывает» спектр выхода и опоры на частоте, которую выбирает разработчик (SWRA029, с. 16–17); отсюда наш вывод — полосу удобно ставить около отстройки, где умноженный на N шум опоры и шум самого ГУН сравниваются.

Помехи на частоте сравнения. Импульсы детектора на fr проходят через фильтр и модулируют ГУН. Узкий фильтр их подавляет, но замедляет перестройку. У целочисленного синтезатора частота сравнения равна шагу сетки, и с мелким шагом это противоречие острое (SWRA029, с. 7).

Целочисленный и дробный синтезатор

В целочисленном (integer-N) синтезаторе шаг сетки равен fr. Чтобы получить шаг 30 кГц на 960 МГц, нужно N около 32 000 — плюс 90 дБ к шуму детектора и узкий фильтр. В дробном (fractional-N) делитель во время работы переключают между N и N + 1 в такой пропорции, чтобы средний коэффициент был N + K/F (SWRA029, ур. 5):

fvco=fr(N+KF)f_{vco} = f_r \left(N + \frac{K}{F}\right)

Шаг сетки становится fr/F, частота сравнения — в F раз выше, N — меньше. Например, при fr = 1 МГц, N = 30 и K/F = 3/8 выход — 30,375 МГц (наш расчёт). Плата — дробные паразитные составляющие от периодического переключения делителя, которые компенсируют схемотехнически (SWRA029, с. 31–39).

ФАПЧ на 74HC4046A

Классическая микросхема ФАПЧ общего назначения — 74HC4046A: ГУН до 18 МГц (типично при 5 В) и три фазовых компаратора на выбор (TI SCHS204J). Её даташит хорошо показывает, как выбор детектора меняет поведение петли. Диапазон захвата — полоса входных частот, на которых петля войдёт в захват из незахваченного состояния; диапазон удержания — полоса, на которой захваченная петля удерживает захват; первый не шире второго.

КомпараторТипФаза в захватеЗахват на гармоникахПомехоустойчивость
PC1исключающее ИЛИ90°давысокая
PC2частотно-фазовый по фронтам0°нетнизкая
PC3RS-триггер по фронтам180°данизкая

По таблице выбора SCHS204J. У PC1 диапазон захвата зависит от фильтра и может достигать диапазона удержания; петля держит захват и при сильно зашумлённом входе, но может захватиться на гармонике. PC2 работает только по положительным фронтам, скважность сигналов ему не важна, в захвате его выход в третьем состоянии и почти не создаёт пульсаций, а диапазон захвата равен диапазону удержания и не зависит от фильтра; его крутизна — VCC/4π В/рад, около 0,4 В/рад при 5 В. Без входного сигнала ГУН с PC1 уходит на центральную частоту, с PC2 — на минимальную, с PC3 — на максимальную.

ФАПЧ в микроконтроллере

В микроконтроллерах ФАПЧ умножает частоту кварца или встроенного RC-генератора. У STM32F103 вход PLL — 1–25 МГц, выход — 16–72 МГц, множитель PLLMUL — от 2 до 16, время захвата — до 200 мкс, межпериодный джиттер — до 300 пс (ST DS5319, табл. 27). Стандартная настройка — кварц 8 МГц × 9 = 72 МГц. Захват занимает до 200 мкс, и всё это время выходная частота ещё не установилась. Делители и множители STM32F1 и F4 разобраны в словарной статье «PLL в микроконтроллере», а подобрать их для своей частоты поможет калькулятор тактирования STM32.

Типичные ошибки

  • Слишком узкая или слишком широкая полоса. Узкая — медленная перестройка и плохое подавление шума ГУН; широкая — помехи на частоте сравнения в спектре.
  • C2 сравним с C1. Петля третьего порядка теряет запас по фазе; правило TI — C2 < C1/10.
  • Ожидание чистого сигнала при большом N. Шум опоры и детектора вырастает на 20·lg N.
  • Выход за пределы ГУН или входа PLL. У STM32F103 вход 1–25 МГц и выход до 72 МГц; за пределами ФАПЧ может не захватиться или работать нестабильно.
  • Переключение тактирования до захвата. У STM32F103 захват длится до 200 мкс: сначала дождитесь готовности PLL, затем переключайте на неё ядро.
  • PC1 у 74HC4046A там, где важна частота. Исключающее ИЛИ может захватиться на гармонике входного сигнала.

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

Что такое ФАПЧ простыми словами?

Это система, которая подстраивает генератор, управляемый напряжением, так, чтобы его частота, делённая на N, точно совпала по фазе с опорной частотой кварца. Детектор сравнивает фазы, фильтр сглаживает сигнал ошибки, а генератор подстраивается. В захвате выходная частота ровно в N раз выше опорной и так же стабильна, как кварц.

Почему ФАПЧ увеличивает фазовый шум?

Умножение частоты в N раз умножает и фазовые отклонения: фазовый шум растёт на 20·lg N дБ. Для N = 9, как в STM32F103 при 72 МГц из 8 МГц, это около 19 дБ, для N = 30 000 в радиосинтезаторе — около 90 дБ. Петля переносит на выход шум опоры и детектора внутри своей полосы, а шум ГУН за её пределами.

Как выбрать полосу петли ФАПЧ?

Это компромисс. Широкая полоса быстрее перестраивает частоту и лучше подавляет шум ГУН, но хуже фильтрует помехи на частоте сравнения. Узкая полоса чище по помехам, но медленнее. TI оценивает время перестройки как около 10/ωn при затухании ζ = 1, а затухание советует выбирать от 0,7 до 2.

Чем дробный синтезатор (fractional-N) лучше целочисленного?

У целочисленного шаг сетки равен частоте сравнения, поэтому для мелкого шага её делают низкой, а N — большим, что ухудшает шум и время перестройки. Дробный синтезатор переключает делитель между N и N + 1 так, что средний коэффициент равен N + K/F. Частота сравнения тогда в F раз выше шага сетки, а N меньше, но появляются дробные паразитные составляющие, которые надо подавлять.

Источники

  1. Texas Instruments. Barrett C. (ed.) Fractional/Integer-N PLL Basics (SWRA029, August 1999) — с. 5–7: fvco = N·fr, fr = fx/R, шаг сетки = fr; пример fr = 30 кГц, N = 32 000 → 960 МГц, N = 32 001 → 960,03 МГц, точность кварца 1 ppm → ±960 Гц; умножение на N увеличивает фазовый шум на 20·lg N (N = 30 000 — около 90 дБ); помехи на частоте сравнения и компромисс между полосой фильтра и временем перестройки; дробный N: fvco = fr·(N + K/F); с. 8–14: ГУН, крутизна Kv, ЧФД с диапазоном ±2π и тремя режимами, делители с двумя коэффициентами P/P+1 (минимум P² − P), 64/65/72 → 1096; пассивный и активный фильтр, выход ЧФД — источник тока; с. 15–23: передаточные функции, пример K = 28·10⁶ с⁻¹, N = 1000, ослабление шума кварца выше 4,4 кГц; петля 2-го порядка, ωn и ζ, ζ = 0,7…2, шумовая полоса BL = ωn(ζ + 1/(4ζ))/2, минимум при ζ = 0,5; накачка заряда: ωn = √(K/(N·C1)), R = 2ζ√(N/(K·C1)); C2 для петли 3-го порядка, C2 < C1/10, запас по фазе не меньше 40–45°; время перестройки ≈ 10/ωn при ζ = 1 (скачок 20 МГц до 1 кГц)
  2. Texas Instruments. CD54/74HC4046A, CD54/74HCT4046A High-Speed CMOS Logic Phase-Locked Loop with VCO (SCHS204J, revised December 2003) — с. 1: ГУН до 18 МГц (типично) при 5 В, три фазовых компаратора — исключающее ИЛИ, JK- и RS-триггеры; с. 4–5: диапазон захвата не больше диапазона удержания; PC1 — захват зависит от фильтра, держит захват при шумном сигнале, может захватиться на гармониках; PC2 — частотно-фазовый детектор по фронтам, скважность не важна, VDEMOUT = (VCC/4π)(φSIGIN − φCOMPIN), в захвате разность фаз нулевая, выход в третьем состоянии, диапазон захвата равен диапазону удержания; таблица выбора: без сигнала PC1 → f0 при 90°, PC2 → fmin, PC3 → fmax; гармоники и пульсации на выходе фильтра
  3. STMicroelectronics. STM32F103x8/xB datasheet (DS5319 Rev 20) — табл. 27: вход PLL 1–25 МГц (типично 8 МГц), скважность 40–60 %, выход 16–72 МГц, время захвата до 200 мкс, межпериодный джиттер до 300 пс; блок-схема тактирования: множитель PLLMUL ×2…×16

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