📄 d0370vsb.c
字号:
/* ----------------------------------------------------------------------------
File Name: d0370VSB.c
Description:
stb0370 8VSB demod driver.
Copyright (C) 2004-2006 STMicroelectronics
History:
date:
version:
author:
comment:
Reference:
---------------------------------------------------------------------------- */
/* Includes ---------------------------------------------------------------- */
/* C libs */
#include <string.h>
#include "stlite.h" /* Standard includes */
/* STAPI */
#include "sttbx.h"
#include "stevt.h"
#include "sttuner.h"
/* local to sttuner */
#include "util.h" /* generic utility functions for sttuner */
#include "dbtypes.h" /* data types for databases */
#include "sysdbase.h" /* functions to accesss system data */
#include "ioarch.h" /* I/O for this driver */
#include "ioreg.h" /* I/O for this driver */
#include "chip.h"
/* LLA */
#include "370_VSB_init.h" /* register mappings for the stv0360 */
#include "370_VSB_drv.h" /* misc driver functions */
#include "d0370VSB.h" /* header for this file */
#include "370_VSB_map.h"
#include "tioctl.h" /* data structure typedefs for all the ter ioctl functions */
#define DELAGC_0_VALUE 255
#define DELAGC_1_VALUE 255
#define DELAGC_6_VALUE 128
#define WBAGC_1_VALUE 2
U16 STB0370_VSBAddress[STB0370_VSB_NBREGS] =
{
0xf000,
0xf001,
0xf002,
0xf003,
0xf004,
0xf005,
0xf006,
0xf007,
0xf640,
0xf641,
0xf610,
0xf611,
0xf612,
0xf613,
0xf614,
0xf615,
0xf616,
0xf617,
0xf618,
0xf619,
0xf61c,
0xf010,
0xf011,
0xf012,
0xf013,
0xf014,
0xf015,
0xf016,
0xf017,
0xf018,
0xf019,
0xf01a,
0xf01b,
0xf01c,
0xf01d,
0xf01e,
0xf01f,
0xf020,
0xf021,
0xf022,
0xf023,
0xf024,
0xf025,
0xf026,
0xf027,
0xf028,
0xf029,
0xf02a,
0xf02b,
0xf02c,
0xf02d,
0xf02e,
0xf02f,
0xf030,
0xf031,
0xf032,
0xf033,
0xf034,
0xf035,
0xf036,
0xf037,
0xf038,
0xf039,
0xf03a,
0xf03b,
0xf03c,
0xf03d,
0xf03e,
0xf03f,
0xf040,
0xf041,
0xf042,
0xf043,
0xf044,
0xf045,
0xf046,
0xf047,
0xf048,
0xf049,
0xf04a,
0xf04b,
0xf04c,
0xf04d,
0xf04e,
0xf04f,
0xf050,
0xf051,
0xf052,
0xf053,
0xf054,
0xf055,
0xf056,
0xf057,
0xf058,
0xf059,
0xf05a,
0xf05b,
0xf05c,
0xf05d,
0xf05e,
0xf05f,
0xf060,
0xf061,
0xf062,
0xf063,
0xf064,
0xf065,
0xf066,
0xf067,
0xf068,
0xf069,
0xf06a,
0xf06b,
0xf06c,
0xf06d,
0xf06e,
0xf06f,
0xf070,
0xf071,
0xf072,
0xf073,
0xf074,
0xf075,
0xf076,
0xf077,
0xf078,
0xf079,
0xf07a,
0xf07b,
0xf07c,
0xf07d,
0xf07e,
0xf07f,
0xf080,
0xf081,
0xf082,
0xf083,
0xf084,
0xf085,
0xf086,
0xf087,
0xf088,
0xf089,
0xf08a,
0xf08b,
0xf08c,
0xf08d,
0xf08e,
0xf08f,
0xf090,
0xf091,
0xf092,
0xf093,
0xf094,
0xf095,
0xf096,
0xf097,
0xf098,
0xf099,
0xf09a,
0xf09b,
0xf09c,
0xf09d,
0xf09e,
0xf09f,
0xf0a0,
0xf0a1,
0xf0a2,
0xf0a3,
0xf0a4,
0xf0a5,
0xf0a6,
0xf0a7,
0xf0a8,
0xf0a9,
0xf422,
0xf423,
0xf428,
0xf432
};
U8 STB0370_VSBDefVal[STB0370_VSB_NBREGS]=
{
0x0010, /*R_ID - 0xf000 */
0x0000, /*R_I2C_PAGE - 0xf001 */
0x0032, /*R_I2CRPT1 - 0xf002 */ /*Changed for SER calculation*/
0x0007, /*R_I2CRPT2 - 0xf003 */
0x000a, /*R_CLK_CTRL - 0xf004 */
0x00cd, /*R_STANDBY - 0xf005 */
0x0058, /*R_IO_CTRL - 0xf006 */
0x0004, /*R_GPIO_INFO - 0xf007 */
0x0002, /*R_AD_INTERF - 0xf640 */
0x0008, /*R_TEST_AD_IF - 0xf641 */
0x00c7, /*R_PLL_CTRL - 0xf610 */
0x0008, /*R_PLL_TEST - 0xf611 */ /*Use QAM clock path for AD10 (cut 2.0)*/
0x0000, /*R_NCO_PLL1 - 0xf612 */
0x0000, /*R_NCO_PLL2 - 0xf613 */
0x0000, /*R_NCO_TST_PLL - 0xf614 */
0x0003, /*R_NCO_CTRL - 0xf615 */
0x0000, /*R_NCO_SYNTH_COARSE_FREQ - 0xf616 */
0x0000, /*R_NCO_SYNTH_FINE_FREQ_1 - 0xf617 */
0x0000, /*R_NCO_SYNTH_FINE_FREQ_0 - 0xf618 */
0x0008, /*R_OOB_TUNER_CTRL - 0xf619 */
0x00B4, /*R_AD10_CTRL - 0xf61c *//*select QAM pin i/p and AGC o/p common(cut 2.0)*/
0x0000, /*R_DEMOD_CTRL - 0xf010 */
0x0000, /*R_SYNCCTRL - 0xf011 */
0x0080, /*R_AGCCTRL1 - 0xf012 */
0x0000, /*R_AGCCTRL2 - 0xf013 *//* changed to resolve issue with low signal level*/
0x0072, /*R_AGCPWR_LSB - 0xf014 */
0x00f0, /*R_AGCPWR_MSB - 0xf015 */
0x00ff, /*R_AGCITHUP_LSB - 0xf016 */
0x0007, /*R_AGCITHUP_MSB - 0xf017 */
0x0000, /*R_AGCITHLOW_LSB - 0xf018 */
0x0008, /*R_AGCITHLOW_MSB - 0xf019 */
0x0080, /*R_AGCTH_LSB - 0xf01a */
0x0003, /*R_AGCTH_MSB - 0xf01b */
0x0004, /*R_AGCBWSEL - 0xf01c *//* changed to resolve issue with low signal level,AGC speed*/
0x0001, /*R_TAGCBWSEL - 0xf01d *//* changed to resolve issue with low signal level*/
0x0080, /*R_TST_PWM1 - 0xf01e */
0x0073, /*R_TST_PWM2 - 0xf01f */
0x0000, /*R_TST_PWM3 - 0xf020 */
0x00e0, /*R_AGC_IND_LSB - 0xf021 */
0x00f8, /*R_AGC_IND_MSB - 0xf022 */
0x0003, /*R_AGC_IND_MMSB - 0xf023 */
0x00e2, /*R_VCXOOFFSET1 - 0xf024 */
0x005e, /*R_VCXOOFFSET2 - 0xf025 */
0x0005, /*R_VCXOOFFSET3 - 0xf026 */
0x00b3, /*R_VCXOOFFSET4 - 0xf027 */
0x00ba, /*R_GAINSRC_LSB - 0xf028 */
0x003f, /*R_GAINSRC_MSB - 0xf029 */
0x0000, /*R_VCXOINITV - 0xf02a */
0x0000, /*R_GAIN1ACQ1_LSB - 0xf02b */
0x007d, /*R_GAIN1ACQ1_MSB - 0xf02c */
0x0020, /*R_GAIN1ACQ2_LSB - 0xf02d */
0x00f4, /*R_GAIN1ACQ2_MSB - 0xf02e */
0x0010, /*R_GAIN1TRACK_LSB - 0xf02f */
0x00d8, /*R_GAIN1TRACK_MSB - 0xf030 */
0x0080, /*R_GAIN2ACQ1_LSB - 0xf031 */
0x0080, /*R_GAIN2ACQ1_MSB - 0xf032 */
0x0020, /*R_GAIN2ACQ2_LSB - 0xf033 */
0x0078, /*R_GAIN2ACQ2_MSB - 0xf034 */
0x0020, /*R_GAIN2TRK_LSB - 0xf035 */
0x00e4, /*R_GAIN2TRK_MSB - 0xf036 */
0x0005, /*R_GAIN3ACQ - 0xf037 */
0x0005, /*R_GAIN3TRK - 0xf038 */
0x001b, /*R_VCXOERR_LSB - 0xf039 */
0x00fd, /*R_VCXOERR_MSB - 0xf03a */
0x0000, /*R_VCXOERR_MMSB - 0xf03b */
0x00a7, /*R_TIMLOCKDETECT_LSB - 0xf03c */
0x00e8, /*R_TIMLOCKDETECT_MSB - 0xf03d */
0x0004, /*R_TIMLOCKDETECT_MMSB - 0xf03e */
0x0000, /*R_FREQLOCK_LSB - 0xf03f */
0x0077, /*R_FREQLOCK_MSB - 0xf040 */
0x0001, /*R_FREQLOCK_MMSB - 0xf041 */
0x0000, /*R_TIMINGAGCREF_LSB - 0xf042 */
0x0014, /*R_TIMINGAGCREF_MSB - 0xf043 */
0x004c, /*R_NCOCNST_LSB - 0xf044 */
0x0068, /*R_NCOCNST_MSB - 0xf045 */
0x002f, /*R_NCOCNST_MMSB - 0xf046 */
0x0002, /*R_NCOGAIN1ACQ - 0xf047 */
0x0002, /*R_NCOGAIN1TRACK - 0xf048 */
0x0008, /*R_NCOGAIN2ACQ - 0xf049 */
0x0008, /*R_NCOGAIN2TRACK - 0xf04a */
0x0006, /*R_NCOGAIN3 - 0xf04b */
0x0009, /*R_NCOERR_LSB - 0xf04c */
0x00fe, /*R_NCOERR_MSB - 0xf04d */
0x0001, /*R_NCOERR_MMSB - 0xf04e */
0x005d, /*R_CARLOCKDETECT1_LSB - 0xf04f */
0x00d7, /*R_CARLOCKDETECT1_MSB - 0xf050 */
0x0004, /*R_CARLOCKDETECT1_MMSB - 0xf051 */
0x0001, /*R_CARLOCKDETECT2_LSB - 0xf052 */
0x0051, /*R_CARLOCKDETECT2_MSB - 0xf053 */
0x0000, /*R_CARLOCKDETECT2_MMSB - 0xf054 */
0x0000, /*R_CARRIERLOCKTH_LSB - 0xf055 */
0x0077, /*R_CARRIERLOCKTH_MSB - 0xf056 */
0x00c5, /*R_CARRIERLOCKTH_MMSB - 0xf057 */
0x0000, /*R_CARRIERAGCREF_LSB - 0xf058 */
0x00c2, /*R_CARRIERAGCREF_MSB - 0xf059 */
0x0014, /*R_CARAGCMIXRATIO - 0xf05a */
0x0000, /*R_FSM1 - 0xf05b */
0x0000, /*R_FSM2 - 0xf05c */
0x00ff, /*R_MAINSMUP - 0xf05d */
0x00ff, /*R_EQSMUP - 0xf05e */
0x00ff, /*R_STATEVAL_LSB - 0xf05f */
0x000f, /*R_STATEVAL_MSB - 0xf060 */
0x0090, /*R_STATEVAL_MMSB - 0xf061 */
0x0000, /*R_UPDATEVCXO_LSB - 0xf062 */
0x0000, /*R_UPDATEVCXO_MSB - 0xf063 */
0x008e, /*R_UPDATEVCXO_MMSB - 0xf064 */
0x001a, /*R_MAXNBFRAMERCA - 0xf065 */
0x00c8, /*R_MAXNBFRAMEDD_LSB - 0xf066 */
0x0000, /*R_MAXNBFRAMEDD_MSB - 0xf067 */
0x00ff, /*R_NCO_TIMEOUT_LSB - 0xf068 */
0x00ff, /*R_NCO_TIMEOUT_MSB - 0xf069 */
0x003f, /*R_NCO_TIMEOUT_MMSB - 0xf06a */
0x005a, /*R_DEMSTATUS - 0xf06b */
0x0070, /*R_SYSCTRL - 0xf06c */
0x0000, /*R_SEG_INIT_LSB - 0xf06d */
0x00e1, /*R_SEG_INIT_MSB - 0xf06e */
0x0037, /*R_CENTROIDCALDONE_LSB - 0xf06f */
0x00f1, /*R_CENTROIDCALDONE_MSB - 0xf070 */
0x0000, /*R_CENTROIDOFFSET_LSB - 0xf071 */
0x0000, /*R_CENTROIDOFFSET_MSB - 0xf072 */
0x0040, /*R_FFEGAINTRAIN - 0xf073 */
0x0008, /*R_FFEGAINRCA1 - 0xf074 */
0x0008, /*R_FFEGAINRCA2 - 0xf075 */
0x0010, /*R_FFEGAINDDM1 - 0xf076 */
0x0008, /*R_FFEGAINDDM2 - 0xf077 */
0x0040, /*R_DFEGAINTRAIN - 0xf078 */
0x0020, /*R_DFEGAINRCA1 - 0xf079 */
0x0010, /*R_DFEGAINRCA2 - 0xf07a */
0x0020, /*R_DFEGAINDDM1 - 0xf07b */
0x0020, /*R_DFEGAINDDM2 - 0xf07c */
0x00ca, /*R_SNR_TH_DDM1 - 0xf07d */
0x00ca, /*R_SNR_TH_DDM2 - 0xf07e */
0x00d8, /*R_SNR_TH_PT - 0xf07f */
0x0053, /*R_SNR_TH_RCA1 - 0xf080 */
0x0075, /*R_SNR_TH_RCA2 - 0xf081 */
0x000d, /*R_LEAKFFETRAIN - 0xf082 */
0x0077, /*R_LEAKFFERCA - 0xf083 */
0x0097, /*R_LEAKFFEDDM - 0xf084 */
0x0008, /*R_LEAKDFETRAIN - 0xf085 */
0x0034, /*R_LEAKDFERCA - 0xf086 */
0x0022, /*R_LEAKDFEDDM - 0xf087 */
0x0030, /*R_TRACK_REG - 0xf088 */
0x00b8, /*R_DFE_CTRL - 0xf089 */
0x0000, /*R_TAP_CTRL - 0xf08a */
0x0000, /*R_TAP_POINTER_LSB - 0xf08b */
0x0000, /*R_TAP_POINTER_MSB - 0xf08c */
0x0000, /*R_TAP_GETBYTE - 0xf08d */
0x0000, /*R_TAP_PUTBYTE - 0xf08e */
0x0000, /*R_DECCTRL - 0xf08f */
0x0000, /*R_DECSYNCCTRL - 0xf090 */
0x0000, /*R_SER_LSB - 0xf091 */
0x0000, /*R_SER_MSB - 0xf092 */
0x0089, /*R_SER_PERIOD_LSB - 0xf093 */ /*Changed for BER calculation*/
0x0032, /*R_SER_PERIOD_MSB - 0xf094 */ /*Changed for BER calculation*/
0x002a, /*R_DEC_STATUS - 0xf095 */
0x004e, /*R_SIGNAL_POWER_LSB - 0xf096 */
0x0004, /*R_SIGNAL_POWER_MSB - 0xf097 */
0x000c, /*R_ERROR_POWER_LSB - 0xf098 */
0x0000, /*R_ERROR_POWER_MSB - 0xf099 */
0x000b, /*R_BERCTRL - 0xf09a */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -