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

📄 drv0297.c

📁 st7710的tuner标准驱动
💻 C
📖 第 1 页 / 共 5 页
字号:
/*----------------------------------------------------------------------------
File Name   : drv0297.c (was drv0299.c)

Description : STV0297 front-end driver routines.

Copyright (C) 1999-2001 STMicroelectronics

   date: 01-October-2001
version: 3.2.0
 author: from STV0299 and MB validation drivers.
comment: Write for multi-instance/multi-FrontEnd.

Revision History:

Reference:
    ST API Definition "TUNER Driver API" DVD-API-06
----------------------------------------------------------------------------*/


/* Includes ---------------------------------------------------------------- */

/* C libs */
#include <string.h>
#include <stdlib.h> /* for abs() */

/* STAPI common includes */
#include "stlite.h"                     /* Standard includes */
#include "stddefs.h"

/* STAPI */
#include "sttuner.h"
#include "sti2c.h"
#include "stcommon.h"
#include "sttbx.h"
#include "stevt.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 "reg0297.h"    /* register mappings for the stv0297 */
#include "d0297.h"      /* top level header for this driver */

#include "drv0297.h"    /* header for this file */


/* defines ----------------------------------------------------------------- */

#define STV0297_DEMOD_WAITING_TIME          5   /* In ms */
#define STV0297_DEMOD_TRACKING_LOCK         5
#define STV0297_CARRIER_SEARCH_A
#define STV0297_DATA_SEARCH_A
#define STV0297_RELOAD_DEMOD_REGISTER

#define STV0297_FAST_SWEEP_SPEED            750
#define STV0297_SLOW_SWEEP_SPEED            400

#define STV0297_SYMBOLRATE_LEVEL            3000000 /* When SR < STV0297_SYMBOLRATE_LEVEL, Sweep = Sweep/2 */

/* private types ----------------------------------------------------------- */


/* constants --------------------------------------------------------------- */

/* Current LLA revision */
static ST_Revision_t Revision297  = " STV0297-LLA_REL_32.02(GUI) ";

extern U16 Address[];
extern U8 DefVal[];




/* Common initialization for all tuners */
/* ==================================== */

const U8 QAM16[] =
    {
    R0297_EQU_0,           0x08,
    R0297_EQU_1,           0x58,
    R0297_CTRL_8,          0x08,
    R0297_DEINT_SYNC_0,    0x00,
    R0297_BERT_0,          0x84,
    0x00
    };

const U8 QAM32[] =
    {
    R0297_EQU_0,           0x18,
    R0297_EQU_1,           0x58,
    R0297_CTRL_8,          0x00,
    R0297_DEINT_SYNC_0,    0x02,
    R0297_BERT_0,          0x85,
    0x00
    };

const U8 QAM64[] =
    {
    R0297_EQU_0,           0x48,
    R0297_EQU_1,           0x58,
    R0297_CTRL_8,          0x00,
    R0297_DEINT_SYNC_0,    0x02,
    R0297_BERT_0,          0x85,
    0x00
    };

const U8 QAM128[] =
    {
    R0297_EQU_0,           0x29,
    R0297_EQU_1,           0x89,
    R0297_CTRL_8,          0x00,
    R0297_DEINT_SYNC_0,    0x00,
    R0297_BERT_0,          0x84,
    0x00
    };

const U8 QAM256[] =
    {
    R0297_EQU_0,           0x39,
    R0297_EQU_1,           0x69,
    R0297_CTRL_8,          0x08,
    R0297_DEINT_SYNC_0,    0x00,
    R0297_BERT_0,          0x85,
    0x00
    };

/* Initialization of TDBE1 */
/* ======================= */

const U8 QAM16_TDBE1[] =
    {
    R0297_DELAGC_0,        0xFF,
    R0297_DELAGC_1,        0x33,
    R0297_DELAGC_2,        0xF4,
    R0297_DELAGC_3,        0x44,
    R0297_DELAGC_4,        0x29,
    R0297_DELAGC_5,        0x33,
    R0297_DELAGC_6,        0x80,
    R0297_DELAGC_7,        0x6F,
    R0297_DELAGC_8,        0xDC,
    R0297_WBAGC_1,         0xE5,
    R0297_WBAGC_2,         0x2F,
    R0297_WBAGC_3,         0x00,
    R0297_WBAGC_4,         0xC4,
    R0297_WBAGC_5,         0x00,
    R0297_WBAGC_6,         0x00,
    R0297_WBAGC_9,         0x09,
    R0297_WBAGC_10,        0x66,
    R0297_WBAGC_11,        0xE6,
    R0297_STLOOP_2,        0x30,
    R0297_STLOOP_3,        0x06,
    R0297_STLOOP_9,        0x08,
    R0297_STLOOP_10,       0x5E,
    R0297_STLOOP_11,       0x04,
    R0297_CRL_1,           0x49,
    R0297_CRL_2,           0x0B,
    R0297_CRL_9,           0x0F,
    R0297_CRL_10,          0x03,
    R0297_PMFAGC_0,        0xFF,
    R0297_PMFAGC_1,        0x04,
    R0297_PMFAGC_2,        0x00,
    R0297_PMFAGC_3,        0x00,
    R0297_PMFAGC_4,        0x0C,
    0x00
    };

const U8 QAM32_TDBE1[] =
    {
    R0297_DELAGC_0,         0xFF,
    R0297_DELAGC_1,         0x33,
    R0297_DELAGC_2,         0xEB,
    R0297_DELAGC_3,         0x44,
    R0297_DELAGC_4,         0x29,
    R0297_DELAGC_5,         0x33,
    R0297_DELAGC_6,         0x80,
    R0297_DELAGC_7,         0x6C,
    R0297_DELAGC_8,         0x33,
    R0297_WBAGC_1,          0x4A,
    R0297_WBAGC_2,          0x2D,
    R0297_WBAGC_3,          0x00,
    R0297_WBAGC_4,          0xC4,
    R0297_WBAGC_5,          0x00,
    R0297_WBAGC_6,          0x00,
    R0297_WBAGC_9,          0x09,
    R0297_WBAGC_10,         0x0A,
    R0297_WBAGC_11,         0xF7,
    R0297_STLOOP_2,         0x30,
    R0297_STLOOP_3,         0x08,
    R0297_STLOOP_9,         0x08,
    R0297_STLOOP_10,        0x1E,
    R0297_STLOOP_11,        0x04,
    R0297_CRL_1,            0x49,
    R0297_CRL_2,            0x05,
    R0297_CRL_9,            0x00,
    R0297_CRL_10,           0x03,
    R0297_PMFAGC_0,         0xFF,
    R0297_PMFAGC_1,         0x84,
    R0297_PMFAGC_2,         0x00,
    R0297_PMFAGC_3,         0x00,
    R0297_PMFAGC_4,         0x0C,
    0x00
    };

const U8 QAM64_TDBE1[] =
    {
    R0297_DELAGC_0,        0xFF,
    R0297_DELAGC_1,        0x33,
    R0297_DELAGC_2,        0xE5,
    R0297_DELAGC_3,        0x44,
    R0297_DELAGC_4,        0x29,
    R0297_DELAGC_5,        0x33,
    R0297_DELAGC_6,        0x80,
    R0297_DELAGC_7,        0x6C,
    R0297_DELAGC_8,        0x6E,
    R0297_WBAGC_1,         0x9F,
    R0297_WBAGC_2,         0x20,
    R0297_WBAGC_3,         0x18,
    R0297_WBAGC_4,         0x80,
    R0297_WBAGC_5,         0x00,
    R0297_WBAGC_6,         0x00,
    R0297_WBAGC_9,         0x12,
    R0297_WBAGC_10,        0x51,
    R0297_WBAGC_11,        0xF8,
    R0297_STLOOP_2,        0x30,
    R0297_STLOOP_3,        0x06,
    R0297_STLOOP_9,        0x08,
    R0297_STLOOP_10,       0x1E,
    R0297_STLOOP_11,       0x04,
    R0297_CRL_1,           0x49,
    R0297_CRL_2,           0x05,
    R0297_CRL_9,           0x00,
    R0297_CRL_10,          0x03,
    R0297_PMFAGC_0,        0xFF,
    R0297_PMFAGC_1,        0x04,
    R0297_PMFAGC_2,        0x00,
    R0297_PMFAGC_3,        0x00,
    R0297_PMFAGC_4,        0x00,
    0x00
    };

const U8 QAM128_TDBE1[] =
    {
    R0297_DELAGC_0,        0xFF,
    R0297_DELAGC_1,        0x33,
    R0297_DELAGC_2,        0xE5,
    R0297_DELAGC_3,        0x44,
    R0297_DELAGC_4,        0x29,
    R0297_DELAGC_5,        0x33,
    R0297_DELAGC_6,        0x80,
    R0297_DELAGC_7,        0x60,
    R0297_DELAGC_8,        0x00,
    R0297_WBAGC_1,         0xED,
    R0297_WBAGC_2,         0x2F,
    R0297_WBAGC_3,         0x00,
    R0297_WBAGC_4,         0xC4,
    R0297_WBAGC_5,         0x00,
    R0297_WBAGC_6,         0x00,
    R0297_WBAGC_9,         0x09,
    R0297_WBAGC_10,        0x14,
    R0297_WBAGC_11,        0xFE,
    R0297_STLOOP_2,        0x30,
    R0297_STLOOP_3,        0x06,
    R0297_STLOOP_9,        0x08,
    R0297_STLOOP_10,       0x5E,
    R0297_STLOOP_11,       0x04,
    R0297_CRL_1,           0x49,
    R0297_CRL_2,           0x0B,
    R0297_CRL_9,           0x0F,
    R0297_CRL_10,          0x03,
    R0297_PMFAGC_0,        0xFF,
    R0297_PMFAGC_1,        0x04,
    R0297_PMFAGC_2,        0x00,
    R0297_PMFAGC_3,        0x00,
    R0297_PMFAGC_4,        0x0C,
    0x00
    };

const U8 QAM256_TDBE1[] =
    {
    R0297_DELAGC_0,        0xFF,
    R0297_DELAGC_1,        0x33,
    R0297_DELAGC_2,        0xE5,
    R0297_DELAGC_3,        0x44,
    R0297_DELAGC_4,        0x29,
    R0297_DELAGC_5,        0x33,
    R0297_DELAGC_6,        0x80,
    R0297_DELAGC_7,        0x6C,
    R0297_DELAGC_8,        0x42,
    R0297_WBAGC_1,         0xFF,
    R0297_WBAGC_2,         0x2F,
    R0297_WBAGC_3,         0x00,
    R0297_WBAGC_4,         0xC4,
    R0297_WBAGC_5,         0x00,
    R0297_WBAGC_6,         0x00,
    R0297_WBAGC_9,         0x09,
    R0297_WBAGC_10,        0x76,
    R0297_WBAGC_11,        0xFE,
    R0297_STLOOP_2,        0x30,
    R0297_STLOOP_3,        0x06,
    R0297_STLOOP_9,        0x08,
    R0297_STLOOP_10,       0x5E,
    R0297_STLOOP_11,       0x04,
    R0297_CRL_1,           0x49,
    R0297_CRL_2,           0x0B,
    R0297_CRL_9,           0x0F,
    R0297_CRL_10,          0x03,
    R0297_PMFAGC_0,        0xFF,
    R0297_PMFAGC_1,        0x04,
    R0297_PMFAGC_2,        0x00,
    R0297_PMFAGC_3,        0x00,
    R0297_PMFAGC_4,        0x00,
    0x00
    };

/* Initialization of MT2040 */
/* ======================== */

const U8 QAM16_MT2040[] =
    {
    R0297_DELAGC_0,        0xF9,
    R0297_DELAGC_1,        0x6B,
    R0297_DELAGC_2,        0xA6,
    R0297_DELAGC_3,        0x17,
    R0297_DELAGC_4,        0x29,
    R0297_DELAGC_5,        0x6C,
    R0297_DELAGC_6,        0x80,
    R0297_DELAGC_7,        0x64,
    R0297_DELAGC_8,        0xB8,
    R0297_WBAGC_1,         0xE4,
    R0297_WBAGC_2,         0x3B,
    R0297_WBAGC_3,         0x00,
    R0297_WBAGC_4,         0x10,
    R0297_WBAGC_5,         0x00,
    R0297_WBAGC_6,         0x00,
    R0297_WBAGC_9,         0x27,
    R0297_WBAGC_10,        0x66,
    R0297_WBAGC_11,        0xE6,
    R0297_STLOOP_2,        0x30,
    R0297_STLOOP_3,        0x06,
    R0297_STLOOP_9,        0x08,
    R0297_STLOOP_10,       0x5E,
    R0297_STLOOP_11,       0x04,
    R0297_CRL_1,           0x49,
    R0297_CRL_2,           0x0B,
    R0297_CRL_9,           0x05,
    R0297_CRL_10,          0x03,
    R0297_PMFAGC_0,        0xFF,
    R0297_PMFAGC_1,        0x04,
    R0297_PMFAGC_2,        0x00,
    R0297_PMFAGC_3,        0x00,
    R0297_PMFAGC_4,        0x0C,
    0x00
    };

const U8 QAM32_MT2040[] =
    {
    R0297_DELAGC_0,        0xF9,
    R0297_DELAGC_1,        0x6B,
    R0297_DELAGC_2,        0xA6,
    R0297_DELAGC_3,        0x17,
    R0297_DELAGC_4,        0x29,
    R0297_DELAGC_5,        0x6C,
    R0297_DELAGC_6,        0x80,
    R0297_DELAGC_7,        0x6D,
    R0297_DELAGC_8,        0x6D,
    R0297_WBAGC_1,         0xF6,
    R0297_WBAGC_2,         0x3B,
    R0297_WBAGC_3,         0x00,
    R0297_WBAGC_4,         0x10,
    R0297_WBAGC_5,         0x00,
    R0297_WBAGC_6,         0x00,
    R0297_WBAGC_9,         0x27,
    R0297_WBAGC_10,        0xFF,
    R0297_WBAGC_11,        0xFF,
    R0297_STLOOP_2,        0x30,
    R0297_STLOOP_3,        0x08,
    R0297_STLOOP_9,        0x08,
    R0297_STLOOP_10,       0x5E,
    R0297_STLOOP_11,       0x04,
    R0297_CRL_1,           0x49,
    R0297_CRL_2,           0x05,
    R0297_CRL_9,           0x0F,
    R0297_CRL_10,          0x03,
    R0297_PMFAGC_0,        0xFF,
    R0297_PMFAGC_1,        0x04,
    R0297_PMFAGC_2,        0x00,
    R0297_PMFAGC_3,        0x00,
    R0297_PMFAGC_4,        0x0C,
    0x00
    };

const U8 QAM64_MT2040[] =
    {
    R0297_DELAGC_0,        0xF9,
    R0297_DELAGC_1,        0x6B,
    R0297_DELAGC_2,        0xA6,
    R0297_DELAGC_3,        0x17,
    R0297_DELAGC_4,        0x29,
    R0297_DELAGC_5,        0x6B,
    R0297_DELAGC_6,        0x80,
    R0297_DELAGC_7,        0x66,
    R0297_DELAGC_8,        0x9B,
    R0297_WBAGC_1,         0xEA,
    R0297_WBAGC_2,         0x33,
    R0297_WBAGC_3,         0x00,
    R0297_WBAGC_4,         0xFF,
    R0297_WBAGC_5,         0x00,
    R0297_WBAGC_6,         0x00,
    R0297_WBAGC_9,         0x04,
    R0297_WBAGC_10,        0x51,
    R0297_WBAGC_11,        0xF8,
    R0297_STLOOP_2,        0x30,
    R0297_STLOOP_3,        0x06,
    R0297_STLOOP_9,        0x08,
    R0297_STLOOP_10,       0x5E,
    R0297_STLOOP_11,       0x04,
    R0297_CRL_1,           0x49,
    R0297_CRL_2,           0x0B,

⌨️ 快捷键说明

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