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

📄 demod_.h

📁 通过PC并口模拟I2C信号
💻 H
📖 第 1 页 / 共 3 页
字号:




//----------------------------------
//----------------------------------
	typedef int FE_STB0899_Handle_t;  
	
	typedef enum
	{
		FE_NO_ERROR,
	    FE_INVALID_HANDLE,
	    FE_ALLOCATION,
	    FE_BAD_PARAMETER,
	    FE_ALREADY_INITIALIZED,
	    FE_I2C_ERROR,
	    FE_SEARCH_FAILED,
	    FE_TRACKING_FAILED,
	    FE_TERM_FAILED
	} FE_STB0899_Error_t;

	typedef enum
	{
		FE_BAND_LOW,
		FE_BAND_HIGH
	} FE_STB0899_Bands_t;

	
	typedef enum
	{
	  	FE_MOD_BPSK,
	  	FE_MOD_QPSK,
	  	FE_MOD_OQPSK,
	  	FE_MOD_8PSK
	} FE_STB0899_Modulation_t;
	
	typedef enum
	{
		FE_IQ_AUTO,
		FE_IQ_NORMAL,
		FE_IQ_SWAPPED
	}FE_STB0899_IQ_Inversion;


	typedef enum
	{
		FE_POL_HORIZONTAL	= 1,
		FE_POL_VERTICAL		= 1<<1
	}FE_STB0899_Polarization_t;
	
	typedef enum
	{
		FE_LNB_CTRL_VOLT_AND_TONE = 0,
		FE_LNB_CTRL_TONE_BURST,
		FE_LNB_CTRL_DISEQC
	}FE_STB0899_LnbCtrlType_t;
	


	typedef enum
	{
		FE_1_2 =13	,
		FE_2_3 =18	,	
		FE_3_4 =21	 ,
		FE_5_6 =24 ,
		FE_6_7 =25	 ,
		FE_7_8 =26	 
	}FE_STB0899_Rate_t;
	
	typedef enum
	{
		FE_20,
		FE_25,
		FE_35
	}FE_STB0899_RollOff;
	
	typedef enum
	{
		FE_DISPIN_OFF = 0,
		FE_DISPIN_ON,
		FE_DISPIN_22KHZ,
		FE_DISPIN_TONE_BURST,
		FE_DISPIN_DISEQC
	}FE_STB0899_DiseqcPinMode_t;
	
	
		typedef enum
	{
		FE_LNBTYPE_NONE,		/* NO LNB connected */
		FE_LNBTYPE_UNIVERSAL,	/* LNB 22KHz and 13/18v controlled */
		FE_LNBTYPE_TONEBURST,	/* LNB 22KHz and 13/18v + tone burst controlled */
		FE_LNBTYPE_DISEQC,		/* LNB DiSEqC controlled */
		FE_LNBTYPE_SCR_APP1	/* SCR LNB DiSEqC controlled (18V) : One cable single SCR */
		/* add future SCR LNB applications here */
	}FE_LNBTYPE_t;
	
		/* power device used to supply LNB */
	typedef enum
	{
		FE_LNBPOW_LNBP15,  /* LNBP15 power device */ 
		FE_LNBPOW_LNBP21   /* LNBP21 power device */
		/* to be defined */
	}FE_LNBPOW_t;


	typedef enum
	{								
		FE_PARALLEL_CLOCK,		
		FE_SERIAL_MASTER_CLOCK,
		FE_SERIAL_VCODIV6_CLOCK
	} FE_STB0899_Clock_t;

	typedef enum
	{
		FE_PARITY_ON,
		FE_PARITY_OFF
	} FE_STB0899_DataParity_t;

	typedef enum
	{	
		FE_DVBS1_STANDARD,					/* The FEC mode corresponds to the DVB standard	*/
		FE_DVBS2_STANDARD,
		FE_DSS_STANDARD
	} FE_STB0899_CodingStandard_t;
	

	//STB0899_Drv.h
	/****************************************************************
						SEARCH STRUCTURES
	 ****************************************************************/
	typedef struct
	{
		U32 Frequency;						/* transponder frequency (in KHz)		*/
		U32 SymbolRate;						/* transponder symbol rate  (in bds)	*/
		U32 SearchRange;					/* range of the search (in Hz)  		*/	
		FE_STB0899_Modulation_t Modulation;	/* modulation							*/
		FE_STB0899_CodingStandard_t Standard;	/*Dvb dvbs2 */
		FE_STB0899_IQ_Inversion		IQ_Inversion;	/* IQ spectrum search for DVBS2   */
//----------------------------------
//----------------------------------
 
		
	} FE_STB0899_SearchParams_t;

	typedef struct
	{
		BOOL Locked;						/* Transponder found 					*/
		U32	Frequency;						/* found frequency	 					*/
		U32 SymbolRate;						/* founded symbol rate					*/
		FE_STB0899_Rate_t Rate;				/* puncture rate  for DVBS1 			*/
		FE_DVBS2_ModCod_t ModCode;			/* found modecode only for DVBS2		*/
		BOOL Pilots;						/* pilots found							*/
		FE_DVBS2_FRAME FrameLength;			/* found frame length					*/

	} FE_STB0899_SearchResult_t;
	/************************
		INFO STRUCTURE
	************************/
	typedef struct
	{
		BOOL Locked;						/* Transponder locked					*/
		U32 Frequency;						/* transponder frequency (in KHz)		*/
		U32 SymbolRate;						/* transponder symbol rate  (in Mbds)	*/
		FE_STB0899_Modulation_t Modulation;	/* modulation							*/
		FE_STB0899_Polarization_t Polarization;	/* Polarization							*/
		FE_STB0899_Bands_t Band;				/* Band									*/
		FE_STB0899_Rate_t Rate;				/* puncture rate for DVBS1 mode	*/ 
		FE_DVBS2_ModCod_t ModCode;			/* only for DVBS2						*/ 
		BOOL Pilots;						/* Pilots on/off only for DVB-S2		*/
		FE_DVBS2_FRAME FrameLength;			/* found frame length					*/
		S32 Power;							/* Power of the RF signal (dBm)			*/			
		U32	C_N;							/* Carrier to noise ratio				*/
		U32	BER;							/* Bit error rate						*/
		S16	SpectralInv;						/* I,Q Inversion 						*/ 		
	} FE_STB0899_SignalInfo_t;


//	typedef enum
//	{
//		CORR_PEAK,
//		MIN_FREQ_EST,
//		UWP_LOCK,
//		FEC_LOCK,
//		NO_SEARCH
//		
//	}FE_DVBS2_AcqMode;


//	typedef struct
//	{
//		FE_DVBS2_AcqMode AcqMode;
//		/*FE_DVBS2_Mode_t mod;*/
//
//		U32 	SymbolRate,
//				MasterClock,
//				FreqRange,
//				CenterFreq,
//				AveFrameCoarseAcq,
//				AveFramefineAcq,
//				AveFrameCoarseTrq,
//				AveFramefineTrq;
//
//		S16		AutoReacq,
//				TracklockSel,
//				Zigzag,
//				StepSize;
//				
//	}FE_DVBS2_ReacquireParams_t;


	typedef enum
	{
		I2C_OK = 0,		/* I2C transmission OK */
		I2C_NOSDA,		/* SDA line is stucked */
		I2C_NOSCL,		/* SCL line is stucked */
		I2C_BUSERROR,	/* SDA and SCL are stucked */
		I2C_NOACK		/* SDA and SCL lines are OK but the device does not acknowledge */
	} I2C_RESULT;
	
	typedef enum
	{
		I2C_READ,		/* Read from slave */
		I2C_WRITE		/* Write to slave */
	} I2C_MODE;


#define HOST_PC
typedef enum
{
	STCHIP_REG_8,
	STCHIP_REG_16,
	STCHIP_REG_24,
	STCHIP_REG_32
	
}STCHIP_RegSize_t;

/* access modes for fields and registers */
typedef enum
{
    STCHIP_ACCESS_WR,  /* can be read and written */
    STCHIP_ACCESS_R,   /* only be read from */
    STCHIP_ACCESS_W,   /* only be written to */
    STCHIP_ACCESS_NON  /* cannot be read or written (guarded register, e.g. register skipped by ChipApplyDefaultValues() etc.) */
}
STCHIP_Access_t;
typedef enum
{
	STCHIP_NOT_POINTED=0,
	STCHIP_POINTED
	
}STCHIP_Pointed_t;
/* register field type */
typedef enum
{
    CHIP_UNSIGNED,
    CHIP_SIGNED
}
STCHIP_FieldType_t;


/* error codes */
typedef enum
{
    CHIPERR_NO_ERROR = 0,       /* No error encountered */
    CHIPERR_INVALID_HANDLE,     /* Using of an invalid chip handle */
    CHIPERR_INVALID_REG_ID,     /* Using of an invalid register */
    CHIPERR_INVALID_FIELD_ID,   /* Using of an Invalid field */
    CHIPERR_INVALID_FIELD_SIZE, /* Using of a field with an invalid size */
    CHIPERR_I2C_NO_ACK,         /* No acknowledge from the chip */
    CHIPERR_I2C_BURST           /* Two many registers accessed in burst mode */
}
STCHIP_Error_t;

/* how to access I2C bus */
typedef enum
{
    STCHIP_MODE_SUBADR_8,       /* <addr><reg8><data><data>        (e.g. demod chip) */
    STCHIP_MODE_SUBADR_16,      /* <addr><reg8><data><data>        (e.g. demod chip) */    
    STCHIP_MODE_NOSUBADR,        /* <addr><data>|<data><data><data> (e.g. tuner chip) */
    STCHIP_MODE_NO_R_SUBADR
}
STCHIP_Mode_t;

//typedef STCHIP_Info_t *STCHIP_Handle_t;  /* Handle to a chip */


//-----------------------------------------------------------------
//	STCHIP_Handle_t ChipOpen(STCHIP_Info_t *hChipOpenParams);


//	struct stb0899_reg
//	{
//		STCHIP_RegSize_t Size;
//		U16 RegId;
//		char * Name;
//		U16 Address;
//		U32 Default;
//		STCHIP_Access_t Access;
//		STCHIP_Pointed_t Pointed;
//		U16 PointerRegAddr;
//		U32 BaseAdress;
//
//	} STB0899_REG;

typedef struct
{
    U16             	Addr;  		/* Address */
    STCHIP_RegSize_t 	Size;	  	/*Register size in Byte*/
    U32   				Default;	/* Default value */
    U32	 				Value;		/* Current value */
    char            	Name[30];	/* Name */
    STCHIP_Access_t 	Access;		/* access mode */
    STCHIP_Pointed_t 	Pointed;	/* Register Pointed or not*/
    U16 		PointerRegAddr;		/* Pointer Adress*/
    U32 				BaseAdress;	/*Base Adress*/
}
STCHIP_Register_t;

//
//	struct stb0899_field
//	{
//		U16 RegId;
//		U32 FieldId;
//		char * Name;
//		char Pos;
//		char NbBits;
//		STCHIP_FieldType_t Type;
//
//	} STB0899_FIELD;

typedef struct
{
    U16                Reg;      /* Register index */
    unsigned char      Pos;      /* Bit position */
    unsigned char      Bits;     /* Bit width */
    U32				Mask;	     /* Mask compute with width and position */
    STCHIP_FieldType_t Type;     /* Signed or unsigned */
    char               Name[30]; /* Name */
}
STCHIP_Field_t;

	//---


///* error codes */
//typedef enum
//{
//    CHIPERR_NO_ERROR = 0,       /* No error encountered */
//    CHIPERR_INVALID_HANDLE,     /* Using of an invalid chip handle */
//    CHIPERR_INVALID_REG_ID,     /* Using of an invalid register */
//    CHIPERR_INVALID_FIELD_ID,   /* Using of an Invalid field */
//    CHIPERR_INVALID_FIELD_SIZE, /* Using of a field with an invalid size */
//    CHIPERR_I2C_NO_ACK,         /* No acknowledge from the chip */
//    CHIPERR_I2C_BURST           /* Two many registers accessed in burst mode */
//}
//STCHIP_Error_t;

///* how to access I2C bus */
//typedef enum
//{
//    STCHIP_MODE_SUBADR_8,       /* <addr><reg8><data><data>        (e.g. demod chip) */
//    STCHIP_MODE_SUBADR_16,      /* <addr><reg8><data><data>        (e.g. demod chip) */    
//    STCHIP_MODE_NOSUBADR,        /* <addr><data>|<data><data><data> (e.g. tuner chip) */
//    STCHIP_MODE_NO_R_SUBADR
//}
//STCHIP_Mode_t;


typedef struct stchip_Info_t
{
    unsigned char       I2cAddr;          /* Chip I2C address */
    char                Name[30];         /* Name of the chip */
    int                 NbRegs;           /* Number of registers in the chip */
    int                 NbFields;         /* Number of fields in the chip */
    STCHIP_Register_t  *pRegMap;          /* Pointer to register map */
    STCHIP_Field_t     *pFieldMap;        /* Pointer to field map */
    STCHIP_Error_t      Error;            /* Error state */
    STCHIP_Mode_t       ChipMode;         /* Access bus in demod (SubAdr) or tuner (NoSubAdr) mode */  
//#if defined(CHIP_STAPI)                   /* pass other STAPI specific parameters to this driver */
//    ST_Partition_t     *MemoryPartition;
//    IOARCH_Handle_t    IOHandle;
//#endif

⌨️ 快捷键说明

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