📄 tuner.h
字号:
#ifndef H_TUNER
#define H_TUNER
#include "chip.h"
/* sharp VG0011 tuner definition */
/* DIVM */
#define RVG0011_DIVM 0
#define FVG0011_N_MSB 0
/* DIVL */
#define RVG0011_DIVL 1
#define FVG0011_N_LSB 1
#define FVG0011_A 2
/* CTRL1 */
#define RVG0011_CTRL1 2
#define FVG0011_N_HSB 3
#define FVG0011_R 4
/* CTRL2 */
#define RVG0011_CTRL2 3
#define FVG0011_CP 5
#define FVG0011_P3 6
#define FVG0011_P2 7
#define FVG0011_P1 8
#define FVG0011_P0 9
/* STATUS */
#define RVG0011_STATUS 4
#define FVG0011_POR 10
#define FVG0011_LOCK 11
#define FVG0011_MA 12
#define VG0011_NBREGS 5
#define VG0011_NBFIELDS 13
/* sharp HZ1184_ tuner definition */
/* DIVM */
#define RHZ1184_DIVM 0
#define FHZ1184_N_MSB 0
/* DIVL */
#define RHZ1184_DIVL 1
#define FHZ1184_N_LSB 1
#define FHZ1184_A 2
/* CTRL1 */
#define RHZ1184_CTRL1 2
#define FHZ1184_N_HSB 3
#define FHZ1184_PD5 4
#define FHZ1184_PD4 5
#define FHZ1184_R 6
/* CTRL2 */
#define RHZ1184_CTRL2 3
#define FHZ1184_CP 7
#define FHZ1184_RE 8
#define FHZ1184_RTS 9
#define FHZ1184_PD3 10
#define FHZ1184_PD2 11
#define FHZ1184_PD1 12
#define FHZ1184_PD0 13
/* STATUS */
#define RHZ1184_STATUS 4
#define FHZ1184_POR 14
#define FHZ1184_LOCK 15
#define FHZ1184_MA 16
#define HZ1184_NBREGS 5
#define HZ1184_NBFIELDS 17
/* Maxim 2116 tuner definition */
/* SUBADR */
#define RMAX2116_SUBADR 0
#define FMAX2116_SUBADR 0
/* NHIGH */
#define RMAX2116_NHIGH 1
#define FMAX2116_DIV2 1
#define FMAX2116_N_MSB 2
/* NLOW */
#define RMAX2116_NLOW 2
#define FMAX2116_N_LSB 3
/* R_CP_VCO */
#define RMAX2116_R_CP_VCO 3
#define FMAX2116_R 4
#define FMAX2116_CP 5
#define FMAX2116_VCO 6
/* FILT_OUT */
#define RMAX2116_FILT_OUT 4
#define FMAX2116_F_OUT 7
/* LPF_DAC */
#define RMAX2116_LPF_DAC 5
#define FMAX2116_ADL 8
#define FMAX2116_ADE 9
#define FMAX2116_DL 10
#define FMAX2116_M 11
/* GC2_DIAG */
#define RMAX2116_GC2_DIAG 6
#define FMAX2116_D 12
#define FMAX2116_G 13
/* STATUS */
#define RMAX2116_STATUS 7
#define FMAX2116_PWR 14
#define FMAX2116_ADC 15
/* FILT_IN */
#define RMAX2116_FILT_IN 8
#define FMAX2116_F_IN 16
#define MAX2116_NBREGS 9
#define MAX2116_NBFIELDS 17
/* SU1200 tuner definition */
/* DIVM */
#define RSU1200_DIVM 0
#define FSU1200_DIVM7 0
#define FSU1200_N_MSB 1
/* DIVL */
#define RSU1200_DIVL 1
#define FSU1200_N_LSB 2
/* CTRL1 */
#define RSU1200_CTRL1 2
#define FSU1200_CTRL1_7 3
#define FSU1200_N_HSB 4
#define FSU1200_PE 5
#define FSU1200_R 6
/* CTRL2 */
#define RSU1200_CTRL2 3
#define FSU1200_C 7
#define FSU1200_XCE 8
#define FSU1200_XCS 9
#define FSU1200_P3 10
#define FSU1200_P2 11
#define FSU1200_P1 12
#define FSU1200_P0 13
/* STATUS */
#define RSU1200_STATUS 4
#define FSU1200_POR 14
#define FSU1200_LOCK 15
#define FSU1200_I 16
#define FSU1200_A 17
#define SU1200_NBREGS 5
#define SU1200_NBFIELDS 18
/* TBMU301 tuner definition */
/* DIVM */
#define RTBMU301_DIVM 0
#define FTBMU301_DIVM7 0
#define FTBMU301_N_MSB 1
/* DIVL */
#define RTBMU301_DIVL 1
#define FTBMU301_N_LSB 2
/* CTRL1 */
#define RTBMU301_CTRL1 2
#define FTBMU301_CTRL1_7 3
#define FTBMU301_N_HSB 4
#define FTBMU301_PE 5
#define FTBMU301_R 6
/* CTRL2 */
#define RTBMU301_CTRL2 3
#define FTBMU301_C 7
#define FTBMU301_XCE 8
#define FTBMU301_XCS 9
#define FTBMU301_P3 10
#define FTBMU301_P2 11
#define FTBMU301_P1 12
#define FTBMU301_P0 13
/* STATUS */
#define RTBMU301_STATUS 4
#define FTBMU301_POR 14
#define FTBMU301_LOCK 15
#define FTBMU301_I 16
#define FTBMU301_A 17
#define TBMU301_NBREGS 5
#define TBMU301_NBFIELDS 18
/* Sharp IX2410 tuner definition */
/* NHIGH */
#define RIX2410_NHIGH 0
#define FIX2410_N_MSB 0
/* NLOW_SDIV */
#define RIX2410_NLOW_SDIV 1
#define FIX2410_N_LSB 1
#define FIX2410_SDIV 2
/* CP_LPF_R */
#define RIX2410_CP_LPF_R 2
#define FIX2410_CP 3
#define FIX2410_PD5 4
#define FIX2410_PD4 5
#define FIX2410_TM 6
#define FIX2410_R 7
/* VCO_LPF */
#define RIX2410_VCO_LPF 3
#define FIX2410_VCO 8
#define FIX2410_RTS 9
#define FIX2410_PD3 10
#define FIX2410_PD2 11
#define FIX2410_DIV 12
#define FIX2410_P0 13
/* STATUS */
#define RIX2410_STATUS 4
#define FIX2410_PWR 14
#define FIX2410_FL 15
#define IX2410_NBREGS 5
#define IX2410_NBFIELDS 16
/* RFMagic STB6000 tuner definition */
/* SUBADR */
/* SUBADR */
#define RSTB6000_SUBADR 0
#define FSTB6000_SUBADR 0
/* ODIV */
#define RSTB6000_ODIV 1
#define FSTB6000_OSCH 1
#define FSTB6000_OCK 2
#define FSTB6000_ODIV 3
#define FSTB6000_OSM 4
/* N */
#define RSTB6000_N 2
#define FSTB6000_N_MSB 5
/* CP_A */
#define RSTB6000_CP_A 3
#define FSTB6000_N_LSB 6
#define FSTB6000_A 7
/* K_R */
#define RSTB6000_K_R 4
#define FSTB6000_K 8
#define FSTB6000_R 9
/* G */
#define RSTB6000_G 5
#define FSTB6000_G 10
/* F */
#define RSTB6000_F 6
#define FSTB6000_F 11
/* FCL */
#define RSTB6000_FCL 7
#define FSTB6000_DLB 12
#define FSTB6000_FCL 13
/* TEST1 */
#define RSTB6000_TEST1 8
#define FSTB6000_TEST1 14
/* TEST2 */
#define RSTB6000_TEST2 9
#define FSTB6000_TEST2 15
/* LPEN */
#define RSTB6000_LPEN 10
#define FSTB6000_LPEN 16
/* XOG */
#define RSTB6000_XOG 11
#define FSTB6000_XOG 17
#define FSTB6000_XOGV 18
/* LD */
#define RSTB6000_LD 12
#define FSTB6000_LD 19
#define STB6000_NBREGS 13
#define STB6000_NBFIELDS 20
/* RFMagic STB6100 tuner definition */
/* SUBADR */
/* LD */
#define RSTB6100_LD 0
#define FSTB6100_LD 0
/* VCO */
#define RSTB6100_VCO 1
#define FSTB6100_OSCH 1
#define FSTB6100_OCK 2
#define FSTB6100_ODIV 3
#define FSTB6100_OSM 4
/* NI */
#define RSTB6100_NI 2
#define FSTB6100_NI 5
/* NF_LSB */
#define RSTB6100_NF_LSB 3
#define FSTB6100_NF_LSB 6
/* K */
#define RSTB6100_K 4
#define FSTB6100_K 7
#define FSTB6100_PSD2 8
#define FSTB6100_NF_MSB 9
/* G */
#define RSTB6100_G 5
#define FSTB6100_GCT 10
#define FSTB6100_G 11
/* F */
#define RSTB6100_F 6
#define FSTB6100_F 12
/* DLB */
#define RSTB6100_DLB 7
#define FSTB6100_DLB 13
/* TEST1 */
#define RSTB6100_TEST1 8
#define FSTB6100_TEST1 14
/* TEST2 */
#define RSTB6100_TEST2 9
#define FSTB6100_FCCK 15
/* LPEN */
#define RSTB6100_LPEN 10
#define FSTB6100_BEN 16
#define FSTB6100_OSCP 17
#define FSTB6100_SYNP 18
#define FSTB6100_LPEN 19
/* TEST3 */
#define RSTB6100_TEST3 11
#define FSTB6100_TEST3 20
#define STB6100_NBREGS 12
#define STB6100_NBFIELDS 21
/* Tuner Sat definition */
/* TUNING_LSB */
#define RTUNERSAT_TUNING_LSB 0
#define FTUNERSAT_N_LSB 0
/* TUNING_MSB */
#define RTUNERSAT_TUNING_MSB 1
#define FTUNERSAT_RDIV 1
#define FTUNERSAT_ODIV 2
#define FTUNERSAT_N_MSB 3
/* CONTROL1 */
#define RTUNERSAT_CONTROL1 2
#define FTUNERSAT_CALVCOSTRT 4
#define FTUNERSAT_DIV4SEL 5
#define FTUNERSAT_PRESC32ON 6
#define FTUNERSAT_CF 7
/* CONTROL2 */
#define RTUNERSAT_CONTROL2 3
#define FTUNERSAT_LCP 8
#define FTUNERSAT_XTALOUT 9
#define FTUNERSAT_XTALON 10
#define FTUNERSAT_CALOFF 11
#define FTUNERSAT_LPT 12
#define FTUNERSAT_RX 13
#define FTUNERSAT_SYN 14
/* CONTROL3 */
#define RTUNERSAT_CONTROL3 4
#define FTUNERSAT_DIVTEST 15
#define FTUNERSAT_CPTEST 16
#define FTUNERSAT_BBGAIN 17
/* STATUS1 */
#define RTUNERSAT_STATUS1 5
#define FTUNERSAT_COMP 18
#define FTUNERSAT_SEL 19
#define FTUNERSAT_LOCK 20
/* STATUS2 */
#define RTUNERSAT_STATUS2 6
#define FTUNERSAT_RON 21
#define FTUNERSAT_RCCA_LOFF 22
#define FTUNERSAT_RC 23
/* STATUS3 */
#define RTUNERSAT_STATUS3 7
#define FTUNERSAT_RDK 24
#define FTUNERSAT_CALTIME 25
#define FTUNERSAT_CALRC_STRT 26
#define TUNERSAT_NBREGS 8
#define TUNERSAT_NBFIELDS 27
/* sharp IX2476 tuner definition */
/* NHIGH */
#define RIX2476_NHIGH 0
#define FIX2476_BG 0
#define FIX2476_N_MSB 1
/* NLOW_SDIV */
#define RIX2476_NLOW_SDIV 1
#define FIX2476_N_LSB 2
#define FIX2476_A 3
/* CP_LPF_R */
#define RIX2476_CP_LPF_R 2
#define FIX2476_CP 4
#define FIX2476_PD5 5
#define FIX2476_PD4 6
#define FIX2476_TM 7
#define FIX2476_RTS 8
#define FIX2476_REF 9
/* VCO_LPF */
#define RIX2476_VCO_LPF 3
#define FIX2476_VCO 10
#define FIX2476_PSC 11
#define FIX2476_PD3 12
#define FIX2476_PD2 13
#define FIX2476_DIV 14
#define FIX2476_P0 15
/* STATUS */
#define RIX2476_STATUS 4
#define FIX2476_PWR 16
#define FIX2476_FL 17
#define IX2476_NBREGS 5
#define IX2476_NBFIELDS 18
typedef enum
{
TUNER_NO_ERR = 0,
TUNER_TYPE_ERR,
TUNER_ACK_ERR
} TUNER_Error_t;
/* structures -------------------------------------------------------------- */
typedef enum
{
TUNER_NULL = 0, /* unknown tuner */
TUNER_VG0011, /* sharp VG0011 tuner */
TUNER_HZ1184, /* sharp HZ1184 nim module */
TUNER_MAX2116, /* maxim 2116 tuner */
TUNER_SU1200, /* philips SU1200 nim module */
TUNER_TBMU301, /* samsung TBMU301 nim module */
TUNER_IX2410, /* Sharp IX2410 tuner */
TUNER_STB6000, /* RF magic STB6000 tuner */
TUNER_STB6100, /* RF magic STB6100 tuner */
TUNER_IX2476 /* sharp IX2476 tuner */
}
TUNER_Model_t;
typedef enum
{
TUNER_IQ_NORMAL = 1,
TUNER_IQ_INVERT = -1
}
TUNER_IQ_t;
typedef struct
{
TUNER_Model_t Model; /* Tuner model */
U32 Reference; /* reference frequency (Hz) */
U32 IF; /* Intermediate frequency (KHz) */
TUNER_IQ_t IQ_Wiring; /* hardware I/Q invertion */
}
TUNER_InitParams_t;
typedef TUNER_InitParams_t *TUNER_Params_t;
/* functions --------------------------------------------------------------- */
STCHIP_Handle_t TunerInit(TUNER_Model_t Model,char *TunerName,U8 TunerI2cAddress,STCHIP_Handle_t RepeaterHost);
TUNER_Error_t TunerSetFrequency(STCHIP_Handle_t hChip,U32 Frequency);
U32 TunerGetFrequency(STCHIP_Handle_t hChip);
TUNER_Error_t TunerSetBandwidth(STCHIP_Handle_t hChip,U32 Bandwidth);
U32 TunerGetBandwidth(STCHIP_Handle_t hChip);
TUNER_Model_t TunerGetModel(STCHIP_Handle_t hChip);
void TunerSetIQ_Wiring(STCHIP_Handle_t hChip, TUNER_IQ_t IQ_Wiring);
TUNER_IQ_t TunerGetIQ_Wiring(STCHIP_Handle_t hChip);
void TunerSetReferenceFreq(STCHIP_Handle_t hChip, U32 Reference);
U32 TunerGetReferenceFreq(STCHIP_Handle_t hChip);
void TunerSetIF_Freq(STCHIP_Handle_t hChip, U32 IF);
U32 TunerGetIF_Freq(STCHIP_Handle_t hChip);
BOOL TunerGetStatus(STCHIP_Handle_t hChip);
TUNER_Error_t TunerWrite(STCHIP_Handle_t hChip);
TUNER_Error_t TunerRead(STCHIP_Handle_t hChip);
TUNER_Error_t TunerTerm(STCHIP_Handle_t hChip);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -