HSE, HSI, LSE и LSI — генераторы STM32
В справочных руководствах STM32 источники тактового сигнала обозначены четырьмя сокращениями. Первая буква говорит о скорости (High или Low speed), вторая — где находится генератор (External или Internal). От выбора зависят точность частоты, время запуска и то, какие блоки вообще смогут работать.
Обновлено Редакция GAW
HSE, HSI, LSE и LSI — четыре тактовых генератора микроконтроллеров STM32. HSE (high-speed external) — генератор с внешним кварцем или керамическим резонатором; HSI (high-speed internal) — встроенный RC-генератор; LSE (low-speed external) — генератор для часового кварца 32,768 кГц; LSI (low-speed internal) — встроенный медленный RC-генератор. HSE, HSI и PLL могут быть источником системной частоты, а LSE и LSI — вспомогательные: для часов, сторожевого таймера и пробуждения. Как они соединены с остальной схемой, показывает дерево тактирования.
Сравнение
| Генератор | STM32F103 (RM0008, DS5319) | STM32F407 (RM0090) | Для чего |
|---|---|---|---|
| HSE | кварц 4–16 МГц (у F105/F107 — 3–25 МГц), внешний сигнал до 25 МГц | кварц 4–26 МГц | точная системная частота, USB, CAN |
| HSI | RC 8 МГц | RC 16 МГц | работа сразу после сброса, запасной источник |
| LSE | кварц 32,768 кГц | кварц 32,768 кГц | часы реального времени |
| LSI | RC около 40 кГц (30–60 кГц) | RC около 32 кГц | сторожевой таймер IWDG, автопробуждение |
Точность и запуск
HSI калибруют на заводе: по справочным руководствам — с точностью 1 % при 25 °C, калибровочное значение загружается в биты HSICAL регистра RCC_CR, а программа может подстроить частоту битами HSITRIM. Даташит STM32F103 (DS5319, табл. 24) уточняет: после заводской калибровки отклонение от −1,1 до +1,8 % при 25 °C и от −2 до +2,5 % во всём диапазоне −40…+105 °C. Зато HSI запускается за 1–2 мкс, тогда как кварцу HSE на 8 МГц нужно около 2 мс (DS5319, табл. 22 и 24).
Точность HSE определяется кварцем, а надёжный запуск — запасом усиления генератора и правильными нагрузочными конденсаторами. Если кварц не стартует, программа зависает в ожидании флага HSERDY — причины разобраны в ответе «Почему STM32 не запускается от внешнего кварца». На случай отказа кварца во время работы есть система контроля тактирования CSS: она переключает микроконтроллер на HSI.
От HSI через PLL у STM32F103 нельзя получить больше 64 МГц: на вход PLL идёт HSI / 2. Множители под конкретный генератор подбирает калькулятор тактирования STM32.
Те же сокращения используют и микроконтроллеры других производителей — например, PY32F003, CH32V003 и К1986ВЕ92, — но частоты, точность и время запуска у них свои, по их документации.
Не путать сами генераторы с резонаторами: HSE — это схема внутри микроконтроллера, а кварцевый резонатор — внешняя деталь, которую она раскачивает; так же LSE работает с часовым кварцем.
Частые вопросы
Можно ли обойтись без кварца и работать от HSI?
Для многих задач — да: HSI стартует за микросекунды и не требует внешних деталей. Но его точность у STM32F103 по даташиту — от −2 до +2,5 % во всём диапазоне температур, а частоту HSE задаёт кварц, допуск которого указывают в миллионных долях (ppm). Для UART на высоких скоростях, USB и CAN нужен HSE; встроенный загрузчик STM32F105/107 по USB и CAN тоже работает только с HSE (RM0008, разд. 3.4).
Чем режим HSE bypass отличается от кварца?
В режиме bypass (бит HSEBYP) встроенный генератор выключен, и на вывод OSC_IN подают готовый тактовый сигнал — у STM32F103 до 25 МГц, а OSC_OUT оставляют свободным. Так работают платы Nucleo-64 (MB1136): на OSC_IN приходят 8 МГц с вывода MCO микроконтроллера отладчика ST-LINK (UM1724, разд. 7.9.1). С кварцем HSEBYP должен быть равен нулю, иначе генератор не запустится.
Почему LSI не годится для часов?
Его частота у STM32F103 — от 30 до 60 кГц при номинальных 40 кГц (DS5319, табл. 25), то есть часы могут уйти на десятки процентов. LSI предназначен для сторожевого таймера IWDG и автопробуждения; для часов реального времени берут LSE с часовым кварцем 32,768 кГц.
Источники
- STMicroelectronics. RM0008 Rev 21. Reference manual: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx — разд. 7.2.1: HSE — кварц или керамический резонатор 4–16 МГц либо внешний сигнал до 25 МГц в режиме HSEBYP (OSC_OUT в высокоимпедансном состоянии), флаг HSERDY; 7.2.2: HSI — RC 8 МГц, заводская калибровка 1 % при 25 °C, HSICAL и подстройка HSITRIM, запускается быстрее HSE; 7.2.4: LSE — кварц 32,768 кГц для RTC, внешний сигнал до 1 МГц в режиме LSEBYP; 7.2.5: LSI около 40 кГц (30–60 кГц) для IWDG и автопробуждения, работает в Stop и Standby; рис. 8: от HSI через PLL не выше 64 МГц; 3.4: загрузчик по CAN и USB работает только с HSE
- STMicroelectronics. DS5319 Rev 20 (July 2025). STM32F103x8, STM32F103xB datasheet — табл. 22: HSE 4–16 МГц, крутизна при запуске от 25 мА/В, время запуска 2 мс тип.; табл. 20: внешний сигнал 1–25 МГц; табл. 24: HSI 8 МГц, заводская калибровка −1,1…+1,8 % при 25 °C, −2…+2,5 % при −40…+105 °C, запуск 1–2 мкс; табл. 25: LSI 30–60 кГц, 40 кГц тип.
- STMicroelectronics. RM0090 Rev 21 (June 2024). Reference manual: STM32F405/415, STM32F407/417, STM32F427/437 and STM32F429/439 — разд. 7.2 и рис. 21: STM32F405/407 — HSE 4–26 МГц, HSI 16 МГц с заводской калибровкой 1 % при 25 °C, LSI около 32 кГц, LSE 32,768 кГц
- STMicroelectronics. UM1724 Rev 17. STM32 Nucleo-64 boards (MB1136) — разд. 7.9.1: вариант тактирования MCO from ST-LINK — 8 МГц с выхода MCO микроконтроллера ST-LINK на вывод OSC_IN целевого STM32
Нашли ошибку?
Смотрите также
- Тактирование STM32PLL под нужную частоту, шины, флеш-память, регистры RCC и код
- Дерево тактированияПуть тактового сигнала от генератора до периферии
- Кварцевый резонаторКварц у микроконтроллера: подключение, конденсаторы, часовой кварц
- Часовой кварц 32 768 ГцКамертонный кварц для RTC: 2¹⁵ Гц, малая нагрузка
- Почему STM32 не запускается от внешнего кварца?Генератор HSE не раскачивается: запас усиления, конденсаторы, частота