Jump to content

    
Sign in to follow this  
std

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

Recommended Posts

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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.

 

Share this post


Link to post
Share on other sites
27.06.2021 в 12:31, std сказал:

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this