STM32 и две его собаки

Группа компаний Промэлектроника
21.06.2012

        Речь пойдёт о сторожевых таймерах (watch dog). На контроллерах семейства STM32 их сразу два. Один независимый (IWDG), второй – оконный (WWDG).
        Задача обоих таймеров – сбросить контроллер в случае его зависания или несанкционированного ухода в какое-либо ветвление внутри программы. Независимый сторожевой таймер тактируется отдельным, низкочастотным генератором LSI. Направление счёта таймера – сверху вниз. При достижении нуля таймер сбрасывает контроллер. После запуска независимого сторожевого таймера его невозможно будет остановить, поэтому программа должна периодически обновлять значение сторожевого таймера. Если программа вошла в замкнутый бесконечный цикл и не обновляет сторожевой таймер, то процессор войдёт в сброс через некоторое время и устройство восстановит функциональность.
        Оконный сторожевой таймер тактируется от того же источника, что и ядро STM32. Задача этого таймера похожа на описанную выше. Таймер по-прежнему считает вниз, правда, синхронно с выполнением программы. Досчитав до нуля, он сбрасывает контроллер. Кроме того, оконному сторожевому таймеру можно выставить значение времени: «можно обновлять не ранее чем». При попытке обновиться ранее установленного значения происходит сброс. Таким образом, можно «поймать» такую ситуацию:




 

         При известном времени выполнения программы пользователя можно отслеживать каждый этап её выполнения. Несанкционированный переход на обновление WWDG приведёт к изменению его значения раньше разрешённого «окна времени», что приведёт к сбросу микроконтроллера. Таким образом, можно гораздо точнее отладить работу программы.
Как получить классический сторожевой таймер из оконного? Необходимо установить верхнюю границу времени обновления равной (или выше) значению таймера.

         Инженеры компании "Промэлектроника" выполнили простую лабораторную работу для платы STM32F4Discovery, демонстрирующую работу независимого сторожевого таймера совместно с работой RTC, энергосберегающим режимом, контроллером внешних прерываний и портов ввода вывода. Достаточно загрузить программу в контроллер и по светодиодной индикации можно увидеть моменты перезагрузки микроконтроллера. Код проекта можно взять здесь.


За получением более подробной информации вы можете обратиться:


Бренд-менеджер:
Сорокин Сергей
E-mail: info@promelec.ru
Телефон: +7 (343) 245-68-20

Задать вопрос техподдержке Вы можете на нашем форуме.


  "ПРОМЭЛЕКТРОНИКА" - официальный прямой дистрибьютор компании "STMicroelectronics"


Последние новости - одной лентой: