Перейти к содержанию
    

Сброс вместо вхождения в Standby или Stop

Читая 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?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Предполагаю, что для каких-то чисто специфических случаев.

Технически, контроллер будет сброшен при выходе из этих режимов, т.к. выход в рабочий режим из Stop/Standby другими вариантами не предусмотрен.
Но как в принципе рабочий вариант - прошивка настроена на работу в основном в режиме экономии энергии и после запуска проверяет флаги. Например, по логике работы, регистр PWR->CSR при сбросе по событию пробуждения будет иметь поднятые биты SBF (чип был в режиме Standby) и WUF (WakeUp Flag), но если выполнить сброс вместо засыпания (предварительно стаднартно сбросив биты) - то при засыпании (конкретно в данном случае - сбросе), биты не будут установлены, но контроллер будет сброшен. И в этом случае возможна обработка другой ветви программы вместо какого-то действия.

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

Предполагаю такой вариант.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

27.06.2021 в 12:31, std сказал:

Вопрос:
Для чего используется сброс вместо вхождения в Standby или Stop?

Собственно вот из документации на STM32WLEx:

Цитата

Low-power mode security reset
To 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.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

27.06.2021 в 12:31, std сказал:

Для чего используется сброс вместо вхождения в Standby или Stop?

Если у контроллера есть режимы Standby или Stop, значит есть вероятность попасть в них случайно. А если ваше устройство на это не рассчитано (нет внешнего аппаратного watchdog-а и нет программных веток для просыпания), то устройство может устать и заснуть. И проснется только когда ему батарейку передернут :biggrin:
Эти фьюзы и служат для решения такой проблемы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...