This file provides firmware functions to manage the following functionalities of the Independent watchdog (IWDG) peripheral:
- Prescaler and Counter configuration
- IWDG activation.
More...
#include "stm8l15x_iwdg.h"
Go to the source code of this file.
Detailed Description
This file provides firmware functions to manage the following functionalities of the Independent watchdog (IWDG) peripheral:
- Prescaler and Counter configuration
- IWDG activation.
- Author:
- MCD Application Team
- Version:
- V1.5.0
- Date:
- 13-May-2011
*
* ===================================================================
* IWDG features
* ===================================================================
*
* The IWDG can be started by either software or hardware (configurable
* through option byte).
*
* The IWDG is clocked by its own dedicated low-speed clock (LSI) and
* thus stays active even if the main clock fails.
* Once the IWDG is started, the LSI is forced ON and cannot be disabled
* (LSI cannot be disabled too), and the counter starts counting down from
* the reset value of 0xFF. When it reaches the end of count value (0x00)
* a system reset is generated.
* The IWDG counter should be reloaded at regular intervals to prevent
* an MCU reset.
*
* The IWDG is implemented in the VDD voltage domain that is still functional
* in Halt and Active Halt mode depending on the configuration of the IWDG_HALT
* option byte. (IWDG reset can wake-up from Halt).
*
* IWDGF flag in RST_SR register can be used to inform when a IWDG
* reset occurs.
*
* Min-max timeout value @38KHz (LSI): 0.10 ms / ~1.724s
* The IWDG timeout may vary due to LSI frequency dispersion. STM8L15x
* devices provide the capability to measure the LSI frequency (LSI clock
* connected internally to TIM2 CH1 input capture). The measured value
* can be used to have an IWDG timeout with an acceptable accuracy.
* For more information, please refer to the STM8L15x Reference manual
*
*
* ===================================================================
* How to use this driver
* ===================================================================
* 1. Enable write access to IWDG_PR and IWDG_RLR registers using
* IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable) function
*
* 2. Configure the IWDG prescaler using IWDG_SetPrescaler() function
*
* 3. Configure the IWDG counter value using IWDG_SetReload() function.
* This value will be loaded in the IWDG counter each time the counter
* is reloaded, then the IWDG will start counting down from this value.
*
* 4. Start the IWDG using IWDG_Enable() function, when the IWDG is used
* in software mode (no need to enable the LSI, it will be enabled
* by hardware)
*
* 5. Then the application program must reload the IWDG counter at regular
* intervals during normal operation to prevent an MCU reset, using
* IWDG_ReloadCounter() function.
*
*
- Attention:
THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
© COPYRIGHT 2011 STMicroelectronics
Definition in file stm8l15x_iwdg.c.