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

Кварцевый генератор микроконтроллера

Кварц у микроконтроллера — половина генератора: усилитель и резистор обратной связи внутри кристалла, резонатор и два конденсатора снаружи. Генератор запустится и будет держать частоту, только если конденсаторы дают нагрузочную ёмкость из даташита кварца, а усиления хватает с пятикратным запасом. Разбираем расчёт на примерах STM32F103 и ATmega328P.

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

Кварцевый генератор микроконтроллера собран по схеме Пирса: инвертирующий усилитель и резистор обратной связи RF стоят внутри кристалла между выводами OSC_IN и OSC_OUT (у AVR — XTAL1 и XTAL2), а снаружи к ним подключают кварц и два конденсатора на общий провод (ST AN2867, разд. 3.1). Резистор RF смещает инвертор в линейный режим, кварц с конденсаторами дают ещё 180° сдвига фазы, и цепь возбуждается на частоте кварца.

Коротко

Нагрузка кварца
CL = C1·C2/(C1 + C2) + Cs
Одинаковые C1 = C2
2 · (CL − Cs)
Запас по усилению
gm / gm_crit ≥ 5
STM32F103 HSE
4–16 МГц, gm ≥ 25 мА/В
STM32F103 LSE
32 768 Гц, CL кварца ≤ 7 пФ
ATmega328P
C1 = C2 = 12–22 пФ

Схема

Кварц 8 МГц на выводах HSE STM32F103Внутри микроконтроллера инвертор с резистором обратной связи RF около 200 кОм, его вход — вывод OSC_IN, выход — OSC_OUT. Снаружи кварц ZQ1 8 МГц с нагрузочной ёмкостью 18 пФ включён между выводами, от каждого вывода на общий провод стоят конденсаторы C1 и C2 по 15 пФ. Между OSC_OUT и кварцем показан необязательный резистор REXT.STM32F103, генератор HSERF 200 кОмOSC_INOSC_OUTZQ18 МГц, CL 18 пФREXTпо даташиту кварцаC115 пФC215 пФCL = C1 · C2 / (C1 + C2) + Cs = 7,5 + 10 = 17,5 пФ при Cs ≈ 10 пФ по DS5319

Кварц оценивают тремя параметрами из его даташита: нагрузочной ёмкостью CL, на которую он настроен, максимальным эквивалентным сопротивлением ESR и ёмкостью корпуса C0. Генератор микроконтроллера — крутизной усилителя gm. Резистор REXT ограничивает мощность в кварце; он нужен не всегда.

Нагрузочная ёмкость

Для кварца конденсаторы C1 и C2 включены последовательно, а параллельно им — ёмкость выводов и дорожек Cs:

CL=C1C2C1+C2+Cs,C1=C2=2 (CL−Cs).C_L = \frac{C_1 C_2}{C_1 + C_2} + C_s, \qquad C_1 = C_2 = 2\,(C_L - C_s).

Если нагрузка меньше CL, кварц работает выше номинальной частоты, если больше — ниже. Для STM32F103 ST предлагает брать Cs около 10 пФ как грубую оценку ёмкости выводов и платы и советует конденсаторы 5–25 пФ (DS5319, табл. 22).

Запас по усилению

Чтобы генерация уверенно запускалась при любом экземпляре кварца, температуре и напряжении, крутизна генератора должна быть хотя бы в 5 раз больше критической (AN2867, разд. 3.4):

gm crit=4⋅ESR⋅(2πF)2⋅(C0+CL)2,gmgm crit≥5.g_{m\,crit} = 4 \cdot ESR \cdot (2\pi F)^2 \cdot (C_0 + C_L)^2, \qquad \frac{g_m}{g_{m\,crit}} \ge 5.

В формулу подставляют максимальное ESR из даташита кварца. Если в даташите микроконтроллера вместо gm указан Gm_crit_max, то gm_crit кварца должна быть меньше его — это то же условие, ведь Gm_crit_max = gm / 5. У ATmega328P крутизна не нормирована: даташит даёт только диапазон конденсаторов, а запас проверяют измерением.

Пример: STM32F103 и кварц 8 МГц

Кварц Abracon ABM3 на 8 МГц: CL = 18 пФ, ESR до 140 Ом, C0 до 7 пФ, мощность возбуждения до 100 мкВт.

  1. Конденсаторы. C1 = C2 = 2 · (18 − 10) = 16 пФ, ближайший номинал ряда E12 — 15 пФ. Нагрузка 15/2 + 10 = 17,5 пФ: на 0,5 пФ меньше нужной, кварц уйдёт немного вверх по частоте.
  2. Критическая крутизна. gmcrit = 4 · 140 · (2π · 8 · 106)2 · (25 · 10−12)2 = 0,88 мА/В.
  3. Запас. HSE генератор STM32F103 даёт при запуске не меньше 25 мА/В (табл. 22): 25/0,88 = 28, больше 5. Генератор запустится примерно за 2 мс.

Калькулятор открыт с этим примером; подставьте параметры своего кварца:

Исходные данные

Что рассчитать
пФ

из даташита кварца

пФ

выводы МК и дорожки, обычно 3–10 пФ

Запас генерации и уход частоты (необязательно)

8 МГц, 32768

Ом

максимальное из даташита

пФ
мА/В

из даташита МК: для STM32F1 HSE — 25 мА/В

фФ

motional capacitance, если есть в даташите — для расчёта ухода частоты

Результат

C1 = C2
15 пФ
расчёт — 16 пФ, ближайший номинал E12; нагрузка 17,5 пФ
Критическая крутизна
884 мкА/В
Запас по усилению
28,3gm / gm_crit, нужно не меньше 5

Для сравнения: в AN2867 ST разбирает кварц 8 МГц с ESR 80 Ом, C0 = 7 пФ и CL = 10 пФ — критическая крутизна 0,23 мА/В и запас 107. Кварц с меньшими CL и ESR облегчает работу генератору, большой запас нужен для холода, старения кварца и влаги на плате.

Мощность возбуждения и REXT

Мощность, рассеиваемая в кварце, DL = ESR · IQ2, где IQ — действующий ток через кварц (AN2867, разд. 3.5). Её ограничивает даташит кварца — у ABM3 до 100 мкВт: перевозбуждение ускоряет старение, сдвигает частоту и может разрушить кристалл (Microchip AN826). Ток меряют токовым пробником или вычисляют по размаху напряжения на OSC_IN, измеренному щупом с ёмкостью не больше 1 пФ. Если мощность больше допустимой, ставят REXT; начальное значение — реактивное сопротивление C2: REXT = 1/(2πFC2), для 8 МГц и 15 пФ это 1,3 кОм. После этого gm_crit пересчитывают с суммой ESR + REXT: запас по усилению должен остаться не меньше 5.

Часовой кварц 32 768 Гц

Часовой кварц 32,768 кГц на выводах LSE STM32F103Внутри микроконтроллера инвертор генератора LSE с резистором обратной связи RF около 5 МОм между выводами OSC32_IN и OSC32_OUT. Снаружи между ними включён кварц ZQ1 32,768 кГц с нагрузочной ёмкостью 6 пФ, от каждого вывода на общий провод стоят конденсаторы C1 и C2 по 8,2 пФ. Резистора на выходе нет.STM32F103, генератор LSERF 5 МОмOSC32_INOSC32_OUTZQ132,768 кГц, CL 6 пФC18,2 пФC28,2 пФCL = 8,2 / 2 + 2 = 6,1 пФ при Cstray 2 пФ; кварц с CL 12,5 пФ здесь не годится

Генератор LSE работает на микроамперах, и запас по усилению у него маленький. У STM32F103 крутизна LSE — не меньше 5 мкА/В, а ST в даташите требует кварц с нагрузочной ёмкостью не больше 7 пФ и запрещает кварцы на 12,5 пФ; Cstray у этого генератора — 2–7 пФ, конденсаторы — 5–15 пФ (DS5319, табл. 23).

Возьмём ABS07 в варианте с CL = 6 пФ: ESR до 70 кОм, C0 до 2 пФ. При Cstray = 2 пФ конденсаторы 2 · (6 − 2) = 8 пФ, ближайший номинал 8,2 пФ. Критическая крутизна:

gm crit=4⋅70⋅103⋅(2π⋅32 768)2⋅(8⋅10−12)2=0,76 мкА/В,g_{m\,crit} = 4 \cdot 70 \cdot 10^3 \cdot (2\pi \cdot 32\,768)^2 \cdot (8 \cdot 10^{-12})^2 = 0{,}76\ \text{мкА/В},

запас 5/0,76 = 6,6. Тот же кварц в стандартном исполнении с CL = 12,5 пФ даёт gmcrit = 2,5 мкА/В и запас 2 — генератор может не запуститься. У ST есть и вторая причина: для CL = 12,5 пФ при Cstray 2 пФ нужны конденсаторы по 2 · (12,5 − 2) = 21 пФ, а для LSE STM32F103 их предел — 15 пФ (DS5319, примечание к табл. 23). Запуск часового кварца — секунды: ST в AN2867 называет 1–5 с.

У ATmega328P часовой генератор оптимизирован под минимальный ток: Microchip ограничивает ESR кварца 75 кОм при CL = 6,5 пФ, 65 кОм при 9 пФ и 30 кОм при 12,5 пФ (табл. 9-7, типичные значения по характеризации). Выводы TOSC1 и TOSC2 сами дают 18 и 8 пФ (табл. 9-8), поэтому кварцу с CL до 6 пФ внешние конденсаторы не нужны, а для большей CL их подбирают так, чтобы Ce + Ci = 2CL − Cs на каждом выводе. ABS07 с ESR до 70 кОм укладывается в эти пределы в вариантах с CL = 6 и 7 пФ (для 7 пФ — по интерполяции таблицы, около 73 кОм); с CL 9 и 12,5 пФ — уже нет. Значения таблицы типичные, поэтому запас проверяют на плате.

Точность часов

Отклонение частоты 1 ppm — это 0,086 с в сутки. Его складывают из допуска кварца при 25 °C (у ABS07 ±20 ppm), разброса нагрузки и температуры. Камертонный кварц имеет параболическую зависимость частоты от температуры с вершиной около 25 °C (Microchip AN2648, разд. 1.7): у ABS07 коэффициент −0,036 ppm/°C², и при 0 °C уход −0,036 · 252 = −22,5 ppm — почти 2 с в сутки. Чувствительность к нагрузке ST в AN2867 (разд. 3.7) показывает на примере: кварц с чувствительностью 45 ppm/пФ и конденсаторы 7 пФ с допуском ±5 % дают разброс ±0,175 пФ, то есть около 7,8 ppm — 0,7 с в сутки.

Проверка запаса генерации

Проверка запаса генерации: резистор RADD последовательно с кварцемТа же схема генератора: инвертор с резистором обратной связи внутри микроконтроллера, конденсаторы C1 и C2 от выводов OSC_IN и OSC_OUT на общий провод. Кварц ZQ1 подключён к OSC_IN, а к выводу OSC_OUT — через переменный резистор RADD, включённый последовательно с кварцем; конденсатор C2 остаётся у вывода. RADD увеличивают до тех пор, пока генератор не перестанет запускаться.МикроконтроллерRFOSC_INOSC_OUTZQ1RADDC1штатныйC2штатныйSf = (RADD + ESR) / ESR: для HSE нужно не меньше 5, для LSE — не меньше 3 (AN2867)

Запас проверяют на готовой плате: последовательно с кварцем включают переменный резистор RADD и увеличивают его, пока генератор не перестанет запускаться после включения питания (AN2867, разд. 3.8; AN2648, разд. 3.2). Коэффициент безопасности Sf = (RADD + ESR)/ESR. ST считает генерацию надёжной при Sf от 5 для HSE и от 3 для LSE; Microchip для часовых генераторов AVR оценивает Sf больше 5 как отличный, 4 — очень хороший, 3 — хороший, ниже 3 — не рекомендуемый. Потенциометр берут с диапазоном от ESR до 5 ESR, после каждого шага питание выключают и включают снова.

Частоту при этом смотрят не на выводах кварца: щуп 10X добавляет 10–15 пФ и сам сдвигает частоту или срывает генерацию (AN2648, разд. 3.1). Её выводят на обычный вывод — MCO у STM32, CLKO у AVR — и измеряют там.

ATmega328P

Для кварцев 0,9–16 МГц экономичного генератора и 0,4–20 МГц генератора с полным размахом даташит рекомендует одинаковые C1 и C2 по 12–22 пФ (табл. 9-3 и 9-5). Экономичный генератор даёт на XTAL2 уменьшенный размах и чувствительнее к помехам; генератор с полным размахом работает от 2,7 до 5,5 В и подходит для шумных условий (разд. 9.3 и 9.4). Для кварца 16 МГц с CL = 18 пФ и Cs около 5 пФ получается 2 · (18 − 5) = 26 пФ — больше рекомендованного диапазона; лучше взять кварц с CL = 12 пФ: 2 · (12 − 5) = 14, номинал 15 пФ. Режим генератора и задержку запуска задают фьюзы — их удобно собрать в калькуляторе фьюзов AVR.

Разводка

  • Кварц и конденсаторы — как можно ближе к выводам, дорожки короткие и одинаковые. Длинная дорожка работает как антенна и добавляет ёмкость (AN2867, разд. 7.1).
  • Под генератором — отдельный участок земли, соединённый с ближайшим выводом земли микроконтроллера, вокруг — охранное кольцо. Металлический корпус кварца с этой землёй не соединяют.
  • Не ведите рядом и под кварцем сигнальные дорожки, особенно тактовые линии (AN2648, разд. 2).
  • Плату чистят от флюса и покрывают лаком, особенно часовой узел: влага и утечки увеличивают время запуска и срывают генерацию.
  • Конденсаторы — керамика C0G (NP0): их ёмкость не зависит от температуры и напряжения.

Детали

ПозицияДетальПримечание
ZQ1 (HSE)ABM3, 8 МГц, CL 18 пФESR до 140 Ом
C1, C2 (HSE)15 пФ, C0Gпри Cs ≈ 10 пФ
REXT0 или по расчётуесли мощность в кварце больше допустимой
ZQ1 (LSE)ABS07, 32 768 Гц, CL 6 пФESR до 70 кОм
C1, C2 (LSE)8,2 пФ, C0Gпри Cstray ≈ 2 пФ

Варианты

  • Керамический резонатор вместо кварца дешевле и запускается быстрее, но его добротность ниже и частота сильнее зависит от нагрузки (AN2648, разд. 1.5). Конденсаторы для него берут строго по даташиту резонатора, у части резонаторов они встроены (DS5319, рис. 24).
  • Внешний тактовый сигнал подают на OSC_IN у STM32 (DS5319, табл. 20) или на XTAL1 у AVR — так делают, когда одна частота нужна нескольким микросхемам.
  • Без кварца. Встроенные RC-генераторы заметно менее точны и сильнее зависят от температуры: для UART этого хватает не всегда, для USB и часов реального времени обычно нет. Тактовое дерево STM32 удобно настроить в калькуляторе тактирования STM32.

Почему не работает

  • Генератор не запускается или запускается через раз. Мал запас по усилению: кварц с большими CL или ESR, конденсаторы сильно больше расчётных. Пересчитайте gm_crit по максимальному ESR.
  • Часовой кварц STM32F103 не стартует. Кварц на 12,5 пФ, флюс или влага на плате; проверьте и время — запуск занимает секунды, а на холоде дольше.
  • Частота сдвинута на десятки ppm. Нагрузка не равна CL: пересчитайте Cs по своей плате или подберите конденсаторы по измеренной частоте.
  • Кварц работает на гармонике. Большие паразитные ёмкости и индуктивности длинных дорожек (AN2867, разд. 7.1) или кварц на третьей гармонике: генераторы STM32 рассчитаны только на основную (разд. 3.9.3).
  • Генерация пропадает при касании платы. Высокоомная цепь часового генератора: не хватает охранного кольца или покрытия.
  • Кварц перестал работать через несколько месяцев. Перевозбуждение: проверьте мощность и поставьте REXT.

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

Какие конденсаторы ставить к кварцу 8 МГц у STM32?

По нагрузочной ёмкости кварца CL из его даташита: C1 = C2 = 2 · (CL − Cs), где Cs — ёмкость выводов и дорожек, ST предлагает 10 пФ как грубую оценку. Для кварца с CL = 18 пФ это 16 пФ, ближайший номинал — 15 пФ. Для кварца с CL = 12 пФ — около 4 пФ, и проще взять кварц с большей CL. Конденсаторы — керамика C0G.

Почему не запускается часовой кварц 32 768 Гц на STM32F103?

Чаще всего из-за кварца с нагрузочной ёмкостью 12,5 пФ: генератору LSE STM32F103 с крутизной 5 мкА/В не хватает усиления, запас получается около 2 вместо 5. ST в даташите прямо запрещает такие кварцы и советует CL не больше 7 пФ — ещё и потому, что для 12,5 пФ понадобились бы конденсаторы около 21 пФ при пределе 15 пФ. Вторая причина — влага и флюс на плате: утечки срывают генерацию, ST советует покрывать узел лаком.

Можно ли не ставить конденсаторы к кварцу?

Только если их роль играют ёмкости выводов и платы: у ATmega328P для часового кварца с CL до 6 пФ внешние конденсаторы не нужны. Для кварцев на мегагерцы конденсаторы обязательны: без них нагрузка на кварц меньше нужной, и частота выше номинальной.

Как проверить частоту кварцевого генератора?

Не щупом на выводах кварца: щуп 10X добавляет 10–15 пФ, сдвигает частоту и может сорвать генерацию. Выведите частоту на свободный вывод — MCO у STM32, CLKO у AVR или таймером — и измерьте её частотомером. Запас генерации проверяют резистором последовательно с кварцем: для коэффициента безопасности 5 генератор должен запускаться с добавочным сопротивлением в 4 раза больше ESR.

Источники

  1. STMicroelectronics. AN2867: Guidelines for oscillator design on STM8AF/AL/S and STM32 MCUs/MPUs (Rev 24, February 2026) — разд. 3.1–3.3, рис. 5, табл. 3 — схема Пирса, RF, формула CL; разд. 3.4 — gm_crit, запас по усилению не меньше 5, пример 8 МГц; разд. 3.5 — мощность возбуждения и REXT; разд. 3.6 — время запуска; разд. 3.7 — чувствительность к нагрузке; разд. 3.8 — коэффициент безопасности; разд. 4.1 — выбор часового кварца; разд. 7.1 — разводка
  2. STMicroelectronics. STM32F103x8, STM32F103xB datasheet (DS5319 Rev 20, July 2025) — табл. 22 и рис. 24 — HSE 4–16 МГц, RF 200 кОм, gm не меньше 25 мА/В, конденсаторы 5–25 пФ, ёмкость выводов и платы около 10 пФ; табл. 23 и рис. 25 — LSE: RF 5 МОм, gm не меньше 5 мкА/В, конденсаторы 5–15 пФ, Cstray 2–7 пФ, CL кварца до 7 пФ, не 12,5 пФ
  3. Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet (DS40002061B) — разд. 9.3, табл. 9-3 — экономичный генератор, C1 = C2, 12–22 пФ; разд. 9.4, табл. 9-5 — генератор с полным размахом, 2,7–5,5 В; разд. 9.5, табл. 9-7 и 9-8 — часовой кварц: ESR до 75/65/30 кОм при CL 6,5/9/12,5 пФ, ёмкость выводов, формула внешних конденсаторов
  4. Microchip. AN2648: Selecting and Testing 32.768 kHz Crystal Oscillators for AVR Microcontrollers (DS00002648D, 2022) — разд. 1.7 — температурная парабола часового кварца; разд. 2 — разводка; разд. 3.1 — щуп 10X добавляет 10–15 пФ; разд. 3.2, табл. 3-1 — тест отрицательного сопротивления и коэффициент безопасности
  5. Microchip. AN826: Crystal Oscillator Basics and Crystal Selection for rfPIC and PICmicro Devices (DS00826A, 2002) — Drive Level — перевозбуждение ускоряет старение, сдвигает частоту и может разрушить кварц; Crystal Pulling — частота зависит от нагрузочной ёмкости
  6. Abracon. ABM3 Ceramic SMD Crystal (revised 04-25-22) — CL 18 пФ стандартно, ESR до 140 Ом при 8–9 МГц, до 60 Ом при 10–16 МГц, до 40 Ом при 16–20 МГц, C0 до 7 пФ, мощность 10 и до 100 мкВт, допуск ±50 ppm
  7. Abracon. ABS07 32.768kHz SMD Crystal (revised 08-10-22) — CL 12,5 пФ стандартно, варианты 9, 7 и 6 пФ; ESR до 70 кОм; C0 до 2,0 пФ; мощность до 0,5 мкВт; допуск ±20 ppm; температурный коэффициент −0,036 ppm/°C², вершина параболы 25 ± 5 °C

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