📄 demod_.h
字号:
//----------------------------------
//----------------------------------
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 + -