/**
|
******************************************************************************
|
* @file fm33a0xxev_svd.h
|
* @author FM33A0XXEV Application Team
|
* @version V1.0.0
|
* @date 16-April-2020
|
* @brief This file contains all the functions prototypes for the SVD firmware library.
|
******************************************************************************
|
*/
|
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
|
#ifndef __FM33A0XXEV_SVD_H
|
#define __FM33A0XXEV_SVD_H
|
|
|
#ifdef __cplusplus
|
extern "C" {
|
#endif
|
|
/* Includes ------------------------------------------------------------------*/
|
|
#include "FM33A0XXEV.h"
|
|
typedef struct
|
{
|
uint32_t SVDMOD; /*!<SVD¹¤×÷ģʽѡÔñ */
|
uint32_t SVDITVL; /*!<SVD¼äЪʹÄܼä¸ô */
|
uint32_t SVDLVL; /*!<SVD±¨¾¯ãÐÖµÉèÖà */
|
FunState DFEN; /*!<SVDÊý×ÖÂ˲¨£¨SVDMODE=1ʱ±ØÐëÖÃ1£© */
|
FunState PFIE; /*!<SVDµçÔ´µøÂäÖÐ¶Ï */
|
FunState PRIE; /*!<SVDµçÔ´»Ö¸´ÖÐ¶Ï */
|
FunState SVDEN; /*!<SVDʹÄÜ */
|
|
}SVD_InitTypeDef;
|
|
#define SVD_CFGR_LVL_Pos 4 /* SVD±¨¾¯ãÐÖµµµÎ»ÉèÖ㬲μû11.3.3¼ì²âãÐÖµ
|
(SVD threshold level) */
|
#define SVD_CFGR_LVL_Msk (0xfU << SVD_CFGR_LVL_Pos)
|
#define SVD_CFGR_LVL_1P800V (0x0U << SVD_CFGR_LVL_Pos)
|
#define SVD_CFGR_LVL_2P014V (0x1U << SVD_CFGR_LVL_Pos)
|
#define SVD_CFGR_LVL_2P229V (0x2U << SVD_CFGR_LVL_Pos)
|
#define SVD_CFGR_LVL_2P443V (0x3U << SVD_CFGR_LVL_Pos)
|
#define SVD_CFGR_LVL_2P657V (0x4U << SVD_CFGR_LVL_Pos)
|
#define SVD_CFGR_LVL_2P871V (0x5U << SVD_CFGR_LVL_Pos)
|
#define SVD_CFGR_LVL_3P086V (0x6U << SVD_CFGR_LVL_Pos)
|
#define SVD_CFGR_LVL_3P300V (0x7U << SVD_CFGR_LVL_Pos)
|
#define SVD_CFGR_LVL_3P514V (0x8U << SVD_CFGR_LVL_Pos)
|
#define SVD_CFGR_LVL_3P729V (0x9U << SVD_CFGR_LVL_Pos)
|
#define SVD_CFGR_LVL_3P943V (0xaU << SVD_CFGR_LVL_Pos)
|
#define SVD_CFGR_LVL_4P157V (0xbU << SVD_CFGR_LVL_Pos)
|
#define SVD_CFGR_LVL_4P371V (0xcU << SVD_CFGR_LVL_Pos)
|
#define SVD_CFGR_LVL_4P586V (0xdU << SVD_CFGR_LVL_Pos)
|
#define SVD_CFGR_LVL_4P800V (0xeU << SVD_CFGR_LVL_Pos)
|
#define SVD_CFGR_LVL_SVS (0xfU << SVD_CFGR_LVL_Pos)
|
|
#define SVD_CFGR_DFEN_Pos 3 /* Êý×ÖÂ˲¨Ê¹ÄÜ£¨MOD=1ʱ±ØÐëÖÃ1£©
|
(Digital Filter Enable)
|
1£ºÆô¶¯SVDÊä³öµÄÊý×ÖÂ˲¨
|
0£º¹Ø±ÕSVDÊä³öµÄÊý×ÖÂ˲¨ */
|
#define SVD_CFGR_DFEN_Msk (0x1U << SVD_CFGR_DFEN_Pos)
|
/* Æô¶¯SVDÊä³öµÄÊý×ÖÂ˲¨ */
|
/* ¹Ø±ÕSVDÊä³öµÄÊý×ÖÂ˲¨ */
|
|
#define SVD_CFGR_MOD_Pos 2 /* SVD¹¤×÷ģʽѡÔñ£¬ÅäÖÃģʽºó»¹ÒªÖÃλSVD_CR.EN²Å»áÆô¶¯SVD
|
(SVD Mode)
|
1£º¼äЪʹÄÜģʽ
|
0£º³£Ê¹ÄÜģʽ
|
×¢Ò⣺¼äЪʹÄÜģʽϱØÐ뿪ÆôÊý×ÖÂ˲¨ */
|
#define SVD_CFGR_MOD_Msk (0x1U << SVD_CFGR_MOD_Pos)
|
#define SVD_CFGR_MOD_INTERVAL (0x1U << SVD_CFGR_MOD_Pos) /* ¼äЪʹÄÜģʽ */
|
#define SVD_CFGR_MOD_ALWAYSON (0x0U << SVD_CFGR_MOD_Pos) /* ³£Ê¹ÄÜģʽ */
|
|
#define SVD_CFGR_ITVL_Pos 0 /* SVD¼äЪʹÄܼä¸ô (SVD interval enable period)
|
00£º62.5ms
|
01£º256ms
|
10£º1s
|
11£º4s */
|
#define SVD_CFGR_ITVL_Msk (0x3U << SVD_CFGR_ITVL_Pos)
|
#define SVD_CFGR_ITVL_62P5MS (0x0U << SVD_CFGR_ITVL_Pos) /* 62.5ms */
|
#define SVD_CFGR_ITVL_256MS (0x1U << SVD_CFGR_ITVL_Pos) /* 256ms */
|
#define SVD_CFGR_ITVL_1S (0x2U << SVD_CFGR_ITVL_Pos) /* 1s */
|
#define SVD_CFGR_ITVL_4S (0x3U << SVD_CFGR_ITVL_Pos) /* 4s */
|
/* 62.5ms */
|
/* 256ms */
|
/* 1s */
|
/* 4s */
|
#define SVD_CR_TE_Pos 8 /* SVD²âÊÔʹÄÜ£¬±ÜÃâд1 (SVD test enable) */
|
#define SVD_CR_TE_Msk (0x1U << SVD_CR_TE_Pos)
|
|
#define SVD_CR_SVSEN_Pos 1 /* SVSÍⲿµçÔ´¼ì²âͨµÀ¿ØÖÆÐźÅ
|
(SVS external monitor channel enable)
|
0£ºSVSͨµÀ¹Ø±Õ
|
1£ºSVSͨµÀʹÄÜ
|
µ±EN=1ʱ£¬¸ù¾ÝSVDLVL¼Ä´æÆ÷¿ÉÒÔÉèÖÃSVSÊäÈëºóÊÇ·ñ¾¹ýÄÚ²¿µç×è·Öѹ£»Èç¹ûLVL=1111£¬ÔòSVSÊäÈë²»×ö·Öѹ£¬Èç¹ûLVL != 1111£¬ÔòSVSÊäÈë¾¹ýÄÚ²¿µç×è·Öѹ¡£ */
|
#define SVD_CR_SVSEN_Msk (0x1U << SVD_CR_SVSEN_Pos)
|
/* SVSͨµÀ¹Ø±Õ */
|
/* SVSͨµÀʹÄÜ */
|
|
#define SVD_CR_SVDEN_Pos 0
|
#define SVD_CR_SVDEN_Msk (0x1U << SVD_CR_SVDEN_Pos)
|
|
#define SVD_IER_PFIE_Pos 1 /* µçÔ´µøÂäÖжÏʹÄܼĴæÆ÷£¬1ÓÐЧ (Power Fall interrupt enable) */
|
#define SVD_IER_PFIE_Msk (0x1U << SVD_IER_PFIE_Pos)
|
|
#define SVD_IER_PRIE_Pos 0 /* µçÔ´»Ö¸´ÖжÏʹÄܼĴæÆ÷£¬1ÓÐЧ (Power Rise interrupt enable) */
|
#define SVD_IER_PRIE_Msk (0x1U << SVD_IER_PRIE_Pos)
|
|
#define SVD_ISR_SVDO_Pos 8 /* SVDµçÔ´¼ì²âÊä³ö (SVD output)
|
1£ºµçÔ´µçѹ¸ßÓÚSVDµ±Ç°ãÐÖµ
|
0£ºµçÔ´µçѹµÍÓÚSVDµ±Ç°ãÐÖµ */
|
#define SVD_ISR_SVDO_Msk (0x1U << SVD_ISR_SVDO_Pos)
|
|
#define SVD_ISR_SVDR_Pos 7 /* SVDÊä³öËø´æÐźţ¬Êý×ÖµçÂ·Ëø´æµÄSVD״̬
|
(SVD registered output) */
|
#define SVD_ISR_SVDR_Msk (0x1U << SVD_ISR_SVDR_Pos)
|
|
#define SVD_ISR_PFF_Pos 1 /* µçÔ´µøÂäÖжϱêÖ¾¼Ä´æÆ÷£¬µçÔ´µçѹµøÂäµ½SVDãÐÖµÖ®ÏÂʱÖÃ룬Èí¼þд1ÇåÁã (Power fall flag) */
|
#define SVD_ISR_PFF_Msk (0x1U << SVD_ISR_PFF_Pos)
|
|
#define SVD_ISR_PRF_Pos 0 /* µçÔ´»Ö¸´ÖжϱêÖ¾¼Ä´æÆ÷£¬µçÔ´µçѹÉÏÉýµ½SVDãÐÖµÖ®ÉÏʱÖÃ룬Èí¼þд1ÇåÁã (Power rise flag) */
|
#define SVD_ISR_PRF_Msk (0x1U << SVD_ISR_PRF_Pos)
|
|
#define SVD_VSR_V1P0EN_Pos 2 /* 1.0V»ù×¼ÊäÈëʹÄÜÐźŠ(1.0V reference enable)
|
1£ºÊ¹ÄÜ1.0V»ù×¼ÊäÈë
|
0£º¹Ø±Õ1.0V»ù×¼ÊäÈë */
|
#define SVD_VSR_V1P0EN_Msk (0x1U << SVD_VSR_V1P0EN_Pos)
|
|
#define SVD_VSR_V0P95EN_Pos 1 /* 0.95V»ù×¼ÊäÈëʹÄÜÐźŠ(0.95V reference enable)
|
1£ºÊ¹ÄÜ0.95V»ù×¼ÊäÈë
|
0£º¹Ø±Õ0.95V»ù×¼ÊäÈë */
|
#define SVD_VSR_V0P95EN_Msk (0x1U << SVD_VSR_V0P95EN_Pos)
|
|
#define SVD_VSR_V0P9EN_Pos 0 /* 0.9V»ù×¼ÊäÈëʹÄÜÐźŠ(0.9V reference enable)
|
1£ºÊ¹ÄÜ0.9V»ù×¼ÊäÈë
|
0£º¹Ø±Õ0.9V»ù×¼ÊäÈë */
|
#define SVD_VSR_V0P9EN_Msk (0x1U << SVD_VSR_V0P9EN_Pos)
|
//Macro_End
|
|
/* Exported functions --------------------------------------------------------*/
|
extern void SVD_Deinit(void);
|
|
/* SVD±¨¾¯ãÐÖµµµÎ»ÉèÖ㬲μû11.3.3¼ì²âãÐÖµ
|
(SVD threshold level) Ïà¹Øº¯Êý */
|
extern void SVD_CFGR_LVL_Set(uint32_t SetValue);
|
extern uint32_t SVD_CFGR_LVL_Get(void);
|
|
/* Êý×ÖÂ˲¨Ê¹ÄÜ£¨MOD=1ʱ±ØÐëÖÃ1£©
|
(Digital Filter Enable)
|
1£ºÆô¶¯SVDÊä³öµÄÊý×ÖÂ˲¨
|
0£º¹Ø±ÕSVDÊä³öµÄÊý×ÖÂ˲¨ Ïà¹Øº¯Êý */
|
extern void SVD_CFGR_DFEN_Setable(FunState NewState);
|
extern FunState SVD_CFGR_DFEN_Getable(void);
|
|
/* SVD¹¤×÷ģʽѡÔñ£¬ÅäÖÃģʽºó»¹ÒªÖÃλSVD_CR.EN²Å»áÆô¶¯SVD
|
(SVD Mode)
|
1£º¼äЪʹÄÜģʽ
|
0£º³£Ê¹ÄÜģʽ
|
×¢Ò⣺¼äЪʹÄÜģʽϱØÐ뿪ÆôÊý×ÖÂ˲¨ Ïà¹Øº¯Êý */
|
extern void SVD_CFGR_MOD_Set(uint32_t SetValue);
|
extern uint32_t SVD_CFGR_MOD_Get(void);
|
|
/* SVD¼äЪʹÄܼä¸ô (SVD interval enable period)
|
00£º62.5ms
|
01£º256ms
|
10£º1s
|
11£º4s Ïà¹Øº¯Êý */
|
extern void SVD_CFGR_ITVL_Set(uint32_t SetValue);
|
extern uint32_t SVD_CFGR_ITVL_Get(void);
|
|
/* SVSÍⲿµçÔ´¼ì²âͨµÀ¿ØÖÆÐźÅ
|
(SVS external monitor channel enable)
|
0£ºSVSͨµÀ¹Ø±Õ
|
1£ºSVSͨµÀʹÄÜ
|
µ±EN=1ʱ£¬¸ù¾ÝSVDLVL¼Ä´æÆ÷¿ÉÒÔÉèÖÃSVSÊäÈëºóÊÇ·ñ¾¹ýÄÚ²¿µç×è·Öѹ£»Èç¹ûLVL=1111£¬ÔòSVSÊäÈë²»×ö·Öѹ£¬Èç¹ûLVL != 1111£¬ÔòSVSÊäÈë¾¹ýÄÚ²¿µç×è·Öѹ¡£ Ïà¹Øº¯Êý */
|
extern void SVD_CR_SVSEN_Setable(FunState NewState);
|
extern FunState SVD_CR_SVSEN_Getable(void);
|
extern void SVD_CR_SVDEN_Setable(FunState NewState);
|
extern FunState SVD_CR_SVDEN_Getable(void);
|
|
/* µçÔ´µøÂäÖжÏʹÄܼĴæÆ÷£¬1ÓÐЧ (Power Fall interrupt enable) Ïà¹Øº¯Êý */
|
extern void SVD_IER_PFIE_Setable(FunState NewState);
|
extern FunState SVD_IER_PFIE_Getable(void);
|
|
/* µçÔ´»Ö¸´ÖжÏʹÄܼĴæÆ÷£¬1ÓÐЧ (Power Rise interrupt enable) Ïà¹Øº¯Êý */
|
extern void SVD_IER_PRIE_Setable(FunState NewState);
|
extern FunState SVD_IER_PRIE_Getable(void);
|
|
/* SVDµçÔ´¼ì²âÊä³ö (SVD output)
|
1£ºµçÔ´µçѹ¸ßÓÚSVDµ±Ç°ãÐÖµ
|
0£ºµçÔ´µçѹµÍÓÚSVDµ±Ç°ãÐÖµ Ïà¹Øº¯Êý */
|
extern FlagStatus SVD_ISR_SVDO_Chk(void);
|
|
/* SVDÊä³öËø´æÐźţ¬Êý×ÖµçÂ·Ëø´æµÄSVD״̬
|
(SVD registered output) Ïà¹Øº¯Êý */
|
extern FlagStatus SVD_ISR_SVDR_Chk(void);
|
|
/* µçÔ´µøÂäÖжϱêÖ¾¼Ä´æÆ÷£¬µçÔ´µçѹµøÂäµ½SVDãÐÖµÖ®ÏÂʱÖÃ룬Èí¼þд1ÇåÁã (Power fall flag) Ïà¹Øº¯Êý */
|
extern void SVD_ISR_PFF_Clr(void);
|
extern FlagStatus SVD_ISR_PFF_Chk(void);
|
|
/* µçÔ´»Ö¸´ÖжϱêÖ¾¼Ä´æÆ÷£¬µçÔ´µçѹÉÏÉýµ½SVDãÐÖµÖ®ÉÏʱÖÃ룬Èí¼þд1ÇåÁã (Power rise flag) Ïà¹Øº¯Êý */
|
extern void SVD_ISR_PRF_Clr(void);
|
extern FlagStatus SVD_ISR_PRF_Chk(void);
|
|
/* 1.0V»ù×¼ÊäÈëʹÄÜÐźŠ(1.0V reference enable)
|
1£ºÊ¹ÄÜ1.0V»ù×¼ÊäÈë
|
0£º¹Ø±Õ1.0V»ù×¼ÊäÈë Ïà¹Øº¯Êý */
|
extern void SVD_VSR_V1P0EN_Setable(FunState NewState);
|
extern FunState SVD_VSR_V1P0EN_Getable(void);
|
|
/* 0.95V»ù×¼ÊäÈëʹÄÜÐźŠ(0.95V reference enable)
|
1£ºÊ¹ÄÜ0.95V»ù×¼ÊäÈë
|
0£º¹Ø±Õ0.95V»ù×¼ÊäÈë Ïà¹Øº¯Êý */
|
extern void SVD_VSR_V0P95EN_Setable(FunState NewState);
|
extern FunState SVD_VSR_V0P95EN_Getable(void);
|
|
/* 0.9V»ù×¼ÊäÈëʹÄÜÐźŠ(0.9V reference enable)
|
1£ºÊ¹ÄÜ0.9V»ù×¼ÊäÈë
|
0£º¹Ø±Õ0.9V»ù×¼ÊäÈë Ïà¹Øº¯Êý */
|
extern void SVD_VSR_V0P9EN_Setable(FunState NewState);
|
extern FunState SVD_VSR_V0P9EN_Getable(void);
|
|
extern void SVD_Init(SVD_InitTypeDef* para);
|
//Announce_End
|
#ifdef __cplusplus
|
}
|
#endif
|
|
#endif /* __FM33A0XXEV_SVD_H */
|