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

📄 devtuner.h

📁 主要用于液晶电视解码,内置51单片机,全部代码用C编写,编译环境为KEILC
💻 H
字号:
/******************************************************************************
 Copyright (c) 2005 MStar Semiconductor, Inc.
 All rights reserved.

 [Module Name]: DevTuner.c
 [Date]:        30-JUN-2004
 [Comment]:
   TV tuner subroutines.
 [Reversion History]:
*******************************************************************************/
#ifndef _DEVTUNER_H_
#define _DEVTUNER_H_
#ifdef _DEVTUNER_C_
#define _DEVTUNERDEC_
#else
#define _DEVTUNERDEC_ extern
#endif

//-----------------------------------------
#if (TUNER_TYPE==TUNER_XUGUANG_JS_6H1_111)
#define TN_IF_I2C_ADDR	0x86
#define TN_PROG_I2C_ADDR    0xC0
#define TN_SWITCHING_SUBADDR 0x00
#define TN_ADJUST_SUBADDR 0x01
#define TN_DATA_SUBADDR 0x02

#define SwitchDataPAL	0xd6
#define AdjustDataPAL	0x70

#define SwitchDataSECAM	0xC6
#define AdjustDataSECAM	0x70
#define SwitchDataNTSC	0x16
#define AdjustDataNTSC	0x30
////////////////////////////
// Band Switching Byte
////////////////////////////
#define TN_CTL_BYTE		 0xC0
#define TN_LOW_BAND      0x01
#define TN_MID_BAND      0x02
#define TN_HIGH_BAND     0x0C

////////////////////////////
// sound control byte
////////////////////////////
#define SoundPALI		0x0E
#define SoundPALDK		0x0F
#define SoundPALBG		0x0D
#define SoundPALM		0x0C
#define SoundNTSC		0x0C
#define SoundSECAML		0x0A

#define TN_READ_AFCWIN     _BIT7


#define TN_FREQ_SS       	50//62.5  // kHz  50.0
#define TN_FREQ_IF        	38//38.9//45.75 // MHz

#define STEP_100K       2
#define STEP_200K       4
#define STEP_500K       10
#define STEPS_1M		20

////////////////////////////////
// TDA9886 Read Mode
////////////////////////////////
#define TN_READ_AFCWIN     _BIT7
#define TN_READ_VIFL       _BIT6
#define TN_READ_FMIFL      _BIT5
#define TN_READ_AFC4       _BIT4
#define TN_READ_AFC3       _BIT3
#define TN_READ_AFC2       _BIT2
#define TN_READ_AFC1       _BIT1
#define TN_READ_PONR       _BIT0

#define TN_READ_AFC    (TN_READ_AFC1 | TN_READ_AFC2 | TN_READ_AFC3 | TN_READ_AFC4)

//-----------------------------------------
#elif (TUNER_TYPE==TUNER_PTI_5PF17M)
#define TN_IF_I2C_ADDR	0x86
#define TN_PROG_I2C_ADDR    0xC0
#define TN_SWITCHING_SUBADDR 0x00
#define TN_ADJUST_SUBADDR 0x01
#define TN_DATA_SUBADDR 0x02

#define SwitchDataPAL	0x56
#define AdjustDataPAL	0x70

#define SwitchDataSECAM	0x46
#define AdjustDataSECAM	0x70

#define SwitchDataNTSC	0x16
#define AdjustDataNTSC	0x30

/*
#define SwitchDataPAL	0xd6
#define AdjustDataPAL	0x70

#define SwitchDataSECAM	0xC6
#define AdjustDataSECAM	0x70

#define SwitchDataNTSC	0x16
#define AdjustDataNTSC	0x30
*/
////////////////////////////
// Band Switching Byte
////////////////////////////
#define TN_CTL_BYTE		0xC0
#define TN_LOW_BAND      0x01
#define TN_MID_BAND       0x02
#define TN_HIGH_BAND     0x08//0x08

////////////////////////////
// sound control byte
////////////////////////////
#define SoundPALI		0x8A
#define SoundPALDK		0x8B
#define SoundPALBG		0x89
#define SoundPALM		0x88
#define SoundNTSC		0x88

#define TN_READ_AFCWIN     _BIT7

#define TN_FREQ_SS       	50//62.5  // kHz  50.0
#define TN_FREQ_IF        	38.9//45.75 // MHz

#define STEP_100K       2
#define STEP_200K       4
#define STEP_500K       10
#define STEPS_1M		20
////////////////////////////////
// TDA9886 Read Mode
////////////////////////////////
#define TN_READ_AFCWIN     _BIT7
#define TN_READ_VIFL       _BIT6
#define TN_READ_FMIFL      _BIT5
#define TN_READ_AFC4       _BIT4
#define TN_READ_AFC3       _BIT3
#define TN_READ_AFC2       _BIT2
#define TN_READ_AFC1       _BIT1
#define TN_READ_PONR       _BIT0

#define TN_READ_AFC    (TN_READ_AFC1 | TN_READ_AFC2 | TN_READ_AFC3 | TN_READ_AFC4)

//-----------------------------------------
//-----------------------------------------
#elif (TUNER_TYPE==TUNER_XUGUANG_VFT_5A_118)
#define TN_IF_I2C_ADDR	0x86
#define TN_PROG_I2C_ADDR    0xC0
#define TN_SWITCHING_SUBADDR 0x00
#define TN_ADJUST_SUBADDR 0x01
#define TN_DATA_SUBADDR 0x02

#define SwitchDataPAL	0xd6
#define AdjustDataPAL	0x70

#define SwitchDataSECAM	0xC6
#define AdjustDataSECAM	0x70

#define SwitchDataNTSC	0x16
#define AdjustDataNTSC	0x30
////////////////////////////
// Band Switching Byte
////////////////////////////
#define TN_CTL_BYTE		 0xC0
#define TN_LOW_BAND      0x01
#define TN_MID_BAND       0x02
#define TN_HIGH_BAND     0x08
#define SoundSECAML		0x0A

////////////////////////////
// sound control byte
////////////////////////////
#define SoundPALI		0x40
#define SoundPALDK		0xC0
#define SoundPALBG		0x80
#define SoundPALM		0x0C
#define SoundNTSC		0x0C

#define TN_READ_AFCWIN     _BIT7

#define TN_FREQ_SS       	50//62.5  // kHz  50.0
#define TN_FREQ_IF        	38//38.9//45.75 // MHz

#define STEP_100K       2
#define STEP_200K       4
#define STEP_500K       10
#define STEPS_1M		20

////////////////////////////////
// TDA9886 Read Mode
////////////////////////////////
#define TN_READ_AFCWIN     _BIT7
#define TN_READ_VIFL       _BIT6
#define TN_READ_FMIFL      _BIT5
#define TN_READ_AFC4       _BIT4
#define TN_READ_AFC3       _BIT3
#define TN_READ_AFC2       _BIT2
#define TN_READ_AFC1       _BIT1
#define TN_READ_PONR       _BIT0

#define TN_READ_AFC    (TN_READ_AFC1 | TN_READ_AFC2 | TN_READ_AFC3 | TN_READ_AFC4)

#elif (TUNER_TYPE==TUNER_XF_6A)
#define TN_IF_I2C_ADDR	0x86
#define TN_PROG_I2C_ADDR    0xC0
#define TN_SWITCHING_SUBADDR 0x00
#define TN_ADJUST_SUBADDR 0x01
#define TN_DATA_SUBADDR 0x02

#define SwitchDataPAL	0xD6
#define AdjustDataPAL	0x70

#define SwitchDataSECAM	0x46   //0xC6  Nelson
#define AdjustDataSECAM	0x70

#define SwitchDataNTSC	0xD6   //0x96  Nelson
#define AdjustDataNTSC	0x70   //0x30
////////////////////////////
// Band Switching Byte
////////////////////////////
#define TN_CTL_BYTE		0xC0
#define TN_LOW_BAND      0x01
#define TN_MID_BAND       0x02
#define TN_HIGH_BAND     0x08

////////////////////////////
// sound control byte
////////////////////////////
#define SoundPALI		0x0A
#define SoundPALDK		0x0B
#define SoundPALBG		0x09
#define SoundPALM		0x0C
#define SoundNTSC		0x08
#define SoundSECAML		0x4B

#define TN_READ_AFCWIN     _BIT7

#define TN_FREQ_SS       	50//62.5  // kHz  50.0
#define TN_FREQ_IF        	38.9//45.75 // MHz

#define STEP_100K       2
#define STEP_200K       4
#define STEP_500K       10
#define STEPS_1M	  20

////////////////////////////////
// TDA9886 Read Mode
////////////////////////////////
#define TN_READ_AFCWIN     _BIT7
#define TN_READ_VIFL       _BIT6
#define TN_READ_FMIFL      _BIT5
#define TN_READ_AFC4       _BIT4
#define TN_READ_AFC3       _BIT3
#define TN_READ_AFC2       _BIT2
#define TN_READ_AFC1       _BIT1
#define TN_READ_PONR       _BIT0

#define TN_READ_AFC    (TN_READ_AFC1 | TN_READ_AFC2 | TN_READ_AFC3 | TN_READ_AFC4)

#elif (TUNER_TYPE==TUNER_LG_TALN_Z200T)
#define TN_IF_I2C_ADDR	0x86
#define TN_PROG_I2C_ADDR    0xC0
#define TN_SWITCHING_SUBADDR 0x00
#define TN_ADJUST_SUBADDR 0x01
#define TN_DATA_SUBADDR 0x02

#define SwitchDataPAL	0xd6
#define AdjustDataPAL	0x70

#define SwitchDataSECAM	0xC6
#define AdjustDataSECAM	0x70

#define SwitchDataNTSC	0x16
#define AdjustDataNTSC	0x30
////////////////////////////
// Band Switching Byte
////////////////////////////
#define TN_CTL_BYTE		 0xC0
#define TN_LOW_BAND      0x01
#define TN_MID_BAND       0x02
#define TN_HIGH_BAND     0x08

////////////////////////////
// sound control byte
////////////////////////////
#define SoundPALI		0x4A
#define SoundPALDK		0x4B
#define SoundPALBG		0x49
#define SoundPALM		0x48
#define SoundNTSC		0x48
#define SoundSECAML		0x0A

#define TN_READ_AFCWIN     _BIT7

#define TN_FREQ_SS       	50//62.5  // kHz  50.0
#define TN_FREQ_IF        	38.9//45.75 // MHz

#define STEP_100K       2
#define STEP_200K       4
#define STEP_500K       10
#define STEPS_1M		20

////////////////////////////////
// TDA9886 Read Mode
////////////////////////////////
#define TN_READ_AFCWIN     _BIT7
#define TN_READ_VIFL       _BIT6
#define TN_READ_FMIFL      _BIT5
#define TN_READ_AFC4       _BIT4
#define TN_READ_AFC3       _BIT3
#define TN_READ_AFC2       _BIT2
#define TN_READ_AFC1       _BIT1
#define TN_READ_PONR       _BIT0

#define TN_READ_AFC    (TN_READ_AFC1 | TN_READ_AFC2 | TN_READ_AFC3 | TN_READ_AFC4)
//-----------------------------------------
#elif (TUNER_TYPE==TUNER_LG_TALN_S200T)
#define TN_IF_I2C_ADDR			0x86
#define TN_PROG_I2C_ADDR    		0xC0
#define TN_SWITCHING_SUBADDR 	0x00
#define TN_ADJUST_SUBADDR 		0x01
#define TN_DATA_SUBADDR 		0x02

#define SwitchDataPAL			0xd6
#define AdjustDataPAL			0x70

#define SwitchDataSECAM			0xC6
#define AdjustDataSECAM			0x70

#define SwitchDataNTSC			0x16
#define AdjustDataNTSC			0x30
////////////////////////////
// Band Switching Byte
////////////////////////////
#define TN_CTL_BYTE		 		0xC0
#define TN_LOW_BAND     		 	0x01
#define TN_MID_BAND       		0x02
#define TN_HIGH_BAND     		0x08

////////////////////////////
// sound control byte
////////////////////////////
#define SoundPALI				0x4A
#define SoundPALDK				0x4B
#define SoundPALBG				0x49
#define SoundPALM				0x48
#define SoundNTSC				0x48
#define SoundSECAML				0x0A

#define TN_READ_AFCWIN     		_BIT7

#define TN_FREQ_SS       			50//62.5  // kHz  50.0
#define TN_FREQ_IF        			38.9//45.75 // MHz

#define STEP_100K       			2
#define STEP_200K       			4
#define STEP_500K       			10
#define STEPS_1M				20

////////////////////////////////
// TDA9886 Read Mode
////////////////////////////////
#define TN_READ_AFCWIN     		_BIT7
#define TN_READ_VIFL       		_BIT6
#define TN_READ_FMIFL      		_BIT5
#define TN_READ_AFC4       		_BIT4
#define TN_READ_AFC3       		_BIT3
#define TN_READ_AFC2       		_BIT2
#define TN_READ_AFC1      		 _BIT1
#define TN_READ_PONR      		 _BIT0

#define TN_READ_AFC    (TN_READ_AFC1 | TN_READ_AFC2 | TN_READ_AFC3 | TN_READ_AFC4)
//-----------------------------------------
#endif


#define TN_SCAN_ERR         0xFF
#define TN_SCAN_STEP        10
#define TN_SCAN_NEXT_CH     (4 * TN_FREQ_UNIT) // 4 MHz
#define TN_MANUAL_STEP      (3 * TN_FREQ_UNIT) // 3 MHz

typedef struct _TunerProgramType
{
 // Divide ratio:
 //  N = 16 * {Frf(pc) + Fif(pc)}, where (pc) is picture carrier and Frf and Fif
 //                                are expressed in MHz.
 //  Fosc = N / 16 (MHz)
 //  N = (n13 * 2^13) + (n12 * n^12) + ... + (n1 * 2) + n0
 WORD ProgDivide; // Program divider 2 byte (n14-n0)
 BYTE ControlInfo1; // Control information byte 1
 BYTE ControlInfo2; // Control information byte 1(P7-P0)
// BYTE AuxilliaryByte; // Auxilliary byte
}TunerProgramType;

typedef enum _TnAutoDrctType
{
    TN_AUTO_TGL,
    TN_AUTO_PLS,
    TN_AUTO_MNS,

    TN_AUTO_NONE
}TnAutoDrctType;

//////////////////////////////////////////////
// Frequency Table
// Fosc = Frf + Fif(45.75 MHz)
// N = Fosc / Fss(step-size)(kHz)
//////////////////////////////////////////////
#define TN_N(Frf)       		((WORD)((Frf*1000)/TN_FREQ_SS))
#define TN_LOWBAND_END	TN_N(144.25)
#define TN_MIDBAND_END		TN_N(424.25)
//////////////////////////////////////////////
// Channel Information
//////////////////////////////////////////////
// Channel setting
typedef struct _TunerChSettingType
{
    BYTE bSignal : 1; // signal bit
    BYTE FreqOffset : 7; // frequency offset
}TunerChSettingType;

_DEVTUNERDEC_ TunerProgramType xdata  g_bTunerParm;
_DEVTUNERDEC_ BOOL XDATA  g_bSaveChannel;

/////////////////////////////////////
// Subroutines
/////////////////////////////////////
_DEVTUNERDEC_ void devTunerInitialize(void);
_DEVTUNERDEC_ BYTE devTunerGetStatus(BYTE ucLoopCount);
_DEVTUNERDEC_ void DevTunerWrite(WORD wFreq);
_DEVTUNERDEC_ BYTE devTunerGetStatus(BYTE ucLoopCount);
_DEVTUNERDEC_ void devTunerSetChromaToPal(void);
_DEVTUNERDEC_ void devTunerSetChromaToNtsc(void);
_DEVTUNERDEC_ void devTunerSetChromaToSECAM(void);
_DEVTUNERDEC_ void devTunerSetSoundToPalBG(void);
_DEVTUNERDEC_ void devTunerSetSoundToPalI(void);
_DEVTUNERDEC_ void devTunerSetSoundToPalDK(void);
_DEVTUNERDEC_ void devTunerSetSoundToNTSCMN(void);
_DEVTUNERDEC_ void devTunerSetSoundToSECAML(void);
_DEVTUNERDEC_ void devTunerSetAGCValue(value);
_DEVTUNERDEC_ BYTE devTunerAutoTuneFreq( WORD wOriFreq, WORD* pwResultFreq );
_DEVTUNERDEC_ void devSetSWF(BYTE ColorSoundSystem);
#endif

⌨️ 快捷键说明

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