std 6 27 июня, 2021 Опубликовано 27 июня, 2021 · Жалоба Читая STM32F4 Reference Manual (RM0090), p150 Low-power management reset There are two ways of generating a low-power management reset: 1. Reset generated when entering the Standby mode: This type of reset is enabled by resetting the nRST_STDBY bit in the user option bytes. In this case, whenever a Standby mode entry sequence is successfully executed, the device is reset instead of entering the Standby mode. 2. Reset when entering the Stop mode: This type of reset is enabled by resetting the nRST_STOP bit in the user option bytes. In this case, whenever a Stop mode entry sequence is successfully executed, the device is reset instead of entering the Stop mode. Вопрос: Для чего используется сброс вместо вхождения в Standby или Stop? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlanDrakes 1 5 июля, 2021 Опубликовано 5 июля, 2021 · Жалоба Предполагаю, что для каких-то чисто специфических случаев. Технически, контроллер будет сброшен при выходе из этих режимов, т.к. выход в рабочий режим из Stop/Standby другими вариантами не предусмотрен. Но как в принципе рабочий вариант - прошивка настроена на работу в основном в режиме экономии энергии и после запуска проверяет флаги. Например, по логике работы, регистр PWR->CSR при сбросе по событию пробуждения будет иметь поднятые биты SBF (чип был в режиме Standby) и WUF (WakeUp Flag), но если выполнить сброс вместо засыпания (предварительно стаднартно сбросив биты) - то при засыпании (конкретно в данном случае - сбросе), биты не будут установлены, но контроллер будет сброшен. И в этом случае возможна обработка другой ветви программы вместо какого-то действия. Предположим, при первом включении будет выполнен код инициализации внешних устройств, затем контроллер настроет часы и перейдёт в ожидание. Спустя n-ное количество событий контроллер обнаруживает что что-то не совсем так, как должно быть, ставит флаги сброса, и уходит в сон, перезагружаясь. Прошивка решает, что выполняется первое включение и инициализирует периферию и внешние устройства. Предполагаю такой вариант. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 5 июля, 2021 Опубликовано 5 июля, 2021 · Жалоба Думаю, для каких-то ответственных применений, когда программа должна постоянно работать и сама себя тестировать. Если она вдруг уснула - значит не работает, не тестирует и ее нужно срочно реанимировать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 7 июля, 2021 Опубликовано 7 июля, 2021 · Жалоба 27.06.2021 в 12:31, std сказал: Вопрос: Для чего используется сброс вместо вхождения в Standby или Stop? Собственно вот из документации на STM32WLEx: Цитата Low-power mode security resetTo prevent that critical applications mistakenly enter a low-power mode, two low-power mode security resets are available. If enabled in option bytes, the resets are generated in the following conditions: • Entering Standby mode: this type of reset is enabled by resetting nRST_STDBY bit in user option bytes. In this case, whenever a Standby mode entry sequence is successfully executed, the device is reset instead of entering Standby mode. • Entering Stop mode: this type of reset is enabled by resetting nRST_STOP bit in user option bytes. In this case, whenever a Stop mode entry sequence is successfully executed, the device is reset instead of entering Stop mode. • Entering Shutdown mode: this type of reset is enabled by resetting nRST_SHDW bit in user option bytes. In this case, whenever a Shutdown mode entry sequence is successfully executed, the device is reset instead of entering Shutdown mode. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Baser 5 7 июля, 2021 Опубликовано 7 июля, 2021 · Жалоба 27.06.2021 в 12:31, std сказал: Для чего используется сброс вместо вхождения в Standby или Stop? Если у контроллера есть режимы Standby или Stop, значит есть вероятность попасть в них случайно. А если ваше устройство на это не рассчитано (нет внешнего аппаратного watchdog-а и нет программных веток для просыпания), то устройство может устать и заснуть. И проснется только когда ему батарейку передернут Эти фьюзы и служат для решения такой проблемы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться