📄 nscc_tuner.h
字号:
#ifndef NSCC_TUNER_H#define NSCC_TUNER_H #ifdef __cplusplusextern "C" { #endif#define lowTunerI2CAdr 0xc2 #define lowDemodI2CAdr 0x32 // #define highDemodI2CAdr 0x36 // when register address > 0xBF#define DemodSec1MaxAdr 0xBF #define ADMTV10xID 0x0E // ADMTV102 SPLITID #define m_BYTE unsigned char#define m_WORD unsigned int#define m_DWORD unsigned long#define BOOL int #define true 0x01#define false 0x00 #define DemodParallelOutType 0x00 #define DemodSerialOutType 0x01 #define Demod_8GL5ID 0x0E // 8GL5 0x00 reg value #define Demod_8934ID 0x0C // 8934 0x00 reg value #define Demod_8G54ID 0x0F // 8G54 0x00 reg value #define Demod_8934 0x00 #define Demod_8G44 0x01 #define Demod_8GL5 0x02#define Demod_8G54 0x03#define Tuner_MTV102 0x00 #define Tuner_ADMTV102 0x01 #define Tuner_NewMTV102 0x02 #define VHFSupport 1 // #define UHFSupport 0 // // time interleaver, 240, 720 #define TIM_0 0x00 //0x7d bit[6:5]=10#define TIM_240 0x40 //0x7d bit[6:5]=10#define TIM_720 0x60 //0x7d bit[6:5]=11 // constellation,QPSK, 16QAM, 64QAM #define QAM_4 0x00 //0x7d bit[4:2]=000 #define QAM_4NR 0x04 //0x7d bit[4:2]=001 //??#define QAM_16 0x08 //0x7d bit[4:2]=010#define QAM_32 0x0C //0x7d bit[4:2]=011 //??#define QAM_64 0x10 //0x7d bit[4:2]=100// code rate, 0.4,0.6,0.8 #define CR_4 0x00 //0x7d bit[1:0]=00 #define CR_6 0x01 //0x7d bit[1:0]=01#define CR_8 0x02 //0x7d bit[1:0]=10#define GI_420 0x00 #define GI_945 0x02 #define GI_595 0x01 #define GIPN_Variable 0x7F // bit 7 is 0#define GIPN_Constant 0x80 // bit 7 is 1#define BothMultipleSingle 0x01 //enable single Carrier detection or not#define MultipleCarrierOnly 0x00 //only enable multiple Carrier mode #define SingleCarrierOnly 0x02 //only enable single Carrier mode // Carrier mode: Single or multiple carrier mode #define SingleCarrier 0x01#define MultiCarrier 0x00#define REFCLK13000 0#define REFCLK16384 1#define REFCLK19200 2#define REFCLK20480 3#define REFCLK24576 4#define REFCLK26000 5#define REFCLK30400 6#define REFCLK36000 7#define REFCLK38400 8#define REFCLK20000 9#define _EXTUNEOFF 0 #define _EXTUNEON 1 #define _TUNEEN 1 #define _TUNEDIS 0 #define CTUNEOFS 0x01 //default = 0 ; #define vlowDegBoundary 7#define rglowDegCONDIV 0xEC#define vhighDegBoundary 9#define rgHighDegCONDIV 0x00#define fDegVcoApply 1#define HIGH_TEMP 0#define LOW_TEMP 1#define rglowDegCONVCO_VHF 0x9D#define rgHighDegCONVCO 0x00#define CTUNE_CLKOFS_SPLIT0E 0x09 /*added at v1.6.8*/#define CTUNE_CLKOFS_SPLIT0F 0x00 // for mass product #define REFCLK30400_CLKSEL_REG_SPLITID0E 0x5F //for split ID is 0x0e#define REFCLK30400_CLKSEL_REG_SPLITID0F 0x6A //for split ID is 0x0f#define TunerADOutMin 2#define TunerADOutMax 12#define DetectOkOnLock 1#define OnProcessNoLock 2#define MaxLockTimes 2#define MaxNoLockTimes 100 /*15*/#define VIEW_FIND 1#define VIEW_TIME_OUT 0#define RSSIAveTimes 3#define TunerPowerBound -61 #define NoSignalThreshold -84 // -84dBm#define MaxProgNum 10typedef struct { BOOL ACK_status; // 0 means no ACK, 1 means has ACK unsigned char read_data; // read return value } I2C_READ;typedef struct { int ChannelID; // channel ID number int Freq; // Frequency point int CarrMode; //indicate the carrier mode, multiple carrier or single carrier int GIMode; // Guard interval mode int FECMode; // Time interleaver, Constellation, Code Rate, Control Frame etc. int ProgID[MaxProgNum]; //program ID int VideoID[MaxProgNum]; // Video PID int VideoType[MaxProgNum]; // Video Type of each program int AudioID[MaxProgNum]; //Audio PID int AudioType[MaxProgNum]; //Audio Type of each program int ProgNum; // Program number in this Channel }ChannelInfo;typedef struct { int m_program_id; int m_video_pid; int m_video_type; int m_audio_pid; int m_audio_type;}MPEG_PROGINFO;m_BYTE g_icp,g_convco,g_curTempState,g_CTUNE_CLKOFS;int g_VHFSet=UHFSupport;int g_TunerPLLType=REFCLK16384;ChannelInfo FindChannel[50];MPEG_PROGINFO myMpegInfo[MaxProgNum];int FindProgNum; // indicate how many program is found in one certain channelvoid Sleep(int msNum);void ConfigTuner(m_BYTE target, m_BYTE *AddrData);void TunerInit(m_BYTE target, int TunerPLLType);int GetTunerType(m_BYTE target);void SetTunerFreq(m_BYTE target, m_WORD frequency, m_WORD lpfBW, int PLLType);void SetLPF(m_BYTE target,m_WORD refClkType,m_BYTE lpfBW);int LO2PLL_Freq(m_DWORD lofreq);int TunerPLLRegSet(m_BYTE target, m_BYTE* RegDat,int PLLType);int TunerRSSICalc(m_WORD frequency);void dpPhaseTuning(m_DWORD lofreq, m_BYTE temper);void TunerTemperatureComp(long lofreq);int CheckTunerI2C(m_BYTE target);void ConfigDemod( m_BYTE *AddrData);void DemodInit(int DemodOutType);int GetDemodType(void);void DemodSoftReset(void);void GIModeSet(int GI_mode, int GIPN_mode);void DisableGIAutoDetect(void);int GetFECPara(void);int CheckDetectMode(void);int CheckDemodI2C(void);void DemodManualDetectSet(m_BYTE FEC_Par,int GI_mode);void DemodAutoDetectSet(void);void SetTunerI2CInternal(void);void SetTunerI2CExternal(void);void DemodOutputSerialSet(void);void DemodOutputParallelSet(void);int DemodSingleCarrSet(void);int DemodMultiCarrSet(void);int SignalLockCheck(void);int AutoDetectDoneCheck(void);int DetectDemodMode(int GIChangeTimes);int GetGISet(void);int WaitForDetect(int SupportSingleCarrier);int DetectFEBoard(void);int GetCarrMode(void);int ProcessOnGI595SC(void);int DBBSignalQuality(void);int ChannelScan(int* );void SpecInitforLGS8G54(void);int FrontEndBoardInit(int Freq, int PLLType, int InitMode);int GetProgramInfo(void);I2C_READ sread(m_BYTE , m_BYTE);void swrite(m_BYTE , m_BYTE,m_BYTE);#if 0/*******************************************************************Notes of swrite function: function: I2C bus write operation, shall be provided by user target: I2C device ID number addr: register address data: the value to be written into the given register. ********************************************************************/void swrite (m_BYTE target, m_BYTE addr, m_BYTE data);/*******************************************************************Notes of sread function: function: I2C bus read operation, shall be provided by user target: I2C device ID number addr: register address return: the ACK status and data read from the defined register ********************************************************************/I2C_READ sread (m_BYTE target, m_BYTE addr);#endif#ifdef __cplusplus}#endif #endif /* NSCC_TUNER_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -