646 lines
23 KiB
C
646 lines
23 KiB
C
|
|
/**
|
||
|
|
*******************************************************************************************************
|
||
|
|
* @file fm33lg0xx_fl_vao.h
|
||
|
|
* @author FMSH Application Team
|
||
|
|
* @brief Head file of VAO FL Module
|
||
|
|
*******************************************************************************************************
|
||
|
|
* @attention
|
||
|
|
*
|
||
|
|
* Copyright (c) [2021] [Fudan Microelectronics]
|
||
|
|
* THIS SOFTWARE is licensed under Mulan PSL v2.
|
||
|
|
* You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||
|
|
* You may obtain a copy of Mulan PSL v2 at:
|
||
|
|
* http://license.coscl.org.cn/MulanPSL2
|
||
|
|
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||
|
|
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||
|
|
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||
|
|
* See the Mulan PSL v2 for more details.
|
||
|
|
*
|
||
|
|
*******************************************************************************************************
|
||
|
|
*/
|
||
|
|
|
||
|
|
|
||
|
|
/* Define to prevent recursive inclusion---------------------------------------------------------------*/
|
||
|
|
#ifndef __FM33LG0XX_FL_VAO_H
|
||
|
|
#define __FM33LG0XX_FL_VAO_H
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
extern "C" {
|
||
|
|
#endif
|
||
|
|
/* Includes -------------------------------------------------------------------------------------------*/
|
||
|
|
#include "fm33lg0xx_fl_def.h"
|
||
|
|
/** @addtogroup FM33LG0XX_FL_Driver
|
||
|
|
* @{
|
||
|
|
*/
|
||
|
|
|
||
|
|
/** @defgroup VAO VAO
|
||
|
|
* @brief VAO FL driver
|
||
|
|
* @{
|
||
|
|
*/
|
||
|
|
|
||
|
|
/* Exported types -------------------------------------------------------------------------------------*/
|
||
|
|
/** @defgroup VAO_FL_ES_INIT VAO Exported Init structures
|
||
|
|
* @{
|
||
|
|
*/
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief FL VAO Init Sturcture definition
|
||
|
|
*/
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief FL VAO Init Sturcture definition
|
||
|
|
*/
|
||
|
|
typedef struct
|
||
|
|
{
|
||
|
|
/*! PH15输入使能 */
|
||
|
|
uint32_t input;
|
||
|
|
/*! PH15上拉使能 */
|
||
|
|
uint32_t pullup;
|
||
|
|
/*! PH15开漏输出使能 */
|
||
|
|
uint32_t opendrainOutput;
|
||
|
|
/*! PH15功能选择 */
|
||
|
|
uint32_t mode;
|
||
|
|
|
||
|
|
} FL_VAO_IO_InitTypeDef;
|
||
|
|
typedef struct
|
||
|
|
{
|
||
|
|
/*! 驱动能力配置 */
|
||
|
|
uint32_t driveMode;
|
||
|
|
/*! 工作电流大小*/
|
||
|
|
uint32_t workingCurrentMode;
|
||
|
|
|
||
|
|
} FL_VAO_XTLF_InitTypeDef;
|
||
|
|
/**
|
||
|
|
* @}
|
||
|
|
*/
|
||
|
|
/* Exported constants ---------------------------------------------------------------------------------*/
|
||
|
|
/** @defgroup VAO_FL_Exported_Constants VAO Exported Constants
|
||
|
|
* @{
|
||
|
|
*/
|
||
|
|
|
||
|
|
#define VAO_RSTCR_VBAT_RST_Pos (0U)
|
||
|
|
#define VAO_RSTCR_VBAT_RST_Msk (0x1U << VAO_RSTCR_VBAT_RST_Pos)
|
||
|
|
#define VAO_RSTCR_VBAT_RST VAO_RSTCR_VBAT_RST_Msk
|
||
|
|
|
||
|
|
#define VAO_XTLFCR_XTLFEN_Pos (0U)
|
||
|
|
#define VAO_XTLFCR_XTLFEN_Msk (0xfU << VAO_XTLFCR_XTLFEN_Pos)
|
||
|
|
#define VAO_XTLFCR_XTLFEN VAO_XTLFCR_XTLFEN_Msk
|
||
|
|
|
||
|
|
#define VAO_XTLFPR_DRVCFG_Pos (4U)
|
||
|
|
#define VAO_XTLFPR_DRVCFG_Msk (0x7U << VAO_XTLFPR_DRVCFG_Pos)
|
||
|
|
#define VAO_XTLFPR_DRVCFG VAO_XTLFPR_DRVCFG_Msk
|
||
|
|
|
||
|
|
#define VAO_XTLFPR_XTLFIPW_Pos (0U)
|
||
|
|
#define VAO_XTLFPR_XTLFIPW_Msk (0xfU << VAO_XTLFPR_XTLFIPW_Pos)
|
||
|
|
#define VAO_XTLFPR_XTLFIPW VAO_XTLFPR_XTLFIPW_Msk
|
||
|
|
|
||
|
|
#define VAO_FDIER_LFDET_IE_Pos (0U)
|
||
|
|
#define VAO_FDIER_LFDET_IE_Msk (0x1U << VAO_FDIER_LFDET_IE_Pos)
|
||
|
|
#define VAO_FDIER_LFDET_IE VAO_FDIER_LFDET_IE_Msk
|
||
|
|
|
||
|
|
#define VAO_FDISR_LFDETO_Pos (1U)
|
||
|
|
#define VAO_FDISR_LFDETO_Msk (0x1U << VAO_FDISR_LFDETO_Pos)
|
||
|
|
#define VAO_FDISR_LFDETO VAO_FDISR_LFDETO_Msk
|
||
|
|
|
||
|
|
#define VAO_FDISR_LFDETIF_Pos (0U)
|
||
|
|
#define VAO_FDISR_LFDETIF_Msk (0x1U << VAO_FDISR_LFDETIF_Pos)
|
||
|
|
#define VAO_FDISR_LFDETIF VAO_FDISR_LFDETIF_Msk
|
||
|
|
|
||
|
|
#define VAO_INEN_PHINEN_Pos (15U)
|
||
|
|
#define VAO_INEN_PHINEN_Msk (0x1U << VAO_INEN_PHINEN_Pos)
|
||
|
|
#define VAO_INEN_PHINEN VAO_INEN_PHINEN_Msk
|
||
|
|
|
||
|
|
#define VAO_PUEN_PHPUEN_Pos (15U)
|
||
|
|
#define VAO_PUEN_PHPUEN_Msk (0x1U << VAO_PUEN_PHPUEN_Pos)
|
||
|
|
#define VAO_PUEN_PHPUEN VAO_PUEN_PHPUEN_Msk
|
||
|
|
|
||
|
|
#define VAO_ODEN_PHODEN_Pos (15U)
|
||
|
|
#define VAO_ODEN_PHODEN_Msk (0x1U << VAO_ODEN_PHODEN_Pos)
|
||
|
|
#define VAO_ODEN_PHODEN VAO_ODEN_PHODEN_Msk
|
||
|
|
|
||
|
|
#define VAO_FCR_PH15FCR_Pos (30U)
|
||
|
|
#define VAO_FCR_PH15FCR_Msk (0x3U << VAO_FCR_PH15FCR_Pos)
|
||
|
|
#define VAO_FCR_PH15FCR VAO_FCR_PH15FCR_Msk
|
||
|
|
|
||
|
|
#define VAO_DOR_PHDO_Pos (15U)
|
||
|
|
#define VAO_DOR_PHDO_Msk (0x1U << VAO_DOR_PHDO_Pos)
|
||
|
|
#define VAO_DOR_PHDO VAO_DOR_PHDO_Msk
|
||
|
|
|
||
|
|
#define VAO_DIR_PHDIN_Pos (15U)
|
||
|
|
#define VAO_DIR_PHDIN_Msk (0x1U << VAO_DIR_PHDIN_Pos)
|
||
|
|
#define VAO_DIR_PHDIN VAO_DIR_PHDIN_Msk
|
||
|
|
|
||
|
|
#define VAO_VILR_PHVIL15_Pos (15U)
|
||
|
|
#define VAO_VILR_PHVIL15_Msk (0x1U << VAO_VILR_PHVIL15_Pos)
|
||
|
|
#define VAO_VILR_PHVIL15 VAO_VILR_PHVIL15_Msk
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
#define FL_VAO_XTLF_ENABLE (0x5U << VAO_XTLFCR_XTLFEN_Pos)
|
||
|
|
#define FL_VAO_XTLF_DISABLE (0xaU << VAO_XTLFCR_XTLFEN_Pos)
|
||
|
|
|
||
|
|
#define FL_VAO_XTLF_DRIVE_LEVEL_NONE (0x0U << VAO_XTLFPR_DRVCFG_Pos)
|
||
|
|
#define FL_VAO_XTLF_DRIVE_LEVEL_1 (0x1U << VAO_XTLFPR_DRVCFG_Pos)
|
||
|
|
#define FL_VAO_XTLF_DRIVE_LEVEL_2 (0x2U << VAO_XTLFPR_DRVCFG_Pos)
|
||
|
|
#define FL_VAO_XTLF_DRIVE_LEVEL_3 (0x3U << VAO_XTLFPR_DRVCFG_Pos)
|
||
|
|
#define FL_VAO_XTLF_DRIVE_LEVEL_4 (0x4U << VAO_XTLFPR_DRVCFG_Pos)
|
||
|
|
#define FL_VAO_XTLF_DRIVE_LEVEL_5 (0x5U << VAO_XTLFPR_DRVCFG_Pos)
|
||
|
|
#define FL_VAO_XTLF_DRIVE_LEVEL_6 (0x6U << VAO_XTLFPR_DRVCFG_Pos)
|
||
|
|
#define FL_VAO_XTLF_DRIVE_LEVEL_7 (0x7U << VAO_XTLFPR_DRVCFG_Pos)
|
||
|
|
|
||
|
|
#define FL_VAO_XTLF_OUTPUT_LEVEL_NONE (0x0U << VAO_XTLFPR_DRVCFG_Pos)
|
||
|
|
#define FL_VAO_XTLF_OUTPUT_LEVEL_1 (0x1U << VAO_XTLFPR_DRVCFG_Pos)
|
||
|
|
#define FL_VAO_XTLF_OUTPUT_LEVEL_2 (0x2U << VAO_XTLFPR_DRVCFG_Pos)
|
||
|
|
#define FL_VAO_XTLF_OUTPUT_LEVEL_3 (0x3U << VAO_XTLFPR_DRVCFG_Pos)
|
||
|
|
#define FL_VAO_XTLF_OUTPUT_LEVEL_4 (0x4U << VAO_XTLFPR_DRVCFG_Pos)
|
||
|
|
#define FL_VAO_XTLF_OUTPUT_LEVEL_5 (0x5U << VAO_XTLFPR_DRVCFG_Pos)
|
||
|
|
#define FL_VAO_XTLF_OUTPUT_LEVEL_6 (0x6U << VAO_XTLFPR_DRVCFG_Pos)
|
||
|
|
#define FL_VAO_XTLF_OUTPUT_LEVEL_7 (0x7U << VAO_XTLFPR_DRVCFG_Pos)
|
||
|
|
|
||
|
|
#define FL_VAO_XTLF_WORK_CURRENT_850NA (0x0U << VAO_XTLFPR_XTLFIPW_Pos)
|
||
|
|
#define FL_VAO_XTLF_WORK_CURRENT_800NA (0x1U << VAO_XTLFPR_XTLFIPW_Pos)
|
||
|
|
#define FL_VAO_XTLF_WORK_CURRENT_750NA (0x2U << VAO_XTLFPR_XTLFIPW_Pos)
|
||
|
|
#define FL_VAO_XTLF_WORK_CURRENT_700NA (0x3U << VAO_XTLFPR_XTLFIPW_Pos)
|
||
|
|
#define FL_VAO_XTLF_WORK_CURRENT_650NA (0x4U << VAO_XTLFPR_XTLFIPW_Pos)
|
||
|
|
#define FL_VAO_XTLF_WORK_CURRENT_600NA (0x5U << VAO_XTLFPR_XTLFIPW_Pos)
|
||
|
|
#define FL_VAO_XTLF_WORK_CURRENT_550NA (0x6U << VAO_XTLFPR_XTLFIPW_Pos)
|
||
|
|
#define FL_VAO_XTLF_WORK_CURRENT_500NA (0x7U << VAO_XTLFPR_XTLFIPW_Pos)
|
||
|
|
#define FL_VAO_XTLF_WORK_CURRENT_450NA (0x8U << VAO_XTLFPR_XTLFIPW_Pos)
|
||
|
|
#define FL_VAO_XTLF_WORK_CURRENT_400NA (0x9U << VAO_XTLFPR_XTLFIPW_Pos)
|
||
|
|
#define FL_VAO_XTLF_WORK_CURRENT_350NA (0xaU << VAO_XTLFPR_XTLFIPW_Pos)
|
||
|
|
#define FL_VAO_XTLF_WORK_CURRENT_300NA (0xbU << VAO_XTLFPR_XTLFIPW_Pos)
|
||
|
|
#define FL_VAO_XTLF_WORK_CURRENT_250NA (0xcU << VAO_XTLFPR_XTLFIPW_Pos)
|
||
|
|
#define FL_VAO_XTLF_WORK_CURRENT_200NA (0xdU << VAO_XTLFPR_XTLFIPW_Pos)
|
||
|
|
#define FL_VAO_XTLF_WORK_CURRENT_150NA (0xeU << VAO_XTLFPR_XTLFIPW_Pos)
|
||
|
|
#define FL_VAO_XTLF_WORK_CURRENT_100NA (0xfU << VAO_XTLFPR_XTLFIPW_Pos)
|
||
|
|
|
||
|
|
|
||
|
|
#define FL_VAO_PH15_MODE_INPUT (0x0U << VAO_FCR_PH15FCR_Pos)
|
||
|
|
#define FL_VAO_PH15_MODE_OUTPUT (0x1U << VAO_FCR_PH15FCR_Pos)
|
||
|
|
#define FL_VAO_PH15_MODE_RTCOUT (0x2U << VAO_FCR_PH15FCR_Pos)
|
||
|
|
|
||
|
|
|
||
|
|
#define FL_VAO_PH15_THRESHOLD_NORMAL (0x0U << VAO_VILR_PHVIL15_Pos)
|
||
|
|
#define FL_VAO_PH15_THRESHOLD_LOW (0x1U << VAO_VILR_PHVIL15_Pos)
|
||
|
|
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @}
|
||
|
|
*/
|
||
|
|
/* Exported functions ---------------------------------------------------------------------------------*/
|
||
|
|
/** @defgroup VAO_FL_Exported_Functions VAO Exported Functions
|
||
|
|
* @{
|
||
|
|
*/
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief VBAT电源域寄存器复位使能
|
||
|
|
* @rmtoll RSTCR VBAT_RST FL_VAO_EnableReset
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval None
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE void FL_VAO_EnableReset(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
SET_BIT(VAOx->RSTCR, VAO_RSTCR_VBAT_RST_Msk);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief 获取VBAT电源域寄存器复位控制状态
|
||
|
|
* @rmtoll RSTCR VBAT_RST FL_VAO_IsEnabledReset
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval State of bit (1 or 0).
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE uint32_t FL_VAO_IsEnabledReset(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
return (uint32_t)(READ_BIT(VAOx->RSTCR, VAO_RSTCR_VBAT_RST_Msk) == VAO_RSTCR_VBAT_RST_Msk);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief VBAT电源域寄存器复位撤销
|
||
|
|
* @rmtoll RSTCR VBAT_RST FL_VAO_DisableReset
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval None
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE void FL_VAO_DisableReset(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
CLEAR_BIT(VAOx->RSTCR, VAO_RSTCR_VBAT_RST_Msk);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief 使能XTLF
|
||
|
|
* @rmtoll XTLFCR XTLFEN FL_VAO_XTLF_Enable
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval None
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE void FL_VAO_XTLF_Enable(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
WRITE_REG(VAOx->XTLFCR, FL_VAO_XTLF_ENABLE);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief 获取XTLF状态
|
||
|
|
* @rmtoll XTLFCR XTLFEN FL_VAO_XTLF_IsEnabled
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval State of bit (1 or 0).
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE uint32_t FL_VAO_XTLF_IsEnabled(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
return (uint32_t)(READ_REG(VAOx->XTLFCR));
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief 禁止XTLF
|
||
|
|
* @rmtoll XTLFCR XTLFEN FL_VAO_XTLF_Disable
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval None
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE void FL_VAO_XTLF_Disable(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
WRITE_REG(VAOx->XTLFCR, FL_VAO_XTLF_DISABLE);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief 设置输出级驱动等级
|
||
|
|
* @rmtoll XTLFPR DRVCFG FL_VAO_XTLF_SetDriveLevel
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @param level This parameter can be one of the following values:
|
||
|
|
* @arg @ref FL_VAO_XTLF_DRIVE_LEVEL_NONE
|
||
|
|
* @arg @ref FL_VAO_XTLF_DRIVE_LEVEL_1
|
||
|
|
* @arg @ref FL_VAO_XTLF_DRIVE_LEVEL_2
|
||
|
|
* @arg @ref FL_VAO_XTLF_DRIVE_LEVEL_3
|
||
|
|
* @arg @ref FL_VAO_XTLF_DRIVE_LEVEL_4
|
||
|
|
* @arg @ref FL_VAO_XTLF_DRIVE_LEVEL_5
|
||
|
|
* @arg @ref FL_VAO_XTLF_DRIVE_LEVEL_6
|
||
|
|
* @arg @ref FL_VAO_XTLF_DRIVE_LEVEL_7
|
||
|
|
* @retval None
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE void FL_VAO_XTLF_SetDriveLevel(VAO_Type *VAOx, uint32_t level)
|
||
|
|
{
|
||
|
|
MODIFY_REG(VAOx->XTLFPR, VAO_XTLFPR_DRVCFG_Msk, level);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Get output drive Level
|
||
|
|
* @rmtoll XTLFPR DRVCFG FL_VAO_XTLF_GetDriveLevel
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval Returned value can be one of the following values:
|
||
|
|
* @arg @ref FL_VAO_XTLF_OUTPUT_LEVEL_NONE
|
||
|
|
* @arg @ref FL_VAO_XTLF_OUTPUT_LEVEL_1
|
||
|
|
* @arg @ref FL_VAO_XTLF_OUTPUT_LEVEL_2
|
||
|
|
* @arg @ref FL_VAO_XTLF_OUTPUT_LEVEL_3
|
||
|
|
* @arg @ref FL_VAO_XTLF_OUTPUT_LEVEL_4
|
||
|
|
* @arg @ref FL_VAO_XTLF_OUTPUT_LEVEL_5
|
||
|
|
* @arg @ref FL_VAO_XTLF_OUTPUT_LEVEL_6
|
||
|
|
* @arg @ref FL_VAO_XTLF_OUTPUT_LEVEL_7
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE uint32_t FL_VAO_XTLF_GetDriveLevel(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
return (uint32_t)(READ_BIT(VAOx->XTLFPR, VAO_XTLFPR_DRVCFG_Msk));
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Set XTLF working current
|
||
|
|
* @rmtoll XTLFPR XTLFIPW FL_VAO_XTLF_SetWorkCurrent
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @param current This parameter can be one of the following values:
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_850NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_800NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_750NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_700NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_650NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_600NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_550NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_500NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_450NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_400NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_350NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_300NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_250NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_200NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_150NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_100NA
|
||
|
|
* @retval None
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE void FL_VAO_XTLF_SetWorkCurrent(VAO_Type *VAOx, uint32_t current)
|
||
|
|
{
|
||
|
|
MODIFY_REG(VAOx->XTLFPR, VAO_XTLFPR_XTLFIPW_Msk, current);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Get XTLF working current
|
||
|
|
* @rmtoll XTLFPR XTLFIPW FL_VAO_XTLF_GetWorkCurrent
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval Returned value can be one of the following values:
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_850NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_800NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_750NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_700NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_650NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_600NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_550NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_500NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_450NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_400NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_350NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_300NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_250NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_200NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_150NA
|
||
|
|
* @arg @ref FL_VAO_XTLF_WORK_CURRENT_100NA
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE uint32_t FL_VAO_XTLF_GetWorkCurrent(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
return (uint32_t)(READ_BIT(VAOx->XTLFPR, VAO_XTLFPR_XTLFIPW_Msk));
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief XTLF detect interrupt enable
|
||
|
|
* @rmtoll FDIER LFDET_IE FL_VAO_EnableIT_XTLFFail
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval None
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE void FL_VAO_EnableIT_XTLFFail(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
SET_BIT(VAOx->FDIER, VAO_FDIER_LFDET_IE_Msk);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Get XTLF detect interrupt enable status
|
||
|
|
* @rmtoll FDIER LFDET_IE FL_VAO_IsEnabledIT_XTLFFail
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval State of bit (1 or 0).
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE uint32_t FL_VAO_IsEnabledIT_XTLFFail(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
return (uint32_t)(READ_BIT(VAOx->FDIER, VAO_FDIER_LFDET_IE_Msk) == VAO_FDIER_LFDET_IE_Msk);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief XTLF detect interrupt disable
|
||
|
|
* @rmtoll FDIER LFDET_IE FL_VAO_DisableIT_XTLFFail
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval None
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE void FL_VAO_DisableIT_XTLFFail(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
CLEAR_BIT(VAOx->FDIER, VAO_FDIER_LFDET_IE_Msk);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Get XTLF detect output
|
||
|
|
* @rmtoll FDISR LFDETO FL_VAO_GetXTLFFailOutput
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval Returned value can be one of the following values:
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE uint32_t FL_VAO_GetXTLFFailOutput(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
return (uint32_t)(READ_BIT(VAOx->FDISR, VAO_FDISR_LFDETO_Msk) >> VAO_FDISR_LFDETO_Pos);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Get XTLF detect interrupt flag
|
||
|
|
* @rmtoll FDISR LFDETIF FL_VAO_IsActiveFlag_XTLFFail
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval State of bit (1 or 0).
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE uint32_t FL_VAO_IsActiveFlag_XTLFFail(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
return (uint32_t)(READ_BIT(VAOx->FDISR, VAO_FDISR_LFDETIF_Msk) == (VAO_FDISR_LFDETIF_Msk));
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Clear XTLF detect interrupt flag
|
||
|
|
* @rmtoll FDISR LFDETIF FL_VAO_ClearFlag_XTLFFail
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval None
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE void FL_VAO_ClearFlag_XTLFFail(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
WRITE_REG(VAOx->FDISR, VAO_FDISR_LFDETIF_Msk);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief PH15 input enable
|
||
|
|
* @rmtoll INEN PHINEN FL_VAO_GPIO_EnablePH15Input
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval None
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE void FL_VAO_GPIO_EnablePH15Input(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
SET_BIT(VAOx->INEN, VAO_INEN_PHINEN_Msk);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Get PH15 input enable status
|
||
|
|
* @rmtoll INEN PHINEN FL_VAO_GPIO_IsEnabledPH15Input
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval State of bit (1 or 0).
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE uint32_t FL_VAO_GPIO_IsEnabledPH15Input(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
return (uint32_t)(READ_BIT(VAOx->INEN, VAO_INEN_PHINEN_Msk) == VAO_INEN_PHINEN_Msk);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief PH15 input disable
|
||
|
|
* @rmtoll INEN PHINEN FL_VAO_GPIO_DisablePH15Input
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval None
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE void FL_VAO_GPIO_DisablePH15Input(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
CLEAR_BIT(VAOx->INEN, VAO_INEN_PHINEN_Msk);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief PH15 pullup enable
|
||
|
|
* @rmtoll PUEN PHPUEN FL_VAO_GPIO_EnablePH15Pullup
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval None
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE void FL_VAO_GPIO_EnablePH15Pullup(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
SET_BIT(VAOx->PUEN, VAO_PUEN_PHPUEN_Msk);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Get PH15 pullup enable status
|
||
|
|
* @rmtoll PUEN PHPUEN FL_VAO_GPIO_IsEnabledPH15Pullup
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval State of bit (1 or 0).
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE uint32_t FL_VAO_GPIO_IsEnabledPH15Pullup(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
return (uint32_t)(READ_BIT(VAOx->PUEN, VAO_PUEN_PHPUEN_Msk) == VAO_PUEN_PHPUEN_Msk);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief PH15 pullup disable
|
||
|
|
* @rmtoll PUEN PHPUEN FL_VAO_GPIO_DisablePH15Pullup
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval None
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE void FL_VAO_GPIO_DisablePH15Pullup(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
CLEAR_BIT(VAOx->PUEN, VAO_PUEN_PHPUEN_Msk);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief PH15 pullup enable
|
||
|
|
* @rmtoll ODEN PHODEN FL_VAO_GPIO_EnablePH15OpenDrain
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval None
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE void FL_VAO_GPIO_EnablePH15OpenDrain(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
SET_BIT(VAOx->ODEN, VAO_ODEN_PHODEN_Msk);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Get PH15 pullup enable status
|
||
|
|
* @rmtoll ODEN PHODEN FL_VAO_GPIO_IsEnabledPH15OpenDrain
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval State of bit (1 or 0).
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE uint32_t FL_VAO_GPIO_IsEnabledPH15OpenDrain(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
return (uint32_t)(READ_BIT(VAOx->ODEN, VAO_ODEN_PHODEN_Msk) == VAO_ODEN_PHODEN_Msk);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief PH15 pullup disable
|
||
|
|
* @rmtoll ODEN PHODEN FL_VAO_GPIO_DisablePH15OpenDrain
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval None
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE void FL_VAO_GPIO_DisablePH15OpenDrain(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
CLEAR_BIT(VAOx->ODEN, VAO_ODEN_PHODEN_Msk);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Set PH15 mode
|
||
|
|
* @rmtoll FCR PH15FCR FL_VAO_GPIO_SetPH15Mode
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @param mode This parameter can be one of the following values:
|
||
|
|
* @arg @ref FL_VAO_PH15_MODE_INPUT
|
||
|
|
* @arg @ref FL_VAO_PH15_MODE_OUTPUT
|
||
|
|
* @arg @ref FL_VAO_PH15_MODE_RTCOUT
|
||
|
|
* @retval None
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE void FL_VAO_GPIO_SetPH15Mode(VAO_Type *VAOx, uint32_t mode)
|
||
|
|
{
|
||
|
|
MODIFY_REG(VAOx->FCR, VAO_FCR_PH15FCR_Msk, mode);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Get PH15 mode
|
||
|
|
* @rmtoll FCR PH15FCR FL_VAO_GPIO_GetPH15Mode
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval Returned value can be one of the following values:
|
||
|
|
* @arg @ref FL_VAO_PH15_MODE_INPUT
|
||
|
|
* @arg @ref FL_VAO_PH15_MODE_OUTPUT
|
||
|
|
* @arg @ref FL_VAO_PH15_MODE_RTCOUT
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE uint32_t FL_VAO_GPIO_GetPH15Mode(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
return (uint32_t)(READ_BIT(VAOx->FCR, VAO_FCR_PH15FCR_Msk));
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Set PH15 output data register
|
||
|
|
* @rmtoll DOR PHDO FL_VAO_GPIO_WritePH15Output
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @param data
|
||
|
|
* @retval None
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE void FL_VAO_GPIO_WritePH15Output(VAO_Type *VAOx, uint32_t data)
|
||
|
|
{
|
||
|
|
MODIFY_REG(VAOx->DOR, (0x1U << 15U), (data << 15U));
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Get PH15 output data
|
||
|
|
* @rmtoll DOR PHDO FL_VAO_GPIO_ReadPH15Output
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE uint32_t FL_VAO_GPIO_ReadPH15Output(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
return (uint32_t)(READ_BIT(VAOx->DOR, (0x1U << 15U)) >> 15U);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Get PH15 input data
|
||
|
|
* @rmtoll DIR PHDIN FL_VAO_GPIO_ReadPH15Input
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE uint32_t FL_VAO_GPIO_ReadPH15Input(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
return (uint32_t)(READ_BIT(VAOx->DIR, (0x1U << 15U)) >> 15U);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Set PH15 input low threshold value
|
||
|
|
* @rmtoll VILR PHVIL15 FL_VAO_GPIO_SetPH15Threshold
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @param value This parameter can be one of the following values:
|
||
|
|
* @arg @ref FL_VAO_PH15_THRESHOLD_NORMAL
|
||
|
|
* @arg @ref FL_VAO_PH15_THRESHOLD_LOW
|
||
|
|
* @retval None
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE void FL_VAO_GPIO_SetPH15Threshold(VAO_Type *VAOx, uint32_t value)
|
||
|
|
{
|
||
|
|
MODIFY_REG(VAOx->VILR, VAO_VILR_PHVIL15_Msk, value);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Get PH15 input low threshold value
|
||
|
|
* @rmtoll VILR PHVIL15 FL_VAO_GPIO_GetPH15Threshold
|
||
|
|
* @param VAOx VAO instance
|
||
|
|
* @retval Returned value can be one of the following values:
|
||
|
|
* @arg @ref FL_VAO_PH15_THRESHOLD_NORMAL
|
||
|
|
* @arg @ref FL_VAO_PH15_THRESHOLD_LOW
|
||
|
|
*/
|
||
|
|
__STATIC_INLINE uint32_t FL_VAO_GPIO_GetPH15Threshold(VAO_Type *VAOx)
|
||
|
|
{
|
||
|
|
return (uint32_t)(READ_BIT(VAOx->VILR, VAO_VILR_PHVIL15_Msk));
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @}
|
||
|
|
*/
|
||
|
|
|
||
|
|
/** @defgroup VAO_FL_EF_Init Initialization and de-initialization functions
|
||
|
|
* @{
|
||
|
|
*/
|
||
|
|
//#warning "PLEASE ANNOUCE THE INIT AND DEINIT FUNCTIONS HERE!!!"
|
||
|
|
FL_ErrorStatus FL_VAO_DeInit(VAO_Type *VAOx);
|
||
|
|
FL_ErrorStatus FL_VAO_IO_Init(VAO_Type *VAOx, FL_VAO_IO_InitTypeDef *VAO_InitStruct);
|
||
|
|
FL_ErrorStatus FL_VAO_XTLF_Init(VAO_Type *VAOx, FL_VAO_XTLF_InitTypeDef *VAO_XTLF_InitStruct);
|
||
|
|
void FL_VAO_IO_StructInit(FL_VAO_IO_InitTypeDef *VAO_InitStruct);
|
||
|
|
void FL_VAO_XTLF_StructInit(FL_VAO_XTLF_InitTypeDef *VAO_XTLF_InitStruct);
|
||
|
|
/**
|
||
|
|
* @}
|
||
|
|
*/
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @}
|
||
|
|
*/
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @}
|
||
|
|
*/
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
}
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#endif /* __FM33LG0XX_FL_VAO_H*/
|
||
|
|
|
||
|
|
/*************************Py_Code_Generator Version: 0.1-0.11-0.1 @ 2020-09-14*************************/
|
||
|
|
/*************************(C) COPYRIGHT Fudan Microelectronics **** END OF FILE*************************/
|