Кварцевый резонатор в генераторе микроконтроллера работает на частоте, указанной в даташите, только при определённой нагрузочной ёмкости CL. Эту нагрузку создают два конденсатора — от выводов кварца на общий провод — вместе с паразитной ёмкостью выводов микроконтроллера и дорожек.
Формулы
где Cs — паразитная ёмкость: выводы OSC_IN и OSC_OUT плюс дорожки. На компактной плате это 3–5 пФ, в даташитах STM32 ST предлагает 10 пФ как грубую оценку. Конденсаторы берут керамические с диэлектриком C0G (NP0): их ёмкость не зависит от температуры и напряжения.
Пример: кварц с CL = 18 пФ и Cs = 5 пФ. C1 = C2 = 2 · (18 − 5) = 26 пФ, ближайший номинал ряда E12 — 27 пФ, и нагрузка получается 27 / 2 + 5 = 18,5 пФ.
Запас по усилению
Генератор запускается, только если крутизна его усилителя gm заметно больше критической:
где ESR — эквивалентное последовательное сопротивление кварца (берите максимальное из даташита), F — частота, C0 — ёмкость корпуса кварца. ST в AN2867 требует, чтобы отношение gm / gm crit было не меньше 5.
| Кварц | ESR | C0 | CL | gm crit | Генератор МК | Запас |
|---|---|---|---|---|---|---|
| 8 МГц | 60 Ом | 7 пФ | 18 пФ | 0,38 мА/В | 25 мА/В (HSE STM32F103) | 66 |
| 32 768 Гц | 70 кОм | 1,5 пФ | 6 пФ | 0,67 мкА/В | 5 мкА/В | 7,5 |
| 32 768 Гц | 70 кОм | 1,5 пФ | 12,5 пФ | 2,3 мкА/В | 5 мкА/В | 2,1 |
Параметры кварцев в таблице — пример, свои берите из даташита. Последние две строки показывают типичную ловушку часового кварца: тот же резонатор с CL = 12,5 пФ вместо 6 пФ требует в 3,5 раза большей крутизны, и экономичный генератор часов реального времени может не запуститься. Поэтому для часовых генераторов микроконтроллеров обычно выбирают кварцы 32 768 Гц с малой нагрузкой — 6–7 пФ — и сверяют их с таблицей совместимых резонаторов производителя МК.
Уход частоты
Частота кварца зависит от нагрузки: при меньшей нагрузке он работает быстрее, при большей — медленнее. Если известна динамическая ёмкость кварца Cm (motional capacitance), уход можно оценить:
Например, у кварца с Cm = 15 фФ и C0 = 5 пФ нагрузка 16 пФ вместо 18 пФ даёт +31 ppm. Для UART это несущественно — там допустимы проценты, а не миллионные доли (см. калькулятор скорости UART). Для часов реального времени 20 ppm — это уже около 52 секунд в месяц.
Практика
- Ставьте конденсаторы рядом с кварцем, а кварц — рядом с выводами микроконтроллера; общий вывод конденсаторов соединяйте с землёй короткой дорожкой.
- Не ведите сигналы под кварцем и рядом с ним. Высокоомные цепи генератора, особенно часового на 32 768 Гц, чувствительны к наводкам.
- Не трогайте генератор щупом осциллографа без делителя: ёмкость щупа 10–15 пФ сама сдвигает частоту, а иногда и срывает генерацию. Частоту проверяют по выходу MCO или по таймеру.
- У AVR ATmega даташит не приводит крутизну генератора, а даёт диапазон рекомендованных конденсаторов для каждого режима кварцевого генератора — сверяйтесь с ним. Подробнее о тактировании AVR — в разделе AVR.
Частые вопросы
Какие конденсаторы ставить к кварцу 8 МГц?
Зависит от нагрузочной ёмкости CL этого кварца, а не от частоты. Для CL = 18 пФ и паразитной ёмкости около 5 пФ нужно по 2 · (18 − 5) = 26 пФ, ближайший номинал — 27 пФ. Для CL = 12 пФ — по 14 пФ, то есть 15 пФ. CL указан в даташите кварца или в его маркировке у продавца.
Почему C1 и C2 считают как 2 · (CL − Cs)?
Для кварца конденсаторы C1 и C2 включены последовательно, и к ним параллельно добавляется паразитная ёмкость выводов и дорожек Cs: CL = C1·C2/(C1 + C2) + Cs. При одинаковых конденсаторах последовательное соединение даёт половину ёмкости одного, отсюда C = 2 · (CL − Cs).
Что будет, если конденсаторы подобраны неправильно?
Частота уйдёт на десятки ppm: меньшая нагрузка ускоряет кварц, большая замедляет. Для UART это обычно некритично, для часов реального времени 20 ppm — это около 52 секунд в месяц. Если же ёмкости сильно завышены, растёт критическая крутизна, и генератор может не запуститься.
Что такое запас по усилению кварцевого генератора?
Отношение крутизны генератора микроконтроллера gm к критической крутизне gm_crit, при которой генерация ещё держится: gm_crit = 4 · ESR · (2πF)² · (C0 + CL)². ST в AN2867 требует запас не меньше 5, иначе генератор может не запуститься на холоде или с другим экземпляром кварца.
Какую паразитную ёмкость брать в расчёт?
Сумму ёмкостей выводов микроконтроллера и дорожек: на компактной плате с короткими проводниками — 3–5 пФ. ST в даташитах STM32 предлагает 10 пФ как грубую оценку. Если частоту нужно выдержать точно, её измеряют на готовой плате и подстраивают номиналы.
Источники
- STMicroelectronics. AN2867: Guidelines for oscillator design on STM8AF/AL/S and STM32 MCUs/MPUs — CL = C1·C2/(C1 + C2) + Cs, критическая крутизна gm_crit = 4·ESR·(2πF)²·(C0 + CL)², запас по усилению не меньше 5
- STMicroelectronics. STM32F103x8, STM32F103xB datasheet (DS5319) — крутизна генератора HSE при запуске — не меньше 25 мА/В; рекомендация учитывать ёмкость выводов и платы, 10 пФ как грубая оценка
- E. Vittoz. Low-Power Crystal and MEMS Oscillators. Springer, 2010 — модель кварца с динамическими параметрами и зависимость частоты от нагрузочной ёмкости
Обновлено . Нашли ошибку в расчёте? Напишите нам.