📄 pll_b.h
字号:
PLL_B_ClockMode_t ClockMode; /* PLL Clock mode */
PLL_B_PLLMode_t PLLMode; /* PLL mode select */
PLL_B_ClockSource_t ClockSource; /* External Clock src */
PLL_B_StickyLockBit_t StickyLockBit; /* Lock Sticky Bit */
PLL_B_LockStatus_t LockStatusBit; /* Lock status bit */
PLL_B_StickyClockBit_t StickyClockBit; /* Clock Sticky Bit */
} PLL_B_Status_t, *pPLL_B_Status_t;
/***** PLL_B_StatusAlert Structure Definition *****/
typedef struct
{
PLL_B_Mode_t InvalidPLLMode;/* Invalid mode to change */
/* frequency */
PLL_B_LockStatus_t PhaseLockFailure; /* Failure to obtain */
/* a phase lock */
} PLL_B_StatusAlert_t, *pPLL_B_StatusAlert_t;
/**********************************************************************/
/* Register Bits & Masks */
/**********************************************************************/
/***** Synthesizer Control Register *****/
#define SYNCR_STPMD_MAX 0x3
#define SYNCR_STPMD_BITNO 2
#define SYNCR_STPMD_MASK (SYNCR_STPMD_MAX << SYNCR_STPMD_BITNO)
#define SYNCR_FWKUP_BITNO 5
#define SYNCR_FWKUP_MASK (1 << SYNCR_FWKUP_BITNO)
#define SYNCR_DISCLK_BITNO 6
#define SYNCR_DISCLK_MASK (1 << SYNCR_DISCLK_BITNO)
#define SYNCR_LOCEN_BITNO 7
#define SYNCR_LOCEN_MASK (1 << SYNCR_LOCEN_BITNO)
#define SYNCR_RFD_MAX 0x7
#define SYNCR_RFD_RESET 0x1
#define SYNCR_RFD_BITNO 8
#define SYNCR_RFD_MASK (SYNCR_RFD_MAX << SYNCR_RFD_BITNO)
#define SYNCR_MFD_RFD_CLEAR 0x88ff
#define SYNCR_LOCRE_BITNO 11
#define SYNCR_LOCRE_MASK (1 << SYNCR_LOCRE_BITNO)
#define SYNCR_MFD_MAX 0x7
#define SYNCR_MFD_MIN 0x0
#define SYNCR_MFD_RESET 0x2
#define SYNCR_MFD_BITNO 12
#define SYNCR_MFD_MASK (SYNCR_MFD_MAX << SYNCR_MFD_BITNO)
#define SYNCR_LOLRE_BITNO 15
#define SYNCR_LOLRE_MASK (1 << SYNCR_LOLRE_BITNO)
#define SYNCR_RFD_RESET_MASK (SYNCR_RFD_RESET << SYNCR_RFD_BITNO)
#define SYNCR_MFD_RESET_MASK (SYNCR_MFD_RESET << SYNCR_MFD_BITNO)
#define SYNCR_RESET_MASK (SYNCR_RFD_RESET_MASK + SYNCR_MFD_RESET_MASK)
/***** Synthesizer Status Register *****/
#define SYNSR_LOCS_BITNO 10
#define SYNSR_LOCS_MASK (1 << SYNSR_LOCS_BITNO)
#define SYNSR_LOCK_BITNO 11
#define SYNSR_LOCK_MASK (1 << SYNSR_LOCK_BITNO)
#define SYNSR_LOCKS_BITNO 12
#define SYNSR_LOCKS_MASK (1 << SYNSR_LOCKS_BITNO)
#define SYNSR_PLLREF_BITNO 13
#define SYNSR_PLLREF_MASK (1 << SYNSR_PLLREF_BITNO)
#define SYNSR_PLLSEL_BITNO 14
#define SYNSR_PLLSEL_MASK (1 << SYNSR_PLLSEL_BITNO)
#define SYNSR_MODE_BITNO 15
#define SYNSR_MODE_MASK (1 << SYNSR_MODE_BITNO)
/**********************************************************************/
/* Prototypes */
/**********************************************************************/
/***** .1 Function Prototype - PLL_B_Init *****/
PLL_B_ReturnCode_t PLL_B_Init_f
(
pPLL_B_t,
PLL_B_ResetOnLockFailureControl_t,
PLL_B_VCOMultiplyFactorDivider_t,
PLL_B_ResetOnClockFailureControl_t,
PLL_B_VCOReducedFrequencyDivider_t,
PLL_B_MonitorClockFailure_t,
PLL_B_DisableClockout_t,
PLL_B_FastWakeupControl_t,
PLL_B_StopModeControl_t,
pPLL_B_StatusAlert_t,
PLL_B_ReturnCode_t (*PollFuncAddr)()
);
/***** Function Prototype - PLL_B_GetResetStatus *****/
PLL_B_ReturnCode_t PLL_B_GetResetStatus_f
(
pPLL_B_t,
pPLL_B_Status_t
);
/***** Function Prototype - PLL_B_Reset *****/
PLL_B_ReturnCode_t PLL_B_Reset_f
(
pPLL_B_t
);
/***** Function Prototype - PLL_B_GetRuntimeStatus *****/
PLL_B_ReturnCode_t PLL_B_GetRuntimeStatus_f
(
pPLL_B_t,
pPLL_B_Status_t
);
/***** Function Prototype - PLL_B_ControlVCOFreq *****/
PLL_B_ReturnCode_t PLL_B_ControVCOFrequency_f
(
pPLL_B_t,
PLL_B_VCOMultiplyFactorDivider_t,
PLL_B_VCOReducedFrequencyDivider_t,
pPLL_B_StatusAlert_t,
PLL_B_ReturnCode_t (*PollFuncAddr)()
);
/***** Function Prototype - PLL_B_ControlClockFailureResponse *****/
PLL_B_ReturnCode_t PLL_B_ControlClockFailureResponse_f
(
pPLL_B_t,
volatile PLL_B_ResetOnLockFailureControl_t,
volatile PLL_B_ResetOnClockFailureControl_t,
volatile PLL_B_MonitorClockFailure_t
);
/***** Function Prototype - PLL_B_ControlStopMode *****/
PLL_B_ReturnCode_t PLL_B_ControlStopMode_f
(
pPLL_B_t,
volatile PLL_B_FastWakeupControl_t,
volatile PLL_B_StopModeControl_t
);
/***** Function Prototype - PLL_B_ControlVCOOutput *****/
PLL_B_ReturnCode_t PLL_B_ControlVCOOutput_f
(
pPLL_B_t,
volatile PLL_B_DisableClockout_t
);
/***** Function Prototype - PLL_B_GetRegister *****/
PLL_B_ReturnCode_t PLL_B_GetRegister_f
(
pPLL_B_t,
PLL_B_Register_t,
UINT16 *
);
/***** Function Prototype - PLL_B_SetRegister *****/
PLL_B_ReturnCode_t PLL_B_SetRegister_f
(
pPLL_B_t,
UINT16
);
PLL_B_ReturnCode_t PLL_B_WaitForPhaseLock_f
(
void
);
/**********************************************************************/
/* Macro: PLL_B_Init */
/* */
/* Purpose: Call PLL_B_Init_f function with optional */
/* parameter checking. */
/* */
/* Input: */
/* PLLPtr : PLL_B base address for this driver. */
/* Register : Select amount the PLL registers */
/* GetRegisterPtr : Result address for selected PLL register value */
/* */
/* Output: */
/* PLL_B_ERR_NONE :No error */
/* PLL_B_ERR_INVALID_HANDLE :PLL base address is zero. */
/* PLL_B_ERR_INVALID_LOSS_LOCK_RESET :Invalid Reset on loss lock */
/* PLL_B_ERR_INVALID_FREQUENCY_MULTIPLIER :Invalid Freq multiplier */
/* PLL_B_ERR_INVALID_LOSS_CLOCK_RESET :Invalid Reset on loss clock */
/* PLL_B_ERR_INVALID_FREQUENCY_DIVIDER :Invalid Frequency divider */
/* PLL_B_ERR_INVALID_MONITOR_CLOCK :Invalid monitor loss clock */
/* PLL_B_ERR_INVALID_DISABLE_CLOCKOUT :Invalid Disable clockout */
/* PLL_B_ERR_INVALID_FAST_WAKEUP :Invalid Fast wakeup */
/* PLL_B_ERR_INVALID_STOP_MODE :Invalid Stop mode selection */
/* PLL_B_ERR_INVALID_STATUS_ALERT_ADDR :Status warnings */
/**********************************************************************/
#define PLL_B_Init( \
PLLPtr, \
ResetOnLockFailureValue, \
VCOMultiplicationFactorDivider, \
ResetOnClockFailureValue, \
VCOReducedFrequencyDivider, \
MonitorClockFailureValue, \
DisableClockoutValue, \
FastWakeupValue, \
StopModeValue, \
StatusAlertPtr, \
PollFuncAddr \
) \
( \
(PLL_B_PARAM_CHECKING) ? \
( \
((PLLPtr) == NULL) ? \
PLL_B_ERR_INVALID_HANDLE : \
\
((StatusAlertPtr) == NULL) ? \
PLL_B_ERR_INVALID_STATUS_ALERT_ADDR : \
\
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -