?? zl5011xpac.h
字號:
/*******************************************************************************
*
* File name: zl5011xPac.h
*
* Version: 27
*
* Author: MRC
*
* Date created: 27/03/2002
*
* Copyright 2002, 2003, 2004, 2005, Zarlink Semiconductor Limited.
* All rights reserved.
*
* Module Description:
*
* This is the header file for the PAC block. It contains the function prototypes
* and any definitions.
*
* Revision History:
*
* Rev: Date: Author: Comments:
* 1 27/03/2002 MRC Creation
* 2 28/03/2002 MRC Added async functions
* 3 03/04/2002 MRC Added more async functions
* 4 17/04/2002 MRC Changed Authur to Author in the header
* 5 22/04/2002 MRC Changed streamNum to 8 bit from 32 bit in a
* few places.
* 6 23/05/2002 MRC Async reference had changed in the PAC
* 7 28/05/2002 MRC Number of frames setting is no longer used for
* RTP timestamp
* 8 17/06/2002 LCW Update
* 9 19/06/2002 MRC PAC block changed
* 10 16/09/2002 MRC Added in fns for setting inverse DCO value
* 11 19/09/2002 MRC Added extra dpll control fns
* 12 11/10/2002 MRC Redefined fn prototype zl5011xPacSetAsyncRefFreq
* 13 24/10/2002 PJE API tidy up
* 14 31/10/2002 MRC Added variants + minor fixes
* 15 11/11/2002 MRC Added zl5011xPacDpllRefEnableLimits, to enable
* the DPLL engine when the limits have been set.
* 16 18/11/2002 PJE additions for CET
* 17 28/01/2003 MRC Added functions for CET data collection
* 18 06/02/2003 MRC Modified async DCO functions
* 19 14/02/2003 MRC Tidied up old prototype
* 20 24/03/2003 MRC Parameter for zl5011xPacDpllSetLockDetectThreshold
* changed to 32 bits
* 21 07/05/2003 MRC Changed args to checkRef fn
* 22 22/05/2003 NJF Add TAD interrupt bit
* 23 27/05/2003 MRC Tidied up PAC changes and added jitter fn
* 24 20/10/2004 MRC Added PRS variable to async configure function
* 25 16/11/2004 MRC Added individual stream frequency control
* 26 16/12/2004 MRC Added clock reference mux functions
* 27 21/07/2005 MRC Added PLL status bits - moved from Map.h file
*
*******************************************************************************/
#ifndef _ZL5011X_PAC_H
#define _ZL5011X_PAC_H
#ifdef __cplusplus
extern "C" {
#endif
/***************** # DEFINES **********************************************/
/* defines for the PAC interrupt bit positions */
#define ZL5011X_PAC_TAD_INT 17
#define ZL5011X_PAC_ASYNC_INT 16
#define ZL5011X_DPLL_LOCK_INT 3
#define ZL5011X_DPLL_REF_CHANGE_INT 2
#define ZL5011X_DPLL_HOLDOVER_INT 1
#define ZL5011X_DPLL_SLEW_RATE_INT 0
#define ZL5011X_PAC_ENABLE_ALL_INTRS (ZL5011X_4BIT_MASK<<ZL5011X_DPLL_SLEW_RATE_INT)|\
(ZL5011X_1BIT_MASK<<ZL5011X_PAC_ASYNC_INT)|\
(ZL5011X_1BIT_MASK<<ZL5011X_PAC_TAD_INT)
/* defines for the PLL status bit positions */
#define ZL5011X_DPLL_STATUS_LOCK_BIT 3
#define ZL5011X_DPLL_STATUS_REF_BIT 2
#define ZL5011X_DPLL_STATUS_MODE_BITS 0
#define ZL5011X_DPLL_STATUS_MODE_MASK (Uint32T)0x3
/***************** DATA TYPES *********************************************/
typedef struct
{
zl5011xDpllOperationE dpllMode;
zl5011xBooleanE primaryRefInUse;
zl5011xBooleanE locked;
} zl5011xDpllStatusS;
/***************** FUNCTION DECLARATIONS *************************/
zlStatusE zl5011xPacInit(zl5011xParamsS *zl5011xParams);
zlStatusE zl5011xPacSetJitterReductionMode(zl5011xParamsS *zl5011xParams, zl5011xBooleanE enable,
Uint8T avgMode);
zlStatusE zl5011xPacConfigureSync(zl5011xParamsS *zl5011xParams,
zl5011xDpllConnectionE config, zl5011xBooleanE masterOutputEnable,
zl5011xRefClkConfigS primaryRefConfig, zl5011xRefClkConfigS secondaryRefConfig,
zl5011xDpllRefPriorityE priority);
zlStatusE zl5011xPacDpllOutputEnable(zl5011xParamsS *zl5011xParams,
zl5011xBooleanE enable);
zlStatusE zl5011xPacDpllInitialise(zl5011xParamsS *zl5011xParams,
zl5011xDpllRefInputFreqE refFreq);
zlStatusE zl5011xPacDpllDisable(zl5011xParamsS *zl5011xParams);
zlStatusE zl5011xPacDpllSetCentreFreq(zl5011xParamsS *zl5011xParams);
zlStatusE zl5011xPacDpllSetCentreInverseFreq(zl5011xParamsS *zl5011xParams);
zlStatusE zl5011xPacDpllSetJ2InverseFreq(zl5011xParamsS *zl5011xParams);
zlStatusE zl5011xPacDpllSetT1InverseFreq(zl5011xParamsS *zl5011xParams);
zlStatusE zl5011xPacDpllSetLockRange(zl5011xParamsS *zl5011xParams, Uint32T maxOffsetPpm);
zlStatusE zl5011xPacDpllSetSlewRate(zl5011xParamsS *zl5011xParams, Uint32T slewRate,
Uint8T dpllBandwidth);
zlStatusE zl5011xPacDpllSetLockDetectThreshold(zl5011xParamsS *zl5011xParams,
Uint16T detectThreshold, Uint32T detectTimeUs);
zlStatusE zl5011xPacDpllRefSetSingleLimit(zl5011xParamsS *zl5011xParams,
zl5011xBooleanE secondaryRef, Uint16T highLimit, Uint16T lowLimit);
zlStatusE zl5011xPacDpllRefSetHighLimit(zl5011xParamsS *zl5011xParams,
zl5011xBooleanE secondaryRef, Uint32T highLimit);
zlStatusE zl5011xPacDpllRefSetLowLimit(zl5011xParamsS *zl5011xParams,
zl5011xBooleanE secondaryRef, Uint32T lowLimit);
zlStatusE zl5011xPacDpllRefSetCycleCount(zl5011xParamsS *zl5011xParams,
zl5011xBooleanE secondaryRef, Uint16T cycleCount);
zlStatusE zl5011xPacDpllRefSetLimits(zl5011xParamsS *zl5011xParams,
zl5011xBooleanE secondaryRef, Uint16T cycleCount,
Uint16T singlePercentTolerance_x_10, Uint16T multiPercentTolerance_x_10);
zlStatusE zl5011xPacDpllRefEnableLimits(zl5011xParamsS *zl5011xParams,
zl5011xBooleanE secondaryRef);
zlStatusE zl5011xPacDpllSetClockMode(zl5011xParamsS *zl5011xParams,
zl5011xDpllOperationE mode);
zlStatusE zl5011xPacDpllSetMtieMode(zl5011xParamsS *zl5011xParams, zl5011xBooleanE mtie);
zlStatusE zl5011xPacDpllGetStatus(zl5011xParamsS *zl5011xParams, zl5011xDpllStatusS *dpllStatus);
zlStatusE zl5011xPacDpllGetStatusValue(zl5011xParamsS *zl5011xParams, Uint32T *dpllStatus);
zlStatusE zl5011xPacDpllSetRef(zl5011xParamsS *zl5011xParams, AddressT registerAddress,
zl5011xRefClkConfigS ref);
zlStatusE zl5011xPacDpllSetPrimaryRef(zl5011xParamsS *zl5011xParams,
zl5011xRefClkConfigS ref);
zlStatusE zl5011xPacDpllSetSecondaryRef(zl5011xParamsS *zl5011xParams,
zl5011xRefClkConfigS ref);
zlStatusE zl5011xPacDpllSetRefPriority(zl5011xParamsS *zl5011xParams,
zl5011xDpllRefPriorityE priority);
zlStatusE zl5011xPacConfigSecondaryRef(zl5011xParamsS *zl5011xParams, zl5011xRefClkConfigS ref, Uint32T divider);
zlStatusE zl5011xPacConfigPrimaryRef(zl5011xParamsS *zl5011xParams, zl5011xRefClkConfigS ref, Uint32T divider);
zlStatusE zl5011xPacCheckRef(zl5011xParamsS *zl5011xParams,
zl5011xRefClkConfigS *ref, Uint32T *refFreqHz);
zlStatusE zl5011xPacCheckDpllRef(zl5011xParamsS *zl5011xParams,
zl5011xDpllRefInputFreqE refFreq, Uint32T *refFreqHz);
zlStatusE zl5011xPacSetAsyncIntFreq(zl5011xParamsS *zl5011xParams,
zl5011xWanAsyncIntFreqE freq);
zlStatusE zl5011xPacSetAsyncRef(zl5011xParamsS *zl5011xParams,
zl5011xRefClkConfigS ref);
zlStatusE zl5011xPacSetAsyncRefFreq(zl5011xParamsS *zl5011xParams,
Uint32T refFreqHz, zl5011xBooleanE forceStdFreq);
zlStatusE zl5011xPacSetAsyncRefToRtpDivider(zl5011xParamsS *zl5011xParams,
Uint32T refFreqHz);
zlStatusE zl5011xPacEnableInterrupts(zl5011xParamsS *zl5011xParams, Uint32T bits);
zlStatusE zl5011xPacDisableInterrupts(zl5011xParamsS *zl5011xParams, Uint32T bits);
zlStatusE zl5011xPacClearInterrupts(zl5011xParamsS *zl5011xParams, Uint32T bits);
zlStatusE zl5011xPacGetStatus(zl5011xParamsS *zl5011xParams, Uint32T *statusBits);
zlStatusE zl5011xPacGetWanRxBitCount(zl5011xParamsS *zl5011xParams, Uint8T streamNum,
Uint64S *cnt);
zlStatusE zl5011xPacSetRtpTimestampIncrement(zl5011xParamsS *zl5011xParams, Uint8T streamNum,
zl5011xWanRtpIncrementTypeE incrementType);
zlStatusE zl5011xPacGetRtpTimestamp(zl5011xParamsS *zl5011xParams, Uint8T streamNum,
Uint32T *timestamp);
zlStatusE zl5011xPacSetDcoOffset(zl5011xParamsS *zl5011xParams, Uint8T streamNum,
Sint32T ppmOffset_x_1000);
zlStatusE zl5011xPacDisableDco(zl5011xParamsS *zl5011xParams, Uint8T streamNum);
zlStatusE zl5011xPacDcoSetInverseFreq(zl5011xParamsS *zl5011xParams, Uint8T streamNum);
zlStatusE zl5011xPacSetAsyncMode(zl5011xParamsS *zl5011xParams);
zlStatusE zl5011xPacCalculateDcoValues(zl5011xParamsS *zl5011xParams);
zlStatusE zl5011xPacCalculateStreamValues(zl5011xParamsS *zl5011xParams, Uint8T streamNum, Uint32T freqHz);
zlStatusE zl5011xPacDcoInit(zl5011xParamsS *zl5011xParams);
zlStatusE zl5011xPacConfigureAsync(zl5011xParamsS *zl5011xParams,
zl5011xWanAsyncIntFreqE asyncIntFreq, zl5011xRefClkConfigS ref,
zl5011xBooleanE forceStdFreq);
zlStatusE zl5011xPacConfigurePacket(zl5011xParamsS *zl5011xParams, Uint8T streamNum,
zl5011xWanTxTimestampSizeE timestampSize, zl5011xWanTxQueueOperationE sequenceSize,
zl5011xBooleanE ignoreLatePackets, Uint8T averageMode);
zlStatusE zl5011xPacConfigureAsyncStream(zl5011xParamsS *zl5011xParams, Uint8T streamNum,
zl5011xWanAsyncDataCollectionE clockDataMode);
zlStatusE zl5011xPacSetTxClockMode(zl5011xParamsS *zl5011xParams, Uint8T streamNum,
zl5011xWanAsyncClockTxModeE clockMode);
zlStatusE zl5011xPacGetInterruptStatus(zl5011xParamsS *zl5011xParams,
Uint32T *interruptStatusBits);
zlStatusE zl5011xPacGetDifferentialStats(zl5011xParamsS *zl5011xParams,
Uint32T streamNum, zl5011xPacDiffStatsS *zl5011xPacDiffStats);
zlStatusE zl5011xPacGetTxDifferentialCount(zl5011xParamsS *zl5011xParams,
Uint32T streamNumber, Uint32T *wanTxDiffCount,
Uint32T *sequenceNumber);
zlStatusE zl5011xPacGetRxDifferentialCount(zl5011xParamsS *zl5011xParams,
Uint32T streamNumber, Uint32T *wanTxDiffCount,
Uint32T *sequenceNumber);
zlStatusE zl5011xPacGetInBandDifferentialCount(zl5011xParamsS *zl5011xParams,
Uint32T streamNumber, Uint16T *prsCount, Uint16T *seqNum);
zlStatusE zl5011xPacGetTransitTimeCount(zl5011xParamsS *zl5011xParams,
Uint32T streamNumber, Sint32T *transitTime);
zlStatusE zl5011xPacGetInterarrivalJitter(zl5011xParamsS *zl5011xParams,
Uint32T stream, Uint32T *jitter);
#ifdef __cplusplus
}
#endif
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -