STM32F103C6T6 STEND-BY

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
aleksey chilov
Нашел транзистор. Понюхал.
Сообщения: 167
Зарегистрирован: Вс мар 27, 2022 09:38:17

STM32F103C6T6 STEND-BY

Сообщение aleksey chilov »

Добрый день!
Разбираюсь с режимом сна и низкого
энергопотребления. Вобщем цель отключать/включать
с кнопки устройство. Возникла проблема не могу справится с ней.
При входе в режим stend-by всё отрубается и всё хорошо.
Когда подаю на пин РА0 всё как описано в референс контролер очухивается
проходит инит всего всего и снова вырубается в спячку.
Вот настройки которые сделал я.
Подскажите пожалуйста, чего не хватает???

SET_BIT(PWR->CSR, PWR_CSR_EWUP); // WKUP для выхода из режима ST-BY
SET_BIT(PWR->CR, PWR_CR_CWUF_Msk); // Сброс флага
SET_BIT(SCB->SCR, SCB_SCR_SLEEPDEEP_Msk); // Глубокий сон
SET_BIT(PWR->CR, PWR_CR_PDDS_Msk); // Войти в Standby когда CPU в SLEEPDEEP
__WFI();

Тактирование включено отдельно... Там в другом месте.
Реклама
Базилюк
Нашел транзистор. Понюхал.
Сообщения: 159
Зарегистрирован: Чт сен 19, 2024 19:18:28

Re: STM32F103C6T6 STEND-BY

Сообщение Базилюк »

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

Перевод из мануала:
Выход из режима ожидания
Микроконтроллер выходит из режима ожидания, когда происходит внешний сброс (контакт NRST), сброс IWDG, нарастающий фронт на контакте WKUP или нарастающий фронт сигнала тревоги RTC (см. Рисунок 179: Упрощенная блок-схема RTC). Все регистры сбрасываются после выхода из режима ожидания, за исключением регистра управления питанием/состояния (PWR_CSR).
После выхода из режима ожидания выполнение программы перезапускается так же, как и после сброса (выборка загрузочных контактов, выборка векторного сброса и т. д.). Флаг состояния SBF в регистре управления питанием/состояния (PWR_CSR) указывает, что микроконтроллер находился в режиме ожидания.
Дополнительные сведения о выходе из режима ожидания см. в Таблице 15.

Изображение

Таким образом, проверяя флаг SBF в регистре PWR->CSR можно определить, из какого состояния запустился МК. Поскольку стендбай подразумевает остановку работы МК и выключение внутренних регуляторов питания
Изображение
Реклама
Ответить

Вернуться в «ARM»