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

📄 gx1101.h

📁 做STB的朋友接好了,国芯调协器软件包说明介绍.
💻 H
字号:
/*******************************************************************************************

        Copyright(C) 2004 , HANGZHOU GUOXIN SCIENCE AND TECHNOLOGY CO.,LTD, all right reserved.

        Product : DVB-S_GX1101 Demo Software

        Date    : 2005.09.14
        Author  : Guoxin
        Purpose	: Drive GX1101 
*******************************************************************************************/

#ifndef _GX1101_H
#define _GX1101_H
/*******************************************************************************************/
/*provides the application's variable types*/
typedef unsigned short 	CHAR;	/**< 1 character 2 bytes, range: 0 to 65536 */
typedef unsigned char	u8;		/**< 1 byte, range: 0 to 255 */
typedef unsigned short	u16;	/**< 2 bytes, range: 0 to 65536 */
typedef unsigned long	u32;	/**< 4 bytes, range: 0 to 4G */
typedef char			s8;		/**< 1 byte, range: -128 to 127 */
typedef short			s16;	/**< 2 bytes, range: -32768 to 32767 */
typedef long			s32;	/**< 4 bytes, range: -2G to 2G */
typedef char			bool8;	/**< 1 bytes, range: TRUE or FALSE */

#define TRUE	1
#define FALSE	0
#define PRINT_TEST							0
#define PRINT_0603							1
/*******************************************************************************************/
#define DVB_TUNER_MAX2118					1
/*******************************************************************************************/
#define USER_DEFINE							0
/*******************************************************************************************/
#define GX1101_CHIP_ID						0x01
/*******************************************************************************************/
#define GX1101_DEVICE_ID		           		0xd0	
//#define GX1101_DEVICE_ID		           		0xd2
/*******************************************************************************************/
#define MX2118_DEVICE_ID		           		0xc2
/*******************************************************************************************/
// Regisiter Define for GX1101
#define GX1101_ID							0x00
#define GX1101_STBY							0x01
#define GX1101_PLL_KN						0x02
#define GX1101_PLL_M						0x03
#define GX1101_DISEQC_MODE				0x10
#define GX1101_DISEQC_INS		            		0x12
#define GX1101_DISEQC_INT					0x1c
#define GX1101_GLB_CTRL					0x30
#define GX1101_GPOP0						0x31
#define GX1101_CHIP_STATE		            		0x34
#define GX1101_BLIND_STATE					0x35
//#define GX1101_TS_ON						0x37
#define GX1101_INTENSITY	                		0x42
#define GX1101_ERR1_L						0x50
#define GX1101_ERR1_H						0x51
#define GX1101_ERR2_L						0x52
#define GX1101_ERR2_H						0x53
#define GX1101_M_SNR						0x54
#define GX1101_DEROT						0x55
#define GX1101_IQ_SWAP						0x58
#define GX1101_CRL_PARA					0x59
#define GX1101_BLIND_SEL					0x60
#define GX1101_SYM_RATE_L					0x61
#define GX1101_SYM_RATE_H					0x62
#define GX1101_TRL_PARA					0x69
#define GX1101_SCAN_LEN					0x6b
#define GX1101_AAF_SEL						0x6d
#define GX1101_OFFSETL						0x6e
#define GX1101_OFFSETM						0x6f
#define GX1101_OFFSETH						0x70
#define GX1101_VIT_RAT_CUR					0x84
#define GX1101_VIT_MODE					0x85
#define GX1101_TS_FMT_CTRL					0xb1


//Default Value
#define GX1101_GLB_CTRL_CB_OPEN			0x01
#define GX1101_GLB_CTRL_CB_CLOSE			0x02
#define GX1101_SET_BLIND_ENABLE			0x01
#define GX1101_SET_BLIND_DISABLE			0x00
#define GX1101_PO_EN_PARALLEL_DEFAULT	0xac
#define GX1101_PO_EN_SERIAL_DEFAULT		0x7c

#define TUNER_FREQ_LOW_LIM_KHZ_QUICK		915000L	/* Low frequency limit in kHz ,quick mode*/
#define TUNER_FREQ_HIGH_LIM_KHZ_QUICK	2135000L/* High frequency limit in kHz,quick mode */
#define TUNER_FREQ_LOW_LIM_KHZ_DETAIL	915000L	/* Low frequency limit in kHz,detail mode */
#define TUNER_FREQ_HIGH_LIM_KHZ_DETAIL	2135000L/* High frequency limit in kHz,detail mode */
#define KHZ_SCAN_STEP_QUICK				4000    	/* 4M*/
#define KHZ_SCAN_STEP_DETAIL				2000    	/* 2M*/
#define MHZ_XTAL_FREQ						4		/* 4M,Crystal frequency in MHz */


#define GX1101_LOCK_TIMES                   		300     
#define GX1101_SYSCLK_KHZ					90500

#define	GX1101_DISEQC_CMD1                  		0xE0
#define	GX1101_DISEQC_CMD2                   	0x10
#define	GX1101_DISEQC_CMD3                   	0x38
#define	GX1101_DISEQC_CMD4_LNB1			0xF0
#define	GX1101_DISEQC_CMD4_LNB2			0xF4
#define	GX1101_DISEQC_CMD4_LNB3			0xF8
#define	GX1101_DISEQC_CMD4_LNB4			0xFC

//#ifdef DVB_TUNER_MX2118
//#define MX2118_R_DIVIDE					1		/*R = 2 << (MX2118_R_DIVIDE+1)*/
//#define MX2118_FDAC						99
//#define MX2118_DRIVE_LEVEL					0
#define MX2118_M							2
//#define MX2118_CP							3
//#define MX2118_DIAGNOSTIC					0		/*D2-D0*/
//#define MX2118_AGC						0		/*G4-G0*/
//#define MX2118_FREF						(MHZ_XTAL_FREQ*1000 / (2 << (MX2118_R_DIVIDE+1)))			
//#endif

#define SUPER_SEARCH
#define NEEDFIND_NUM		4
typedef struct Check_TPInfo
{
	u16 u16TPFrequency;
	u16 u16SymbolRate;
}Check_TPInfo;

/*******************************************************************************************/
typedef enum _GX1101_LNB_CTRL
{
	LIMIT_WEST	= 0,
	DRIVE_WEST	= 1,
	LIMIT_EAST	= 2,
	DRIVE_EAST	= 3,
	STOP		= 4,
	LIMIT_OFF	= 5,
	STORE_NN	= 6,
	GOTO_NN	= 7
}
GX1101_LNB_CTRL;

/******************************************************/
typedef enum _GX1101_LNB_POLAR 
{
	POL_VERTICAL	= 0,
	POL_HORIZONTAL	= 1
}
GX1101_LNB_POLAR;

typedef enum _GX1101_LNB_TONE
{
	TONE_OFF	= 0,
	TONE_ON		= 1
}
GX1101_LNB_TONE;

typedef enum _GX1101_STATUS
{
	GX1101_NO_ERROR             		= 0, /* No error was reported */
	GX1101_LOCK					= 1, /* GX1101 lock achieved */
	GX1101_NO_LOCK				= 2, /* GX1101 unlock achieved */
	GX1101_NO_FEC_LOCK			= 3, /* FEC lock not achieved */
	GX1101_CB_ERROR				= 4	/* Error encountered in Serial 2-Wire Control Bus function */
}
GX1101_STATUS;
/*******************************************************/

struct _GX1101_LNB_PARAMS	
{
	u32					KHz_tuner_freq;
	GX1101_LNB_POLAR	enPolar;
    	u32					KBd_rate;
};
typedef struct _GX1101_LNB_PARAMS GX1101_LNB_PARAMS;

struct _GX1101_CHANNEL_PARAMS	
{
    u32					KHz_tuner_freq;
    u32					KHz_center_freq;
    u32					KBd_rate;
    GX1101_LNB_POLAR		lnb_polar;
};			
typedef struct _GX1101_CHANNEL_PARAMS GX1101_CHANNEL_PARAMS;


/*******************************************************************************************/
/**
* Define the satellite or transponder auto scan parameter structure.
*/
typedef struct DVB_AutoScanParameter
{
	u16 u16LocalFrequency ;
	/**< This is local frequency. The unit is MHz.
	The normal value for C band is 5150 and for Ku band is 10750.*/
	bool8	b8QuickSearch;		/**< Quick Search(TRUE) / Detailed Search(FALSE) */
}DVB_AutoScanParameter;

typedef struct DVB_TPInfo
{
	u16 u16LocalFrequency;
	/**< This is local frequency. The unit is MHz.
	The normal value for C band is 5150 and for Ku band is 10750.*/
	u16 u16TPFrequency;
	/**< This is transponder frequency. The unit is MHz. */
	u16 u16SymbolRate;
	/**< This is transponder symbol rate. The unit is Kbaud. */
	bool8	b8Polar_H; /**< Horizontal(TRUE) / Vertical(FALSE) */
}DVB_TPInfo;


typedef struct 
{
	unsigned int		HasFinishedTp;	//转发器序号
	unsigned int		Freq;			//MHz,L波段
	unsigned int		Symbol;			//KHz
	unsigned char		Scan_type;
	unsigned int		ProgramCount;
}
SCAN_TP_T;
typedef struct EPTPinf
{
	unsigned int Fre;					//MHz,L波段
	unsigned int baud;					//KHz
	unsigned int benzhen;				//MHz
	unsigned char satno;
	unsigned char lnb;
}EPTPinf_s;

/*******************************************************************************************/
//Initial Funtion
extern GX1101_STATUS gx1101_Initial(void);

//Serial 2-Wire Control Bus Function
extern GX1101_STATUS gx1101_Write_Registers(u8 address, u8 *buffer, u8 no_of_bytes, bool8 cb_tuner_access_on);
extern GX1101_STATUS gx1101_Read_Registers(u8 address, u8 *buffer, u8 no_of_bytes, bool8 cb_tuner_access_on);

// Program Tuner Function
extern GX1101_STATUS gx1101_Open_Tuner_CB(void);
extern GX1101_STATUS gx1101_Close_Tuner_CB(void);
extern GX1101_STATUS gx1101_Program_Tuner(GX1101_LNB_PARAMS lnb_params);

//Blind Scan Function
extern GX1101_STATUS gx1101_Get_Channel_Status(u32 KHz_tuner_freq , GX1101_CHANNEL_PARAMS *channel_params);
extern GX1101_STATUS gx1101_Set_Blind_Enable(u8 OnOff);
extern GX1101_STATUS gx1101_Frontend(GX1101_LNB_PARAMS lnb_params);
extern bool8 Frontend_ScanCarry(GX1101_LNB_PARAMS	*pstLNB_params,
							   DVB_AutoScanParameter *pstAutoScanParameter
							   , u8 u8ProgressStart, u8 u8Step);
extern bool8 Frontend_Autoscan(DVB_AutoScanParameter *pstAutoScanParameter);

//Set Frontend Function
extern GX1101_STATUS gx1101_Set_Symbol_Rate_Reg(u32 KBd_rate);
extern GX1101_STATUS gx1101_Set_Polar(GX1101_LNB_POLAR enPolar);

//Configuration Function
extern GX1101_STATUS gx1101_Cool_Reset(void);
extern GX1101_STATUS gx1101_Hot_Reset(void);
extern GX1101_STATUS gx1101_Output_Type(bool8 type);
extern GX1101_STATUS gx1101_Control_LNB(GX1101_LNB_CTRL Lnb_Control,u8 Record_byte);
extern GX1101_STATUS gx1101_Set_DISEQC_MODE_Reg(GX1101_LNB_POLAR enPolar,GX1101_LNB_TONE enTone);
extern GX1101_STATUS gx1101_DiSEqC_ctrl(u8 lnb)  ; 
extern GX1101_STATUS gx1101_tone(u8 tone);

// Get Status Function
extern u8 gx1101_Get_Strength(void);
extern u8 gx1101_Get_Quality(void);

//Test Function
extern GX1101_STATUS gx1101_Show_Work_State(void);
extern GX1101_STATUS gx1101_Show_Blind_State(void);

/*******************************************************************************************/
//New Function
extern GX1101_STATUS gx1101_Open_FD(bool8 OnOff);
extern GX1101_STATUS gx1101_Test_FD(u32 KBd_rate,bool8 OnOff);
extern GX1101_STATUS gx1101_Test_FD_Few(u32 KBd_rate,bool8 OnOff);
extern GX1101_STATUS gx1101_Test_Program(GX1101_CHANNEL_PARAMS *channel_params);
extern bool8 gx1101_Try_Find_FEC_OK(GX1101_CHANNEL_PARAMS *channel_params);
extern GX1101_STATUS gx1101_Freq_Modify(u32 KBd_rate);
extern GX1101_STATUS gx1101_Try_Test_FD(GX1101_LNB_PARAMS lnb_params,bool8 OnOff);
extern bool8 gx1101_Set_Program(GX1101_LNB_PARAMS  *lnb_params);

extern GX1101_STATUS gx1101_tuner_write_max2118(void);
void calcu_divider_byte(unsigned long FREQn);//MHz
extern void BlindSearch(char speed,u16 Local_Frequency);//Local_Frequency MHz
#endif  /* _GX1101_H */

⌨️ 快捷键说明

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