⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tmbsl10086local.h

📁 卫星接收机器卫星 自动搜索, 包括优化处理
💻 H
📖 第 1 页 / 共 2 页
字号:
#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 + -