Кварцевый генератор микроконтроллера
Кварц у микроконтроллера — половина генератора: усилитель и резистор обратной связи внутри кристалла, резонатор и два конденсатора снаружи. Генератор запустится и будет держать частоту, только если конденсаторы дают нагрузочную ёмкость из даташита кварца, а усиления хватает с пятикратным запасом. Разбираем расчёт на примерах 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 пФ
Схема
Кварц оценивают тремя параметрами из его даташита: нагрузочной ёмкостью CL, на которую он настроен, максимальным эквивалентным сопротивлением ESR и ёмкостью корпуса C0. Генератор микроконтроллера — крутизной усилителя gm. Резистор REXT ограничивает мощность в кварце; он нужен не всегда.
Нагрузочная ёмкость
Для кварца конденсаторы C1 и C2 включены последовательно, а параллельно им — ёмкость выводов и дорожек Cs:
Если нагрузка меньше CL, кварц работает выше номинальной частоты, если больше — ниже. Для STM32F103 ST предлагает брать Cs около 10 пФ как грубую оценку ёмкости выводов и платы и советует конденсаторы 5–25 пФ (DS5319, табл. 22).
Запас по усилению
Чтобы генерация уверенно запускалась при любом экземпляре кварца, температуре и напряжении, крутизна генератора должна быть хотя бы в 5 раз больше критической (AN2867, разд. 3.4):
В формулу подставляют максимальное 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 мкВт.
- Конденсаторы. C1 = C2 = 2 · (18 − 10) = 16 пФ, ближайший номинал ряда E12 — 15 пФ. Нагрузка 15/2 + 10 = 17,5 пФ: на 0,5 пФ меньше нужной, кварц уйдёт немного вверх по частоте.
- Критическая крутизна. gmcrit = 4 · 140 · (2π · 8 · 106)2 · (25 · 10−12)2 = 0,88 мА/В.
- Запас. 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 Гц
Генератор 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 пФ. Критическая крутизна:
запас 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 и увеличивают его, пока генератор не перестанет запускаться после включения питания (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 пФ |
| REXT | 0 или по расчёту | если мощность в кварце больше допустимой |
| 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.
Источники
- 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 — разводка
- 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 пФ
- 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 пФ, ёмкость выводов, формула внешних конденсаторов
- 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 — тест отрицательного сопротивления и коэффициент безопасности
- Microchip. AN826: Crystal Oscillator Basics and Crystal Selection for rfPIC and PICmicro Devices (DS00826A, 2002) — Drive Level — перевозбуждение ускоряет старение, сдвигает частоту и может разрушить кварц; Crystal Pulling — частота зависит от нагрузочной ёмкости
- 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
- 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
Нашли ошибку?
Смотрите также
- Конденсаторы для кварцаC1 и C2 по CL, запас генерации, уход частоты
- Тактирование STM32PLL под нужную частоту, шины, флеш-память, регистры RCC и код
- STM32F1Cortex-M3: F100, F101, F102, F103, F105/107 — линейки и распиновки
- ATmega328PРаспиновка, фьюзы, Optiboot, периферия, питание, схема и код на C
- Кварцевый резонаторКварц у микроконтроллера: подключение, конденсаторы, часовой кварц
- Нагрузочная ёмкость кварцаCL кварца и подбор конденсаторов C1 и C2
- ESR конденсатораЭквивалентное последовательное сопротивление конденсатора