Вывод NRST
У STM32 нет отдельного входа и выхода сброса: один вывод NRST и принимает внешний сброс, и сам опускается в ноль, когда сброс пришёл изнутри — от сторожевого таймера, программы или схемы питания. Отсюда правила, что к нему можно подключать.
Обновлено Редакция GAW
NRST — вывод внешнего сброса микроконтроллеров STM32. Низкий уровень на нём вызывает системный сброс: все регистры, кроме флагов причины сброса и резервного домена, принимают начальные значения (RM0008, разд. 7.1.1). Особенность STM32 в том, что вывод двунаправленный: любой сброс — от сторожевых таймеров IWDG и WWDG, программный через бит SYSRESETREQ, от схемы питания — микроконтроллер выводит на NRST и держит вывод в нуле во время задержки. Генератор импульса гарантирует сброс длительностью не меньше 20 мкс: в RM0008 (разд. 7.1.2) — для каждого источника, внешнего или внутреннего, в RM0090 для STM32F4 — для каждого внутреннего источника; при внешнем сбросе импульс длится, пока NRST удерживают в низком уровне.
Параметры вывода
| Параметр | STM32F103 (DS5319, табл. 39) |
|---|---|
| Подтяжка RPU | 30 / 40 / 50 кОм (мин. / тип. / макс.) |
| Низкий уровень VIL(NRST) | не выше 0,8 В |
| Высокий уровень VIH(NRST) | не ниже 2 В |
| Гистерезис | 200 мВ |
| Подавляемый импульс VF(NRST) | до 100 нс |
| Гарантированно принимаемый импульс VNF(NRST) | от 300 нс |
Подтяжка постоянная: это резистор последовательно с PMOS-ключом, поэтому внешний резистор на питание обычно не нужен. Вход — триггер Шмитта, и короткие помехи до 100 нс он отбрасывает, но импульс между 100 и 300 нс может пройти, а может и нет: параметры заданы проектом и в производстве не проверяются.
Типовая схема
ST рекомендует конденсатор 0,1 мкФ между NRST и землёй (DS5319, рис. 31): он гасит наводки, из-за которых плата сбрасывалась бы сама. Параллельно конденсатору ставят кнопку на землю. Внешняя схема сброса должна опускать NRST ниже VIL(NRST) max, то есть 0,8 В, — иначе сброс не будет принят. Это важно, если вывод тянут к земле через резистор или диод: падение на них не должно оставлять на NRST больше 0,8 В.
К NRST подключают только выходы, которые умеют отпускать линию: кнопку, выход супервизора питания с открытым стоком, вывод сброса отладчика. Двухтактный выход, который держит единицу, будет бороться с внутренним ключом в момент сброса от сторожевого таймера. Как собрать цепь сброса при включении питания с супервизором, показано в схеме «Сброс при включении и просадке питания».
Откуда был сброс
После перезапуска программа узнаёт причину по флагам сброса в регистре RCC_CSR. Сброс с вывода отмечает флаг PINRSTF, рядом лежат флаги IWDGRSTF, WWDGRSTF, SFTRSTF и PORRSTF (RM0008, разд. 7.3.10). Сами они не очищаются: все флаги сбрасывает запись единицы в бит RMVF. Поэтому флаги читают в начале программы и сразу стирают, иначе при следующем запуске к новой причине добавятся старые. Пример распиновки и цепи сброса популярного микроконтроллера — на странице STM32F1.
Частые вопросы
Обязателен ли конденсатор на NRST?
ST в даташите STM32F103 (DS5319, рис. 31) рекомендует 0,1 мкФ между NRST и землёй: он защищает от паразитных сбросов наводками. Внутренняя подтяжка — от 30 до 50 кОм, так что с конденсатором 0,1 мкФ постоянная времени около 4 мс (наш расчёт: 40 кОм × 0,1 мкФ). Импульсы короче 100 нс вход и сам отфильтрует, но длинные помехи — нет.
Можно ли подключить к NRST выход супервизора питания?
Можно, если выход с открытым стоком: NRST двунаправленный, и при внутреннем сбросе (сторожевой таймер, программный сброс) микроконтроллер сам опускает его в ноль не меньше чем на 20 мкс (RM0008, разд. 7.1.2). Двухтактный выход, который держит единицу, будет спорить с внутренним ключом и мешать сбросу всей платы.
Как понять, что сброс был от кнопки на NRST?
По флагу PINRSTF в регистре RCC_CSR: его ставит аппаратура при сбросе с вывода NRST (RM0008, разд. 7.3.10). Флаги остальных источников лежат там же. Ни один из них не очищается сам — все сбрасывает запись в бит RMVF, поэтому после чтения флаги стирают, чтобы при следующем запуске видеть только новую причину.
Источники
- STMicroelectronics. STM32F103x8, STM32F103xB datasheet (DS5319 Rev 20, July 2025) — разд. 5.3.14, табл. 39 «NRST pin characteristics»: входной буфер КМОП, постоянная подтяжка RPU 30 / 40 / 50 кОм (мин. / тип. / макс.) — резистор последовательно с PMOS-ключом; VIL(NRST) от −0,5 до 0,8 В, VIH(NRST) от 2 В до VDD + 0,5 В, гистерезис триггера Шмитта 200 мВ; VF(NRST) — подавляемый импульс до 100 нс, VNF(NRST) — импульс от 300 нс гарантированно проходит (заданы проектом, в производстве не проверяются); рис. 31: рекомендуемая защита — конденсатор 0,1 мкФ на землю, сеть сброса защищает от паразитных сбросов, уровень на NRST должен опускаться ниже VIL(NRST) max, иначе сброс не будет принят
- STMicroelectronics. RM0008 Reference manual STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx, STM32F107xx (Rev 21, February 2021) — разд. 7.1.1: системный сброс вызывают низкий уровень на NRST, окончание счёта WWDG и IWDG, программный сброс (бит SYSRESETREQ), сброс при входе в Standby или Stop по опциям nRST_STDBY и nRST_STOP; источник определяют по флагам RCC_CSR; разд. 7.1.2: источники сброса действуют на вывод NRST, он удерживается низким во время задержки; сигнал системного сброса выводится на NRST, генератор импульса гарантирует длительность не менее 20 мкс для каждого источника, при внешнем сбросе импульс формируется, пока NRST в нуле; рис. 7 — RPU, фильтр, ключ на землю; разд. 7.3.10 (RCC_CSR): флаги WWDGRSTF, IWDGRSTF, SFTRSTF, PORRSTF, PINRSTF ставит аппаратура, все очищаются записью в бит RMVF; PINRSTF — сброс с вывода NRST
- STMicroelectronics. RM0090 Reference manual STM32F405/415, STM32F407/417, STM32F427/437, STM32F429/439 (Rev 21, June 2024) — разд. 6.1.2 (RCC): генератор импульса гарантирует сброс не короче 20 мкс для каждого внутреннего источника — то же устройство вывода NRST у STM32F4
Нашли ошибку?
Смотрите также
- Сброс при включении питанияВнутренний сброс до роста питания: пороги, скорость нарастания, примеры
- Флаги причины сбросаКак узнать, почему перезапустился микроконтроллер
- Супервизор питанияВнешняя микросхема сброса по снижению питания
- Сброс по питанию и супервизорRC-цепь на RESET, пороги BOD и PVD, супервизоры MAX809, MAX803, MCP1316, TPS3839
- STM32F1Cortex-M3: F100, F101, F102, F103, F105/107 — линейки и распиновки