📄 rf_tuner_dvb.c
字号:
/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Copyright (c) Afe Labs 2005
All rights are reserved. Reproduction in whole or in parts is
prohibited without the prior written consent of the copyright owner.
----------------------------------------------------------------------------------------------------
Module: CAMTUNER.C
Purpose: Philips's CAMTuner programming procedure
Version: 1.6
Compiler: Keil 8051 C Compiler v6.20
Reference:
[1] Keil C51 Compiler User's Guide 01.97, Keil Software, Inc.
[2] SHARP VA1T1EF6082, Tuner module for DVB-T application, : 01.09.2005
[3] TD(M)1300AL(MK2), Tuner module for DVB-T application, Rev c : 30.06.2004
[4] TD(M)1300AL(MK3), Tuner module for DVB-T application, Rev c : 30.06.2004
[5] FMD1216ME, Tuner module for DVB-T & B/G,D/K,I,L/L' & FM Radio application, Rev a : 17.06.2004
[6] FQD1216ME, Tuner module for DVB-T & B/G,D/K,I,L/L' application, Rev a : 17.06.2004
----------------------------------------------------------------------------------------------------
Modification:
Date Author Reason (what and why)
July 10 '05 Laser Original.
Sep. 09 '28 Laser Add Sharp Tuner support
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
#define _CAMTUNER_C_
/* ------------------------------------
Header Files
------------------------------------ */
#include "datatype.h"
#include "RF_Tuner_DVB.h"
#include "zl10353.h"
/* ------------------------------------
Macro Definitions
------------------------------------ */
/* ------------------------------------
Type Definitions
------------------------------------ */
/* ------------------------------------
Variables Definitions
------------------------------------ */
/* ------------------------------------
Function Prototypes
------------------------------------ */
/*************************************************************************
Subject: TDA6034_SetRF
Function: TDA6035_SetRF
Parmeter: Freq in MHz
Freq here mean "pure RF" rather than "RF+IF"
BW = BW_6_MHz, BW_7_MHz, BW_8_MHz
Return : 0(FAIL) mean I2C fail, 1(PASS) mean I2C success
Remark: This function is using for TDM1300AL MK2 Tuner
**************************************************************************/
void Set_Digital_TUNER ( double Freq, unsigned char BW, U8 * CONFIG )
{
unsigned int value;
value = ( unsigned int ) ( ( Freq + DIGITAL_TUNER_IF ) * 6 );
CONFIG[0]=RF_Tuner_Address;
//DB1
CONFIG[1] = ( unsigned char ) ( value >> 8 );
//DB2
CONFIG[2] = ( unsigned char ) ( value );
if((BW==BW_6_MHz)||(BW==BW_7_MHz))
{
if ( ( Freq + DIGITAL_TUNER_IF ) < 180 )
{
CONFIG[3] = 0xBC;
CONFIG[4] = 0x01;
}
else if ( ( Freq + DIGITAL_TUNER_IF ) < 197 )
{
CONFIG[3] = 0xF6;
CONFIG[4] = 0x01;
}
else if ( ( Freq + DIGITAL_TUNER_IF ) < 366 )
{
CONFIG[3] = 0xBC;
CONFIG[4] = 0x02;
}
else if ( ( Freq + DIGITAL_TUNER_IF ) < 484 )
{
CONFIG[3] = 0xF4;
CONFIG[4] = 0x02;
}
else if ( ( Freq + DIGITAL_TUNER_IF ) < 662 )
{
CONFIG[3] = 0xBC;
CONFIG[4] = 0x04;
}
else if ( ( Freq + DIGITAL_TUNER_IF ) < 840 )
{
CONFIG[3] = 0xF4;
CONFIG[4] = 0x04;
}
else
{
CONFIG[3]= 0xFC;
CONFIG[4] = 0x04;
}
}
else if(BW==BW_8_MHz)
{
if ( ( Freq + DIGITAL_TUNER_IF ) < 366 )
{
CONFIG[3] = 0xFC;
CONFIG[4] = 0x0A;
}
else if ( ( Freq + DIGITAL_TUNER_IF ) < 484 )
{
CONFIG[3] = 0xF4;
CONFIG[4] = 0x02;
}
else if ( ( Freq + DIGITAL_TUNER_IF ) < 662 )
{
CONFIG[3] = 0xBC;
CONFIG[4] = 0x0C;
}
else if ( ( Freq + DIGITAL_TUNER_IF ) < 840)
{
CONFIG[3] = 0xF4;
CONFIG[4] = 0x0C;
}
else
{
CONFIG[3] = 0xFC;
CONFIG[4] = 0x0C;
}
}
switch ( BW )
{
case BW_6_MHz:
CLRBIT( CONFIG[4], 3 );
break;
case BW_7_MHz:
CLRBIT( CONFIG[4], 3 );
break;
case BW_8_MHz:
SETBIT( CONFIG[4], 3 );
break;
}
printf("\r\n %bx %bx %bx %bx %bx",CONFIG[0],CONFIG[1],CONFIG[2],CONFIG[3],CONFIG[4]);
}
#undef _CAMTUNER_C_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -