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

📄 drv0288.h

📁 st7710的tuner标准驱动
💻 H
📖 第 1 页 / 共 2 页
字号:
 #define R288_THH 0x5c
 #define F288_THH 0x5c003f

/* IND1MAX */
 #define R288_IND1MAX 0x5d
 #define F288_IND1_TRESH 0x5d00ff

/* ACCU1VAL */
 #define R288_ACCU1VAL 0x5e
 #define F288_IND1_ACC 0x5e00ff

/* ACCU2VAL */
 #define R288_ACCU2VAL 0x5f
 #define F288_IND2_ACC 0x5f00ff

/* IOPGPIO0 */
 #define R288_IOPGPIO0 0x60
 #define F288_IOP0_HIGHZ 0x600080
 #define F288_IOP0_CFG 0x60007e
 #define F288_IOP0_XOR 0x600001

/* IOPGPIO1 */
 #define R288_IOPGPIO1 0x61
 #define F288_IOP1_HIGHZ 0x610080
 #define F288_IOP1_CFG 0x61007e
 #define F288_IOP1_XOR 0x610001

/* IOPGPIO2 */
 #define R288_IOPGPIO2 0x62
 #define F288_IOP2_HIGHZ 0x620080
 #define F288_IOP2_CFG 0x62007e
 #define F288_IOP2_XOR 0x620001

/* IOPGPIO3 */
 #define R288_IOPGPIO3 0x63
 #define F288_IOP3_HIGHZ 0x630080
 #define F288_IOP3_CFG 0x63007e
 #define F288_IOP3_XOR 0x630001

/* IOPGPIO4 */
 #define R288_IOPGPIO4 0x64
 #define F288_IOP4_HIGHZ 0x640080
 #define F288_IOP4_CFG 0x64007e
 #define F288_IOP4_XOR 0x640001

/* IOPGPIO5 */
 #define R288_IOPGPIO5 0x65
 #define F288_IOP5_HIGHZ 0x650080
 #define F288_IOP5_CFG 0x65007e
 #define F288_IOP5_XOR 0x650001

/* IOPGPIO6 */
 #define R288_IOPGPIO6 0x66
 #define F288_IOP6_HIGHZ 0x660080
 #define F288_IOP6_CFG 0x66007e
 #define F288_IOP6_XOR 0x660001

/* IOPGPIO7 */
 #define R288_IOPGPIO7 0x67
 #define F288_IOP7_HIGHZ 0x670080
 #define F288_IOP7_CFG 0x67007e
 #define F288_IOP7_XOR 0x670001

/* IOPGPIO8 */
 #define R288_IOPGPIO8 0x68
 #define F288_IOP8_HIGHZ 0x680080
 #define F288_IOP8_CFG 0x68007e
 #define F288_IOP8_XOR 0x680001

/* IOPGPIO9 */
 #define R288_IOPGPIO9 0x69
 #define F288_IOP9_HIGHZ 0x690080
 #define F288_IOP9_CFG 0x69007e
 #define F288_IOP9_XOR 0x690001

/* IOPVAL0 */
 #define R288_IOPVAL0 0x6a
 #define F288_GPIO7 0x6a0080
 #define F288_GPIO6 0x6a0040
 #define F288_GPIO5 0x6a0020
 #define F288_GPIO4 0x6a0010
 #define F288_GPIO3 0x6a0008
 #define F288_GPIO2 0x6a0004
 #define F288_GPIO1 0x6a0002
 #define F288_GPIO0 0x6a0001

/* IOPVAL1 */
 #define R288_IOPVAL1 0x6b
 #define F288_CS1 0x6b0080
 #define F288_CS0 0x6b0040
 #define F288_STDBY 0x6b0020
 #define F288_AUXCLK 0x6b0010
 #define F288_DIRCLK 0x6b0008
 #define F288_AGC 0x6b0004
 #define F288_GPIO9 0x6b0002
 #define F288_GPIO8 0x6b0001

/* IOPVAL2 */
 #define R288_IOPVAL2 0x6c
 #define F288_DISEQCOUT 0x6c0001

/* FREEDIS */
 #define R288_FREEDIS 0x70
 #define F288_DIV_XXX_FREE 0x7000ff

/* FREES */
 #define R288_FREES 0x71
 #define F288_SYSTEM_FREE1 0x7100ff

/* FREESA */
 #define R288_FREESA 0x72
 #define F288_SAMP_FREE 0x7200ff

/* FREEVIT */
 #define R288_FREEVIT 0x74
 #define F288_VITERBI_FREE 0x7400ff

/* FREERS */
 #define R288_FREERS 0x75
 #define F288_REED_SOLO_FREE55 0x7500ff

/* FREEQDM */
 #define R288_FREEQDM 0x76
 #define F288_DEMOD_FREE56 0x7600ff

/* TAGC1 */
 #define R288_TAGC1 0x81
 #define F288_SEL_ADC_PLL 0x810010
 #define F288_AGC_BEF_DC 0x810008
 #define F288_EN_AGC_PWM 0x810004
 #define F288_EN_AGC_PLF 0x810002
 #define F288_EN_AGC_TST 0x810001

/* IDCOFF */
 #define R288_IDCOFF 0x82
 #define F288_I_DC_OFFSET_VALUE 0x82003f

/* QDCOFF */
 #define R288_QDCOFF 0x83
 #define F288_Q_DC_OFFSET_VALUE 0x83003f

/* TSTR */
 #define R288_TSTR 0x84
 #define F288_EN_STRST 0x840080
 #define F288_EN_TMG_LOC2 0x840040
 #define F288_EN_TMG_LOC1 0x840020
 #define F288_EN_STR_FRAC 0x840010
 #define F288_EN_STR_ERR 0x840004
 #define F288_EN_STR_GPD 0x840002

/* TCTLT1 */
 #define R288_TCTLT1 0x85
 #define F288_SEL_COR 0x850080
 #define F288_NOISE_IND_CHOICE 0x85000c
 #define F288_SEL_TETA 0x850002
 #define F288_SEL_CTL_PLF 0x850001

/* TSTRM1 */
 #define R288_TSTRM1 0x88
 #define F288_SELOUTR1 0x880080
 #define F288_FSELRAM1 0x880040
 #define F288_FSELDEC 0x880020
 #define F288_FOEB 0x88001c
 #define F288_FADR 0x880003

/* TSTRATE */
 #define R288_TSTRATE 0x89
 #define F288_FORCEPHA 0x890080
 #define F288_TSTRATE6 0x890040
 #define F288_TSTRATE5 0x890020
 #define F288_FNEWALPHA 0x890010
 #define F288_FROT90 0x890008
 #define F288_FOFF 0x890004
 #define F288_FR1 0x890002
 #define F288_FR2 0x890001

/* SELOUT */
 #define R288_SELOUT 0x8a
 #define F288_EN_VLOG 0x8a0080
 #define F288_SELVIT60 0x8a0040
 #define F288_SELSYN3 0x8a0020
 #define F288_SELSYN2 0x8a0010
 #define F288_SELSYN1 0x8a0008
 #define F288_SELLIFO 0x8a0004
 #define F288_SELFIFO 0x8a0002
 #define F288_SELERR 0x8a0001

/* FORCEIN */
 #define R288_FORCEIN 0x8b
 #define F288_SELVITDATAIN 0x8b0080
 #define F288_FORCE_ACS 0x8b0040
 #define F288_TSTSYN 0x8b0020
 #define F288_TSTRAM64 0x8b0010
 #define F288_TSTRAM 0x8b0008
 #define F288_TSTERR2 0x8b0004
 #define F288_TSTERR1 0x8b0002
 #define F288_TSTACS 0x8b0001

/* TSTFIFOL */
 #define R288_TSTFIFOL 0x8c
 #define F288_TSTFIFO7 0x8c0080
 #define F288_TSTFIFO6 0x8c0040
 #define F288_TSTFIFO5 0x8c0020
 #define F288_TSTFIFO3 0x8c0008
 #define F288_FORMSB 0x8c0004
 #define F288_FORLSB 0x8c0002
 #define F288_TST_FIFO 0x8c0001

/* TSTCK */
 #define R288_TSTCK 0x90
 #define F288_TSTCKRST 0x900040
 #define F288_TSTCKDIL 0x900020
 #define F288_FORCERATE1 0x900008
 #define F288_FORCESYMHA 0x900004
 #define F288_FORSYMAX 0x900002
 #define F288_DIRCKINT 0x900001

/* TSTRES */
 #define R288_TSTRES 0x91
 #define F288_FRESYYY 0x910080
 #define F288_FREESRS 0x910040
 #define F288_FRESXXX 0x910020
 #define F288_FRESCAR 0x910010
 #define F288_FRESACS 0x910008
 #define F288_FRESYM 0x910004
 #define F288_FRESMAS 0x910002
 #define F288_FRESINT 0x910001

/* TSTOUT */
 #define R288_TSTOUT 0x92
 #define F288_RBACT 0x920040
 #define F288_TS 0x92000e
 #define F288_CTEST 0x920001

/* TSTIN */
 #define R288_TSTIN 0x93
 #define F288_TEST_IN 0x930080
 #define F288_EN_ADC 0x930040
 #define F288_SGN_ADC 0x930020
 #define F288_BCLK_IN 0x930010
 #define F288_TP12 0x930008

/* READREG */
 #define R288_READREG 0x94
 #define F288_READREG 0x9400ff

/* TSTNR2 */
 #define R288_TSTNR2 0x97
 #define F288_DISEQC_IDDQ 0x970020
 #define F288_DISEQC_I2C 0x97001f

/* TSTDIS */
 #define R288_TSTDIS 0xa0
 #define F288_EN_DIS 0xa00080
 #define F288_EN_PTRS 0xa00040
 #define F288_TST_DIS_5 0xa00020
 #define F288_TST_DIS_4 0xa00010
 #define F288_EN_DIS_FIFOS 0xa00008
 #define F288_TST_PRO 0xa00004
 #define F288_TST_REG 0xa00002
 #define F288_TST_PRE 0xa00001

/* TSTDISRX */
 #define R288_TSTDISRX 0xa1
 #define F288_EN_DISRX 0xa10080
 #define F288_TST_CUR_SRC 0xa10040
 #define F288_IN_DIGSIG 0xa10020
 #define F288_HIZ_CUR_SRC 0xa10010
 #define F288_PIN_SELECT_TST 0xa10008
 #define F288_TST_DISRX 0xa10007

/* IOPSDAT */
 #define R288_IOPSDAT 0xb0
 #define F288_SDAT_HIGHZ 0xb00080
 #define F288_SDAT_CFG 0xb0007e
 #define F288_SDAT_XOR 0xb00001

/* IOPSCLT */
 #define R288_IOPSCLT 0xb1
 #define F288_SCLT_HIGHZ 0xb10080
 #define F288_SCLT_CFG 0xb1007e
 #define F288_SCLT_XOR 0xb10001

/* IOPAGC */
 #define R288_IOPAGC 0xb2
 #define F288_AGC_HIGHZ 0xb20080
 #define F288_AGC_CFG 0xb2007e
 #define F288_AGC_XOR 0xb20001

/* IOPDIRCLK */
 #define R288_IOPDIRCLK 0xb3
 #define F288_DIRCLK_HIGHZ 0xb30080
 #define F288_DIRCLK_CFG 0xb3007e
 #define F288_DIRCLK_XOR 0xb30001

/* IOPAUX */
 #define R288_IOPAUX 0xb4
 #define F288_AUX_HIGHZ 0xb40080
 #define F288_AUX_CFG 0xb4007e
 #define F288_AUX_XOR 0xb40001

/* IOPSTDBY */
 #define R288_IOPSTDBY 0xb5
 #define F288_STDBY_HIGHZ 0xb50080
 #define F288_STDBY_CFG 0xb5007e
 #define F288_STDBY_XOR 0xb50001

/* IOPCS0 */
 #define R288_IOPCS0 0xb6
 #define F288_CS0_HIGHZ 0xb60080
 #define F288_CS0_CFG 0xb6007e
 #define F288_CS0_XOR 0xb60001

/* IOPCS1 */
 #define R288_IOPCS1 0xb7
 #define F288_CS1_HIGHZ 0xb70080
 #define F288_CS1_CFG 0xb7007e
 #define F288_CS1_XOR 0xb70001

/* IOPSDISEQC */
 #define R288_IOPSDISEQC 0xb8
 #define F288_DISEQC_HIGHZ 0xb80080
 #define F288_DISEQC_CFG 0xb8007e
 #define F288_DISEQC_XOR 0xb80001

/* TBUSBIT */
 #define R288_TBUSBIT 0xb9
 #define F288_BUS_CHOICE 0xb90040
 #define F288_BUS_POSITION 0xb9003f

/* TCOMP1 */
 #define R288_TCOMP1 0xf1
 #define F288_SLEEPINHBT 0xf10080
 #define F288_RA6SRC 0xf10040
 #define F288_RA5SRC 0xf10020
 #define F288_RA4SRC 0xf10010
 #define F288_RA3SRC 0xf10008
 #define F288_RA2SRC 0xf10004
 #define F288_RA1SRC 0xf10002
 #define F288_RA0SRC 0xf10001

/* TCOMP2 */
 #define R288_TCOMP2 0xf0
 #define F288_ACCURATE 0xf00010
 #define F288_COMPENS 0xf00008
 #define F288_COMPTQ 0xf00004
 #define F288_FREEZE 0xf00002
 #define F288_CHIPSLEEP 0xf00001

/* TCOMPSTAT */
 #define R288_TCOMPSTAT 0xf2
 #define F288COMPOK 0xf20080
 #define F288A6SRC 0xf20040
 #define F288A5SRC 0xf20020
 #define F288A4SRC 0xf20010
 #define F288A3SRC 0xf20008
 #define F288A2SRC 0xf20004
 #define F288A1SRC 0xf20002
 #define F288A0SRC 0xf20001

	

	/* Number of registers */
	#define     STX288_NBREGS   140

	/* Number of fields */
	#define     STX288_NBFIELDS 402
	
	
typedef struct
	{
		U32 Frequency;						/* transponder frequency (in KHz)		*/
		U32 Symbolrate;						/* transponder symbol rate  (in bds)	*/
		U32 SearchRange;					/* range of the search (in Hz)  		*/	
		FE_288_Modulation_t Modulation;	/* modulation							*/
		STTUNER_IQMode_t DemodIQMode;
		U32 ExternalClock;
	} FE_288_SearchParams_t;

	typedef struct
	{
		BOOL Locked;						/* Transponder found 					*/
		U32	Frequency;						/* found frequency	 					*/
		U32 Symbolrate;						/* founded symbol rate					*/
		FE_288_Rate_t Rate;				/* puncture rate  for DVBS1 DTV			*/
	} 
	FE_288_SearchResult_t;
	
	/************************
		INFO STRUCTURE
	************************/
	

typedef struct
{
	U32                     Frequency;		/*	Transponder frequency (KHz)	*/   
	FE_288_SIGNALTYPE_t	SignalType;		/*	Type of founded signal	*/
	FE_288_Rate_t           PunctureRate;		/*	Puncture rate found	*/
	U32                     Symbolrate; 		/*	Symbol rate (Bds)	*/
} FE_288_InternalResults_t;
typedef struct
{
	
	S32		Quartz;				/*	Quartz frequency (Hz) */
	S32		Frequency,			/*	Current tuner frequency (KHz) */
			BaseFreq,			/*	Start tuner frequency (KHz) */
			SubRange,			/*	Current sub range (Hz) */
			TunerStep,			/*	Tuner step (Hz) */
			TunerOffset,
			FreqOffset,
			MaxOffset,
			MinOffset
			;	
			U32	        TunerBW;			/*	Current bandwidth of the tuner (Hz) */ 
        long            TunerIQSense;
       
	FE_288_SIGNALTYPE_t State;/*	Current state of the search algorithm */
	U32		Symbolrate,			/*	Symbol rate (Bds) */
			MasterClock,		/*	Master clock frequency (Hz) */
			Mclk,				/*	Divider factor for masterclock (binary value) */
			SearchRange,		/*	Search range (Hz) */
			RollOff;			/*	Current RollOff of the filter (x100) */		
	S16		DerotFreq,			/*	Current frequency of the derotator (Hz) */
			DerotPercent,		/*	Derotator step (in thousands of symbol rate) */
			DerotStep,			/*	Derotator step (binary value) */
			Direction,			/*	Current search direction */ 
			Tagc1,				/*	Agc1 time constant (ms) */
			Tagc2,				/*	Agc2 time constant (ms) */
			Ttiming,			/*	Timing loop time constant (ms) */
			Tderot,				/*	Derotator time constant (ms) */
			Tdata,				/*	Data recovery time constant (ms) */
			SubDir;				/*	Direction of the next sub range */
	STTUNER_IQMode_t DemodIQMode;
	FE_288_InternalResults_t Results;
}
FE_288_InternalParams_t;

FE_288_SIGNALTYPE_t FE_288_CheckTiming(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle,FE_288_InternalParams_t *Params);
FE_288_SIGNALTYPE_t FE_288_CheckCarrier(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle,FE_288_InternalParams_t *Params);
FE_288_SIGNALTYPE_t FE_288_CheckData(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle,FE_288_InternalParams_t *Params);
void FE_288_IQInvertion(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle);
FE_288_SIGNALTYPE_t FE_288_SearchLock(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle,FE_288_InternalParams_t *Params);
FE_288_SIGNALTYPE_t FE_288_SearchData(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle,FE_288_InternalParams_t *Params);
FE_288_SIGNALTYPE_t FE_288_CheckRange(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle,FE_288_InternalParams_t *Params, U32 SymbolRate);
S16 FE_288_GetRFLevel(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle);
S32 FE_288_GetCarrierToNoiseRatio(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle);
S32 FE_288_Coarse(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle,U32 MasterClock_Hz,S32 *Offset_Khz);
void FE_288_Fine(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle,U32 MasterClock_Hz,U32 Symbolrate_Bds, BOOL TRY);
FE_288_SIGNALTYPE_t FE_288_Algo(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle,FE_288_InternalParams_t *Params, STTUNER_Handle_t TopLevelHandle);		/* Demod handle */
FE_288_Error_t	FE_288_GetSignalInfo(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle, FE_288_SignalInfo_t	*pInfo);
FE_288_Error_t  FE_288_SetTSClock_OutputRate(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle,U32 SymbolRate, U32 MasterClock);
BOOL FE_288_Harmonic(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle, U32 MasterClock_Hz,U32 RfFrequency_Khz);
U32 Drv0288_SpectrumAnalysis(STTUNER_tuner_instance_t *TunerInstance, STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle, U32 StartFreq,U32 StopFreq,U32 StepSize,U32 *ToneList,U8 mode,int* power_detection_level);
U32 Drv0288_ToneDetection(STTUNER_IOREG_DeviceMap_t *DeviceMap,STTUNER_Handle_t TopLevelHandle,U32 StartFreq,U32 StopFreq,U32 *ToneList,U8 mode,int* power_detection_level);


FE_288_Error_t	FE_288_Search(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle,
										    FE_288_SearchParams_t	*pSearch,
										    FE_288_SearchResult_t	*pResult,
										    STTUNER_Handle_t            TopLevelHandle);

#ifdef __cplusplus
extern "C"
{
#endif 

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -