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

📄 d0372_drv.h

📁 st7710的tuner标准驱动
💻 H
字号:
#ifndef H_D0372_DRV
	#define H_D0372_DRV
	
	
	#include "d0372_init.h"
	#include "d0372_util.h"

	#define SYMBOLRATE_372  10762237
	/****************************************************************
						COMMON STRUCTURES AND TYPEDEF
	 ****************************************************************/		
	typedef int FE_372_Handle_t;

	typedef enum
	{
	    FE_372_NO_ERROR,
	    FE_372_INVALID_HANDLE,
	    FE_372_ALLOCATION,
	    FE_372_BAD_PARAMETER,
	    FE_372_ALREADY_INITIALIZED,
	    FE_372_I2C_ERROR,
	    FE_372_SEARCH_FAILED,
	    FE_372_TRACKING_FAILED,
	    FE_372_TERM_FAILED
	} FE_372_Error_t;

	typedef struct
	{
		U32 Frequency;						/* transponder frequency (in KHz)		*/
		U32 SymbolRate;						/* transponder symbol rate  (in bds)	*/
		U32 SearchRange;					/* range of the search (in Hz)  		*/	
	        U8  IQMode;                                          /*IQ mode*/
                S32	EQResetNBMAX;
		U32	FistWatchdog;
		U32	DefaultWatchdog;
		U16	LOWPowerTh;
		U16	UPPowerTh; 
	} FE_372_SearchParams_t;


	typedef struct
	{
		BOOL Locked;						/* Transponder found 					*/
		U32	Frequency;						/* found frequency	 					*/
		U32 SymbolRate;						/* founded symbol rate					*/
	} FE_372_SearchResult_t;

	 /****************************************************************/
/* enumerations------------------------------------------------------------- */ 
/*	Internal error definitions	*/
typedef enum
{
	FE_372_IERR_NO,				/*	no error		*/
	FE_372_IERR_I2C,			/*	I2C error		*/
	FE_372_IERR_ZERODIV,		/*	division by zero	*/
	FE_372_IERR_PARAM,			/*	wrong parameters	*/
	FE_372_IERR_UNKNOWN			/*	unknown error	*/
} FE_372_ErrorType_t;

typedef enum
{
	FE_372_LOC_NOWHERE,			/*	no location		*/
	FE_372_LOC_SRHINIT,			/*	in SearchInit	*/
	FE_372_LOC_SRHRUN,			/*	in SearchRun	*/
	FE_372_LOC_SRHTERM,			/*	in SearchTerm	*/
	FE_372_LOC_SETSR,			/*	in SetSymbolRate	*/
	FE_372_LOC_TIMTCST,			/*	in TimingTimeConstant	*/
	FE_372_LOC_DERTCST,			/*	in DerotTimeConstant	*/
	FE_372_LOC_DATTCST,			/*	in DataTimeConstant	*/
	FE_372_LOC_CHKTIM,			/*	in CheckTiming	*/
	FE_372_LOC_SRHCAR,			/*	in SearchCarrier	*/
	FE_372_LOC_SRHDAT,			/*	in SearchData	*/
	FE_372_LOC_CHKRNG,			/*	in CheckRange	*/
	FE_372_LOC_SELLPF			/*	in SelectLPF	*/
} FE_372_Location_t;

typedef struct
{
	FE_372_ErrorType_t Type;	/* Error type	*/
	FE_372_Location_t Location;	/* Error location	*/
} FE_372_InternalError_t;



/* structures -------------------------------------------------------------- */ 
/*	Internal result structure	*/    
typedef struct
{
	FE_372_SIGNALTYPE_t      SignalType;	/*	Type of founded signal	*/
	U32                      Frequency;		/*	Transponder frequenc (KHz)	*/
	U32                      SymbolRate; 	/*	Symbol rate (Bds)	*/
	S32			 EQResetNB;    
} FE_372_InternalResults_t;
	 
	 /*	Internal param structure	*/ 
typedef struct
{
	FE_372_SIGNALTYPE_t State;	/*	Current state of the search algorithm */
        U32            IF;       /* Intermediate frequency (KHz) */
	S32		Quartz,				/*	Quartz frequency (Hz) */
			Frequency,			/*	Current tuner frequency (KHz) */
			FreqOffset,			/*	Frequency offset (Hz) */
			BaseFreq,			/*	Start tuner frequency (KHz) */
			SymbolRate,			/*	Symbol rate (Bds) */
			MasterClock,		/*	Master clock frequency (Hz) */
			Mclk,				/*	Divider factor for masterclock (binary value) */
			SearchRange,		/*	Search range (Hz) */
			SubRange,			/*	Current sub range (Hz) */
			TunerStep,			/*	Tuner step (Hz) */
			TunerOffset,		/*	Tuner offset relative to the carrier (Hz) */
			TunerBW,			/*	Current bandwidth of the tuner (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) */
			Tcarrier,			/*	Carrier loop time constant (ms) */
			Tdata,				/*	Data recovery time constant (ms) */
			TFSM1,				/*  Demod state machine time constant (ms) */  
			TFSM2,				/*  Equalizer state machine time constant (ms) */
			SubDir;				/*	Direction of the next sub range */
			
	FE_372_InternalResults_t	Results;	/* Results of the search	*/
	FE_372_InternalError_t		Error;		/* Last error encountered	*/
	U32 IQMode;   /*IQ mode */
	U32    Watchdog;			/*  First watchdog value in ms */
	U32    TimeOut;	/*  Default watchdog value in ms */  
	S16 EQResetNBMax;
	U16	LOWPowerTh;
	U16	UPPowerTh; 
}FE_372_InternalParams_t;


	
	
	FE_372_Error_t	FE_372_Search(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle,
						FE_372_SearchParams_t	*pSearch,
						FE_372_SearchResult_t	*pResult,
						 STTUNER_Handle_t            TopLevelHandle);
						 S32 FE_372_GetCarrierToNoiseRatio(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle);
						 S32 FE_372_GetBitErrorRate(STTUNER_IOREG_DeviceMap_t *DeviceMap,IOARCH_Handle_t IOHandle);
	

#endif

⌨️ 快捷键说明

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