📄 tmbsl10086local.h
字号:
#define TDA10086_WPLL1_ON_DEF 0x44
#define TDA10086_WPLL2_ON_DEF 0x00
#define TDA10086_WPLL1_OFF_DEF 0xC4
#define TDA10086_WPLL2_OFF_DEF 0x08
#define TDA10086_ADC_C1_DEF 0x20
#define TDA10086_ADC_C1_OM57XX_DEF 0x20 //VL 29/04/04
#define TDA10086_ADC_C1_OM5761_DEF 0x60 //VL 29/04/04
#define TDA10086_AGCN_HIGHSR_DEF 0x63
#define TDA10086_AGCN_LOWSR_DEF 0x43
#define TDA10086_GTR2_HIGHSR_DEF 0x4F
#define TDA10086_GTR2_LOWSR_DEF 0x43
//----------------
// DEFINE MASKS
//----------------
#define TDA10086_CLEAR_STDBY_MSK 0x08
#define TDA10086_AGCRN_NYQG_MSK 0xC0
#define TDA10086_RATE_R_O_MSK 0x70
#define TDA10086_CPT_UNCOR_CPTU_MSK 0x7F
#define TDA10086_CPT_UNCOR_CLBUNC_MSK 0x80
#define TDA10086_CARINIT_CLBCAR_MSK 0x80
#define TDA10086_CLEAR_CLB_MSK 0x01
#define TDA10086_CLEAR_IICTRL_MSK 0x10
#define TDA10086_ADCONF_BYP_MSK 0x08
#define TDA10086_CONF_SPECINV_MSK 0xC0
#define TDA10086_RATE_RAUTO_MSK 0x0F
#define TDA10086_FCONF_DFN_MSK 0x07
#define TDA10086_MODE_PVBER_MSK 0x30
#define TDA10086_BIT7_MSK 0x80
#define TDA10086_STATUS_SIA_MSK 0x02
#define TDA10086_CONF_PFEL_MSK 0x02
#define TDA10086_SYNC_RXSIG_MSK 0x01
#define TDA10086_SYNC_CARLOC_MSK 0x02
#define TDA10086_SYNC_FSYNC_MSK 0x08
#define TDA10086_SYNC_FEL_MSK 0x10
#define TDA10086_SYNC_BER_MSK 0x60
#define TDA10086_STATUS_NODVB_MSK 0x08
#define TDA10086_RHYC_DYN_MSK 0x40
#define TDA10086_ADCONF_CTRL4_MSK 0x40
#define TDA10086_PWMSAGCR_MSK 0x3F
#define TDA10086_AGCRA_PWMOD_MSK 0x80
#define TDA10086_AGCRA_GSEL_MSK 0x40
#define TDA10086_AGCRA_AGCRA_MSK 0x1F
#define TDA10086_GAUTO_GNYQA_MSK 0x30
#define TDA10086_GAUTO_GFARA_MSK 0x0F
#define TDA10086_FTUNMSB_POSMUL_MSK 0x80
#define TDA10086_TEST_LNBONOFF_MSK 0x20
#define TDA10086_TEST_LNBOFF_MSK 0x00
#define TDA10086_TEST_VOLT_MSK 0x30
#define TDA10086_TEST_13V_MSK 0x20
#define TDA10086_TEST_18V_MSK 0x30
#define TDA10086_DISEQC_SEL22K_MSK 0x01
#define TDA10086_DISEQC_SELBUR_MSK 0x02
#define TDA10086_DISEQC_SENDBUR_MSK 0x04
#define TDA10086_DISEQC_SENDM_MSK 0x08
#define TDA10086_DISEQC_OCTNB_MSK 0x70
#define TDA10086_DISEQC_MODE22K_MSK 0x80
#define TDA10086_PLLP2_P_FACTOR_MSK 0xF8
#define TDA10086_SA_DIV_MSK 0xF0
//---------------
// DEFINE BITS
//---------------
#define TDA10086_POLA_POINT_BIT 0x08
#define TDA10086_POLA_POCLK_BIT 0x01
#define TDA10086_TSINT_SERINT_BIT 0x01
#define TDA10086_TSINT_PARMOD_BIT 0x02
#define TDA10086_TSINT_MSBFIRST_BIT 0x40
#define TDA10086_MODE_STD_BIT 0x01
#define TDA10086_MODE_PSK_BIT 0x02
#define TDA10086_MODE_PARC_SERB_BIT 0x04
#define TDA10086_MODE_SERB_BIT 0x08
#define TDA10086_PWMS_BIT 0x20
#define TDA10086_RATE_RAUTO_BIT 0x08
#define TDA10086_PLLP4_PDPLL_BIT 0x20
#define TDA10086_PLLP4_BYPPLL_BIT 0x10
//-----------------------------------------------------------------------------
// Structure:
//-----------------------------------------------------------------------------
//
typedef enum _tm10086cfgIndex_t
{
BOARD = 0,
DSSDVB,
XTALL,
PLLMFACTOR,
PLLPFACTOR,
BERDEPTH,
SEARCHRANGE,
POLAAGC,
IQSWAPPED,
OUT1MODEABC,
OUT1PARASER,
OUT1POCLK,
OUT1MSBFIRST,
OUT1PARBDIV,
OUT2MODEAB,
OUT2POCLK,
OUT2MSBFIRST,
ZIFTUNER,
SRMAX,
SRMIN,
SRMAXMARGIN,
SRMINMARGIN,
DELTATHRESHOLD,
FEINIT = 100,
SWITCH,
IDENTITY,
READSYNC,
READIQ,
READAGCAD,
RSSI = 138,
GETNBOFUNIT = 200
} tm10086cfgIndex_t;
typedef struct _tm10086config_t
{
UInt32 uBoard;
UInt8 bDSS_DVB;
UInt32 uXtall;
UInt8 bPLL_M_Factor;
UInt8 bPLL_P_Factor;
UInt8 bBerDepth;
UInt8 bSearchRange;
UInt8 bPolaAGC;
UInt8 bIQ_Swapped;
UInt8 bOUT1_ModeABC;
UInt8 bOUT1_ParaSer;
UInt8 bOUT1_POClk;
UInt8 bOUT1_MSBFirst;
UInt8 bOUT1_ParBDiv;
UInt8 bOUT2_ModeAB;
UInt8 bOUT2_POClk;
UInt8 bOUT2_MSBFirst;
UInt8 bZIFTuner;
UInt32 uStartSymbolRate;
UInt32 uStopSymbolRate;
UInt32 uSrMaxMargin;
UInt32 uSrMinMargin;
UInt32 uDeltaThreshold;
} tm10086config_t, *ptm10086config_t;
typedef struct _tm10086apiStatus_t
{
unsigned int iScan :1;
unsigned int iAutoViterbi :1;
unsigned int iAutoSpecInv :1;
unsigned int iInvertSIdone :1;
unsigned int iPreScan :1;
unsigned int iPreSpectrum :1;
} tm10086apiStatus_t, *ptm10086apiStatus_t;
typedef struct _tm10086demodStatus_t
{
unsigned int bfReceiveSignal :1;
unsigned int bfFrameSync :1;
unsigned int bfCarrierLock :1;
} tm10086demodStatus_t, *ptm10086demodStatus_t;
typedef struct _tm10086freqSearch_t
{
UInt32 uCounter;
UInt32 uCenterRF;
} tm10086freqSearch_t, *ptm10086freqSearch_t;
typedef struct _tm10086channel_t
{
UInt32 uRF;
UInt32 uSR;
UInt32 uSRui; //this is the user interface SR which is entered by user and not updated by algorithm
tmhalFESpectrum_t eSI;
tmhalFEModulation_t eMOD;
tmhalFEDepuncRate_t eVR;
UInt8 bLNBvoltage;
UInt16 wLNBfrequency;
tmhalFEToneBurst_t eDiSEqCtoneburst;
UInt8 bDiSEqCNbByte;
UInt8 pDiSEqCMessage[8];
} tm10086channel_t, *ptm10086channel_t;
typedef struct _tm10086region_t
{
UInt32 uRfMin;
UInt32 uRfMax;
UInt32 uSrMin;
UInt32 uSrMax;
UInt32 uMin;
UInt32 uMax;
UInt32 uDelta;
UInt32 uUpperMin;
UInt32 uNest;
UInt32 uACI;
UInt32 uTriangle;
} tm10086region_t, *ptm10086region_t;
typedef struct _tm10086object_t
{
Bool Init;
UInt32 uDemodHwAdd;
tmUnitSelect_t eTunerUnit;
tmhalFEBslSystemFunc_t systemFunc;
tmbslTuConfig_t tunerFunc;
tm10086channel_t sCurrentChannel;
tm10086config_t sConfig;
tm10086apiStatus_t sApiStatus;
tm10086demodStatus_t sDemodStatus;
tm10086freqSearch_t sFreqSearch;
UInt32 uStartFrequency;
UInt32 uStopFrequency;
UInt32 uSysClk;
Bool bStartAlgo;
UInt8 bState;
UInt8 bStateRF;
UInt32 uStartSymbolRate;
UInt32 uStopSymbolRate;
UInt32 uNbSamples;
UInt8* pbDeriv;
UInt32 uStaticCounter;
tmhalFEAutoScanMode_t eAutoScanMode;
UInt32 uNbRegion;
tm10086region_t* puRegion;
UInt8 bStateSpectrum;
UInt8* pbSpectrum;
UInt32 uGraphPos;
UInt32 uTickEnd;
} tm10086object_t, *ptm10086object_t;
//-----------------------------------------------------------------------------
// Internal Prototypes:
//-----------------------------------------------------------------------------
//
static tmErrorCode_t Tda10086WriteInit (tm10086object_t *psObject);
Bool Tda10086WriteRF (tm10086object_t *psObject, UInt32 *puRF);
static Bool Tda10086WriteNextScan (tm10086object_t *psObject);
static Bool Tda10086WriteNCO (tm10086object_t *psObject);
static Bool Tda10086ReadVR (tm10086object_t *psObject, tmhalFEDepuncRate_t *peVR);
Bool Tda10086InitTick (tm10086object_t *psObject, UInt16 wTime);
Bool Tda10086WaitTick (tm10086object_t *psObject);
static Bool Tda10086ReadAFC (tm10086object_t *psObject, Int32 *plAFC);
static Bool Tda10086ReadSync (tm10086object_t *psObject);
static Bool Tda10086RfAlgo (tm10086object_t *psObject);
static tmErrorCode_t Tda10086MainAlgo (tm10086object_t *psObject, UInt16 *pAlgoTimer);
static UInt16 Tda10086CalcTimerAlgo (tm10086object_t *psObject, Bool isViterbiNeeded, UInt32 uNbSymbol);
Bool Tda10086WriteSR (tm10086object_t *psObject, UInt32 *puSR);
static Bool Tda10086ReadACC (tm10086object_t *psObject, Int32 *plACC);
static Bool Tda10086GetRssi (tm10086object_t *psObject, UInt32 *puRssi);
#ifdef __cplusplus
}
#endif
#endif // TM<MODULE>_H //---------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -