Embedded HandbookПриложения
Все разделы › VIII. Электроника вокруг микроконтроллера
STM32F103, STM32F407, STM32G431 · уровень базовый · 10 мин чтения
Открыть в интерактивном справочнике

61. Минимальная обвязка микроконтроллера: условия запуска

Микроконтроллер — не микросхема, которую достаточно запаять и подать питание. У него есть условия запуска, и если хоть одно не выполнено, плата ведёт себя непредсказуемо: то стартует, то нет, то работает неделю и перезагружается.

Раздел про то, что обязано быть на плате, что желательно, чего можно не ставить — и что случится, если сэкономить на каждом пункте.

Как это называется в документации

Оригинал Перевод
power-on reset (POR) сброс при подаче питания
brown-out reset (BOR) сброс при просадке питания
reset temporization задержка после достижения порога
VDD rise / fall time rate скорость нарастания и спада питания
NRST вывод сброса
internal pull-up (RPU) внутренняя подтяжка
filtered / not filtered pulse отфильтрованный / гарантированно принятый импульс
decoupling развязка по питанию
VDDA, VREF+ питание и опора аналоговой части
load capacitance (CL) нагрузочная ёмкость кварца
stray capacitance монтажная ёмкость
boot mode режим загрузки

61.1 Питание: все выводы, и у каждого конденсатор

У корпуса на 48–64 вывода питание заведено на четыре пары выводов. Подключать надо все — не «хотя бы одну». Внутри кристалла они питают разные области, и неподключённая пара означает, что часть схемы питается через паразитные связи.

К каждому выводу — конденсатор 100 нФ, физически вплотную (раздел 53.5), плюс один общий на 4,7 мкФ.

Кроме VDD и VSS есть выводы, которые легко пропустить. У F4 это VCAP_1 и VCAP_2 — выход внутреннего стабилизатора ядра: на каждый по керамическому конденсатору 2,2 мкФ с ESR меньше 2 Ом на землю, без них ядро не запустится или будет сбоить. VBAT — к батарейке или, если её нет, к VDD со 100 нФ. VREF+ там, где он выведен отдельно (у F407 — в корпусах от 100 выводов), — к VDDA или к опорному источнику. Число и назначение выводов питания — по таблице выводов конкретного корпуса.

Аналоговое питание заводится отдельно и фильтруется: ферритовая бусина и конденсаторы 1 мкФ и 10 нФ. Бусина — не дроссель на сотни микрогенри: её «600 Ом» указаны на 100 МГц, а на низких частотах она ведёт себя как индуктивность около 1 мкГн (раздел 168.3). С 1 мкФ это фильтр со срезом около 160 кГц: помеху на 500 кГц он ослабит всего примерно в девять раз, а около среза возможен резонансный подъём. Бусина давит в основном помехи в десятки мегагерц; против пульсаций импульсного преобразователя на сотнях килогерц нужен настоящий дроссель в десятки микрогенри или свой линейный стабилизатор от входа до преобразователя (раздел 55.6). Без этого АЦП будет измерять шум своего же источника питания.


61.2 Пороги запуска

Числа этого подраздела — для G4; у F103 и F407 схема сброса другая, её таблица — в конце подраздела. Камень удерживается в сбросе, пока питание не поднялось до порога. Нижний уровень включён всегда:

Напряжение
порог запуска (типовой) 1,66 В
разброс между экземплярами 1,62 … 1,70 В
гистерезис 20 мВ

Дополнительно можно включить один из настраиваемых уровней:

Уровень Порог
0 (всегда) 1,66 В
1 2,10 В
2 2,31 В
3 2,61 В
4 2,90 В

Зачем они: при питании 3,3 В уровень 4 оставляет 0,4 В запаса. Просадка на 10 % его ещё не задевает (2,97 против 2,90), а на 15 % уже задевает — и камень уйдёт в сброс, вместо того чтобы работать на грани и портить данные во Flash. Для устройств с записью настроек это важнее, чем кажется.

После достижения порога камень ждёт ещё 250 мкс (до 400 в худшем случае), прежде чем начать выполнять программу. За это время запускается внутренний генератор и загружаются байты конфигурации.

Пять уровней порога запуска против питания 3,3 В и его просадок на 10 и 15 %

У F103 и F407 уровней меньше, и задаются они иначе:

F103 F407
порог запуска (типовой) 1,92 В 1,72 В
сброс по просадке не настраивается три уровня в байтах конфигурации: 2,19 / 2,50 / 2,83 В; с завода выключен
задержка после порога 2,5 мс (1…4,5) 1,5 мс (0,5…3)
детектор PVD, 8 уровней 2,08…2,78 В 2,04…3,03 В

Уровни просадки и детектора указаны по спаду питания. Детектор (раздел 10.7) только вызывает прерывание: уйти в сброс при просадке программа F103 должна сама.


61.3 Скорость нарастания и спада питания

Тут два несимметричных требования, и второе часто упускают.

Нарастание не нормируется вовсе — от нуля до бесконечности. Камень стартует при любой скорости подъёма питания, хоть мгновенной, хоть за секунды.

Спад ограничен снизу: не быстрее 10 мкс на вольт, то есть с 3,3 В до нуля — не быстрее 33 мкс. Слишком резкий провал схема сброса не успевает отследить, и камень может начать выполнять программу при недостаточном питании.

На практике требование выполняется само собой: конденсатор 10 мкФ по питанию при потреблении 50 мА разряжается 660 мкс — в двадцать раз медленнее предела. Но если питание отключается ключом с быстрым спадом и без конденсатора, проверить стоит.


61.4 Вывод сброса

Внутри уже есть подтяжка 25…55 кОм, типовая 40. Внешний подтягивающий резистор не нужен — это самая частая лишняя деталь на любительских платах.

Кнопка сброса подключается напрямую на землю: через внутреннюю подтяжку потечёт до 132 мкА, последовательный резистор не требуется. Чтобы сброс сработал, на выводе должно быть ниже 0,99 В (при питании 3,3 В).

Фильтр входа отбрасывает короткие помехи:

Длительность импульса Что будет
короче 70 нс гарантированно отфильтруется
70…350 нс как повезёт
длиннее 350 нс гарантированно пройдёт

Конденсатор 100 нФ на выводе сброса нужен — но не для формирования сброса, а для защиты от помех. С подтяжкой 40 кОм он даёт постоянную времени 4 мс, и до порога отпускания проходит 4,8 мс — это в двенадцать раз дольше собственной задержки камня. То есть длительность сброса при таком конденсаторе задаёт именно он.

Вывод NRST при включении с конденсатором 100 нФ: 4,8 мс до порога отпускания

⚠️ Специальная схема сброса не нужна. Внутри есть и сброс по питанию, и сброс по просадке, и фильтр, и подтяжка. Внешний супервизор питания ставят только там, где требования жёстче встроенных, — и тогда его выбирают осознанно, а не «на всякий случай».


61.5 Выбор режима загрузки

Вывод (или выводы) выбора загрузки определяют, откуда камень стартует: из Flash, из системной памяти с заводским загрузчиком или из ОЗУ (раздел 4.7).

Его нельзя оставлять висящим в воздухе: подтянутый ни к чему вывод считывает наводку, и камень стартует то из своей программы, то из загрузчика — «через раз», причём по-разному в зависимости от того, держите ли вы плату в руках.

Правильно: резистор 10 кОм на землю (или на питание, если нужен загрузчик по умолчанию) и, если пригодится, перемычка или кнопка.


61.6 Кварц: когда нужен и как считать

Внутреннего генератора хватает для большинства задач: погрешность около 1 %, чего достаточно для UART до 115200 и для любой логики. Кварц нужен, когда:

Конденсаторы считаются по нагрузочной ёмкости кварца, а не берутся «22 пФ, как у всех»:

C = 2 × (CL − Cмонтажа)

Монтажная ёмкость дорожек и выводов — около 5 пФ. Для кварца с нагрузочной 10 пФ нужны конденсаторы по 10 пФ, для 20 пФ — по 30 пФ. Если монтажная ёмкость окажется больше половины нагрузочной, внешние конденсаторы не нужны вовсе.

Цена ошибки для часового кварца: 5 пФ мимо — это около 75 ppm, то есть 6,5 секунды в сутки и 39 минут за год. Часы, которые «уходят», — почти всегда не «плохой кварц», а неверные конденсаторы.

Дорожки к кварцу — короткие, с землёй вокруг, и ничего быстрого рядом.


61.7 Отладочный разъём

Четыре сигнала: две линии обмена, земля и питание. Пятым полезно вывести сброс — он позволяет отладчику зацепиться за камень, который успевает уйти в сон или переназначить выводы отладки (раздел 4.4).

Разъём стоит ставить даже на плату, где отладка «не планируется»: контактные площадки под иглы занимают миллиметры, а без них перепрошивка требует выпаивания.


61.8 Итого: обязательное и желательное

Что Нужно
все выводы питания подключены обязательно
100 нФ у каждого вывода питания обязательно
общий конденсатор 4,7 мкФ обязательно
питание аналоговой части с фильтром обязательно, даже если АЦП не нужен
вывод выбора загрузки притянут резистором обязательно
конденсатор 100 нФ на выводе сброса настоятельно рекомендуется
отладочный разъём или площадки настоятельно рекомендуется
кнопка сброса желательно
кварц по задаче
внешний резистор подтяжки сброса не нужен
внешняя схема сброса не нужна

Минимальная обвязка: C1…C4 по 100 нФ у каждого VDD и общий 4,7 мкФ, VDDA за бусиной с 1 мкФ и 10 нФ, VBAT к VDD со 100 нФ, у F4 VCAP по 2,2 мкФ, NRST со 100 нФ и кнопкой, BOOT0 через 10 кОм на землю, кварц с конденсаторами по 10 пФ, разъём SWD


61.9 Грабли

Плата не стартует. Проверить по порядку: питание на всех выводах, вывод выбора загрузки, вывод сброса не прижат к земле, питание аналоговой части.

Стартует через раз. Вывод выбора загрузки висит в воздухе.

Работает, пока не тронешь плату. То же самое — ёмкость руки меняет наводку на висящий вывод.

Отладчик не видит камень. Программа успела переназначить выводы отладки или ушла в сон; подключить сброс к отладчику и войти в режим «под сбросом».

АЦП выдаёт мусор. Нет питания аналоговой части или оно не отфильтровано.

Случайные перезагрузки. Нет конденсатора на выводе сброса, либо просадка питания задевает порог.

Часы уходят на минуты в год. Конденсаторы кварца не под его нагрузочную ёмкость.

Кварц не запускается. Слишком большие конденсаторы, длинные дорожки, кварц не на ту нагрузочную ёмкость.

Поставили внешнюю схему сброса — стало хуже. Она конфликтует со встроенной и мешает отладчику дёргать сброс.


61.10 Итоги

Дальше: раздел 62 «Защита выводов» — что происходит, когда снаружи приходит то, чего плата не ждала.

Открыть в интерактивном справочнике