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

📄 stb0899_dvbs2util.h

📁 DVB-S STB0899 source code
💻 H
字号:
#ifndef STB0899_DVBS2UTIL_H
#define STB0899_DVBS2UTIL_H

#include "stb0899_common.h"
#include "stb0899_chip.h"

#define BTR_NCO_BITS    28
#define CRL_NCO_BITS    30

#define CRL_GAIN_SHIFT_OFFSET 11
#define BTR_GAIN_SHIFT_OFFSET 15

#define ESNO_AVE            3
#define ESNO_QUANT          32
#define AVEFRAMES_COARSE    10
#define AVEFRAMES_FINE      20
#define MISS_THRESHOLD      6
#define UWP_THRESHOLD_ACQ   1125
#define UWP_THRESHOLD_TRACK 758
#define UWP_THRESHOLD_SOF   1350
#define SOF_SEARCH_TIMEOUT  1664100

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

typedef enum
{ 
	DVBS2_BPSK,
	DVBS2_QPSK,
	DVBS2_OQPSK,
	DVBS2_PSK8
}FE_DVBS2_Mode_t;
	
typedef enum
{
	FE_DUMMY_PLF,
	FE_QPSK_14,
	FE_QPSK_13,
	FE_QPSK_25,
	FE_QPSK_12,
	FE_QPSK_35,
	FE_QPSK_23,
	FE_QPSK_34,
	FE_QPSK_45,
	FE_QPSK_56,
	FE_QPSK_89,
	FE_QPSK_910,
	FE_8PSK_35,
	FE_8PSK_23,
	FE_8PSK_34,
	FE_8PSK_56,
	FE_8PSK_89,
	FE_8PSK_910,
	FE_16APSK_23,
	FE_16APSK_34,
	FE_16APSK_45,
	FE_16APSK_56,
	FE_16APSK_89,
	FE_16APSK_910,
	FE_32APSK_34,
	FE_32APSK_45,
	FE_32APSK_56,
	FE_32APSK_89,
	FE_32APSK_910
}FE_DVBS2_ModCod_t;
	
typedef enum
{
	FE_LONG_FRAME,
	FE_SHORT_FRAME
}FE_DVBS2_FRAME;

typedef enum
{
	RRC_20,
	RRC_25,
	RRC_35
}FE_DVBS2_RRCAlpha_t;
	
typedef enum
{
	FE_DVBS2_NOAGC,
	FE_DVBS2_AGCOK,
	FE_DVBS2_TIMINGOK,
	FE_DVBS2_NOTIMING,
	FE_DVBS2_NOCARRIER,
	FE_DVBS2_CARRIEROK,
	FE_DVBS2_NOUWP,
	FE_DVBS2_UWPOK,
	FE_DVBS2_NODATA,
	FE_DVBS2_DATAOK	
}FE_DVBS2_State;

typedef struct
{
	u32	LoopBwPercent;
	u32	SymbolRate;
	u32	MasterClock;
	FE_DVBS2_Mode_t Mode;
	u32	Zeta;
	u32 	SymPeakVal;
}FE_DVBS2_LoopBW_Params_t;

typedef struct
{
	u32	Adapt;
	u32	AmplImbEstim;
	u32	PhsImbEstim;
	u32	AmplAdaptLsht;
	u32	PhsAdaptLsht;
}FE_DVBS2_ImbCompInit_Params_t;

typedef struct
{
	S32 	EsNoAve,
		EsNoQuant,
		AveFramesCoarse,
		AveframesFine,
		MissThreshold,
		ThresholdAcq,
		ThresholdTrack,
		ThresholdSof,
		SofSearchTimeout;
}FE_DVBS2_UWPConfig_Params_t;

typedef struct
{
	S32	DvtTable,
		TwoPass,
		AgcGain,
		AgcShift,
		FeLoopShift,
		GammaAcq,
		GammaRhoAcq,
		GammaTrack,
		GammaRhoTrack,
		LockCountThreshold,
		PhaseDiffThreshold;
}FE_DVBS2_CSMConfig_Params_t;

typedef struct
{
	FE_DVBS2_RRCAlpha_t RRCAlpha;
	FE_DVBS2_Mode_t	ModeMode;
	
	S32	SymbolRate,
		MasterClock,
		CarrierFrequency,
		AveFrameCoarse,
		AveFramefine,
		AgcThreshold;
	
	u16	SpectralInv;
} FE_STB0899_DVBS2_InitParams_t;

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;


u32 FE_DVBS2_GetModCod(STCHIP_Handle_t hChip);

S32 FE_DVBS2_GetUWPEsNo(STCHIP_Handle_t hChip, S32 Quant);

u32 FE_DVBS2_GetSymbolRate(STCHIP_Handle_t hChip, u32 MasterClock);

FE_DVBS2_State FE_DVBS2_GetState(STCHIP_Handle_t hChip, int Timeout);

void FE_DVBS2_CSMInitialize(STCHIP_Handle_t hChip, int Pilots, FE_DVBS2_ModCod_t ModCode, u32 SymbolRate, u32 MasterClock);

void FE_DVBS2_InitialCalculations(STCHIP_Handle_t hChip, FE_STB0899_DVBS2_InitParams_t *InitParams);

void FE_DVBS2_Reacquire(STCHIP_Handle_t hChip, FE_DVBS2_ReacquireParams_t * ReacquireParams);

long FE_DVBS2_CarrierWidth(long SymbolRate, FE_DVBS2_RRCAlpha_t Aplha);

#endif

⌨️ 快捷键说明

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