stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c File Reference

PWR HAL module driver. This file provides firmware functions to manage the following functionalities of the Power Controller (PWR) peripheral: More...

#include "stm32h7xx_hal.h"
Include dependency graph for stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c:

Go to the source code of this file.

Detailed Description

PWR HAL module driver. This file provides firmware functions to manage the following functionalities of the Power Controller (PWR) peripheral:

Author
MCD Application Team
  • Initialization and de-initialization functions.
  • Peripheral Control functions.
  • Interrupt Handling functions.
    ==============================================================================
                          ##### PWR peripheral overview #####
    ==============================================================================
    [..]
     (#) The Power control (PWR) provides an overview of the supply architecture
         for the different power domains and of the supply configuration
         controller.
         In the H7 family, the number of power domains is different between
         device lines. This difference is due to characteristics of each device.
    
     (#) Domain architecture overview for the different H7 lines:
        (+) Dual core lines are STM32H745, STM32H747, STM32H755 and STM32H757.
            These devices have 3 power domains (D1, D2 and D3).
            The domain D1 contains a CPU (Cortex-M7), a Flash memory and some
            peripherals. The D2 domain contains peripherals and a CPU
            (Cortex-M4). The D3 domain contains the system control, I/O logic
            and low-power peripherals.
        (+) STM32H72x, STM32H73x, STM32H742, STM32H743, STM32H750 and STM32H753 
            devices have 3 power domains (D1, D2 and D3).
            The domain D1 contains a CPU (Cortex-M7), a Flash memory and some
            peripherals. The D2 domain contains peripherals. The D3 domains
            contains the system control, I/O logic and low-power peripherals.
        (+) STM32H7Axxx and STM32H7Bxxx devices have 2 power domains (CD and SRD).
            The core domain (CD) contains a CPU (Cortex-M7), a Flash
            memory and peripherals. The SmartRun domain contains the system
            control, I/O logic and low-power peripherals.
    
     (#) Every entity have low power mode as decribed below :
     (#) The CPU low power modes are :
        (+) CPU CRUN.
        (+) CPU CSLEEP.
        (+) CPU CSTOP.
     (#) The domain low power modes are :
        (+) DRUN.
        (+) DSTOP.
        (+) DSTANDBY.
     (#) The SYSTEM low power modes are :
        (+) RUN* : The Run* mode is entered after a POR reset and a wakeup from
                   Standby. In Run* mode, the performance is limited and the
                   system supply configuration shall be programmed. The system
                   enters Run mode only when the ACTVOSRDY bit in PWR control
                   status register 1 (PWR_CSR1) is set to 1.
        (+) RUN.
        (+) STOP.
        (+) STANDBY.
    
    ==============================================================================
                          ##### How to use this driver #####
    ==============================================================================
    [..]
     (#) Power management peripheral is active by default at startup level in
         STM32h7xx lines.
    
     (#) Call HAL_PWR_EnableBkUpAccess() and HAL_PWR_DisableBkUpAccess() functions
         to enable/disable access to the backup domain (RTC registers, RTC backup
         data registers and backup SRAM).
    
     (#) Call HAL_PWR_ConfigPVD() after setting parameters to be configured (event
         mode and voltage threshold) in order to set up the Power Voltage Detector,
         then use HAL_PWR_EnablePVD() and  HAL_PWR_DisablePVD() functions to start
         and stop the PVD detection.
         (+) PVD level could be one of the following values :
               (++) 1V95
               (++) 2V1
               (++) 2V25
               (++) 2V4
               (++) 2V55
               (++) 2V7
               (++) 2V85
               (++) External voltage level
    
     (#) Call HAL_PWR_EnableWakeUpPin() and HAL_PWR_DisableWakeUpPin() functions
         with the right parameter to configure the wake up pin polarity (Low or
         High) and to enable and disable it.
    
     (#) Call HAL_PWR_EnterSLEEPMode() function to enter the current Core in SLEEP
         mode. Wake-up from SLEEP mode could be following to an event or an
         interrupt according to low power mode intrinsic request called (__WFI()
         or __WFE()).
         Please ensure to clear all CPU pending events by calling
         HAL_PWREx_ClearPendingEvent() function when trying to enter the Cortex-Mx
         in SLEEP mode with __WFE() entry.
    
     (#) Call HAL_PWR_EnterSTOPMode() function to enter the whole system to Stop 0
         mode for single core devices. For dual core devices, this API will enter
         the domain (containing Cortex-Mx that executing this function) in DSTOP
         mode. According to the used parameter, user could select the regulator to
         be kept actif in low power mode and wake-up event type.
         Please ensure to clear all CPU pending events by calling
         HAL_PWREx_ClearPendingEvent() function when trying to enter the Cortex-Mx
         in CSTOP mode with __WFE() entry.
    
     (#) Call HAL_PWR_EnterSTANDBYMode() function to enter the whole system in
         STANDBY mode for single core devices. For dual core devices, this API
         will enter the domain (containing Cortex-Mx that executing this function)
         in DSTANDBY mode.
    
     (#) Call HAL_PWR_EnableSleepOnExit() and HAL_PWR_DisableSleepOnExit() APIs to
         enable and disable the Cortex-Mx re-entring in SLEEP mode after an
         interruption handling is over.
    
     (#) Call HAL_PWR_EnableSEVOnPend() and HAL_PWR_DisableSEVOnPend() functions
         to configure the Cortex-Mx to wake-up after any pending event / interrupt
         even if it's disabled or has insufficient priority to cause exception
         entry.
    
     (#) Call HAL_PWR_PVD_IRQHandler() function to handle the PWR PVD interrupt
         request.
    
       *** PWR HAL driver macros list ***
       =============================================
       [..]
         Below the list of most used macros in PWR HAL driver.
    
        (+) __HAL_PWR_VOLTAGESCALING_CONFIG() : Configure the main internal
                                                regulator output voltage.
        (+) __HAL_PWR_GET_FLAG()              : Get the PWR pending flags.
        (+) __HAL_PWR_CLEAR_FLAG()            : Clear the PWR pending flags.
Attention

© COPYRIGHT(c) 2017 STMicroelectronics. All rights reserved.

This software component is licensed by ST under BSD 3-Clause license, the "License"; You may not use this file except in compliance with the License. You may obtain a copy of the License at: opensource.org/licenses/BSD-3-Clause

Definition in file stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.



picovoice_driver
Author(s):
autogenerated on Fri Apr 1 2022 02:15:03