📄 ll_tun0360.c
字号:
#ifndef STTUNER_MINIDRIVER
#include "stcommon.h"
#ifdef HOST_PC
#include <utility.h>
#include <ansi_c.h> /*to eliminate as the debug code is removed from*/
#endif
/* TUnerget steps ... */
/*#include "def.h"*/
#ifdef ST_OSLINUX
#include "stos.h"
#else
#include "string.h"
/* Standard includes */
#include "stlite.h"
#include "sttbx.h"
#endif
#ifdef HOST_PC
#include "tun0360.h"
#else
#include "tuntdrv.h"
#endif
#include "ll_tun0360.h"
#ifdef HOST_PC
#include "system.h"
#include "i2c.h"
#include <math.h>
#include "360_Usr.h"
#include "ApplMain.h"
#include "360_Map.h"
#include "drivmain.h"
#include "Userpar.h"
#endif
#define WRITE 1
#define READ 0
#ifdef ST_OS21
#define WAIT_IN_MS(X) task_delay( (signed int)(X * (ST_GetClocksPerSecond() / 1000)) ) /*task_delay(X)*/
#else
#define WAIT_IN_MS(X) task_delay( (unsigned int)(X * (ST_GetClocksPerSecond() / 1000)) ) /*task_delay(X)*/
#endif
/*****************************************************
**FUNCTION :: LL_TunerSetProperties
**ACTION :: Set the properties of the tuner
**PARAMS IN :: tnr ==> tuner properties
**PARAMS OUT:: NONE
**RETURN :: NONE
*****************************************************/
void LL_TunerSetProperties(TUNTDRV_InstanceData_t* Tuner,TUNTDRV_InstanceData_t tnr)
{
int i;
Tuner->Error = tnr.Error;
strcpy((char*)Tuner->DeviceName,(char*)tnr.DeviceName);
Tuner->Address = tnr.Address;
Tuner->TunerType = tnr.TunerType;
Tuner->PLLType = tnr.PLLType;
Tuner->I_Q = tnr.I_Q;
Tuner->FreqFactor = tnr.FreqFactor;
Tuner->StepSize = tnr.StepSize;
Tuner->IF = tnr.IF;
Tuner->Repeator = tnr.Repeator;
Tuner->SelectBW = tnr.SelectBW;
i=0;
while(i<(TUN_MAX_BW+1))
{
Tuner->BandWidth[i] = tnr.BandWidth[i];
i++;
}
Tuner->WrSize = tnr.WrSize;
for(i=0;i<tnr.WrSize;i++)
Tuner->WrBuffer[i] = tnr.WrBuffer[i];
Tuner->RdSize = tnr.RdSize;
}
/*****************************************************
**FUNCTION :: LL_TunerGetProperties
**ACTION :: Get the properties of the tuner
**PARAMS IN :: NONE
**PARAMS OUT:: tnr ==> tuner properties
**RETURN :: NONE
*****************************************************/
void LL_TunerGetProperties(TUNTDRV_InstanceData_t *Tuner,TUNTDRV_InstanceData_t *tnr)
{
int i;
if(tnr != NULL)
{
tnr->TunerType = Tuner->TunerType;
strcpy((char*)tnr->DeviceName,(char*)Tuner->DeviceName);
tnr->Address = Tuner->Address;
tnr->PLLType = Tuner->PLLType;
tnr->Error = Tuner->Error;
tnr->I_Q = Tuner->I_Q;
tnr->FreqFactor = Tuner->FreqFactor;
tnr->StepSize = Tuner->StepSize;
tnr->IF = Tuner->IF;
tnr->Repeator = Tuner->Repeator;
tnr->SelectBW = Tuner->SelectBW;
i=0;
while(i<(TUN_MAX_BW+1))
{
tnr->BandWidth[i] = Tuner->BandWidth[i];
i++;
}
tnr->WrSize = Tuner->WrSize;
for(i=0;i<Tuner->WrSize;i++)
tnr->WrBuffer[i] = Tuner->WrBuffer[i];
tnr->RdSize = Tuner->RdSize;
for(i=0;i<Tuner->RdSize;i++)
tnr->RdBuffer[i] = Tuner->RdBuffer[i];
}
}
/*****************************************************
**FUNCTION :: LL_TunerResetError
**ACTION :: reset the error state of the tuner
**PARAMS IN :: NONE
**PARAMS OUT:: NONE
**RETURN :: NONE
*****************************************************/
void LL_TunerResetError(TUNTDRV_InstanceData_t* Tuner)
{
Tuner->Error = TNR_NO_ERR;
}
/*****************************************************
**FUNCTION :: LL_TunerGetError
**ACTION :: return the error state of the tuner
**PARAMS IN :: NONE
**PARAMS OUT:: NONE
**RETURN :: error
*****************************************************/
TUNER_ERROR LL_TunerGetError(TUNTDRV_InstanceData_t *Tuner)
{
return Tuner->Error;
}
/*****************************************************
**FUNCTION :: LL_TunerInit
**ACTION :: Initialize the tuner according to its type
**PARAMS IN :: NONE
**PARAMS OUT:: NONE
**RETURN :: NONE
*****************************************************/
void LL_TunerInit(TUNTDRV_InstanceData_t* Tuner)
{
#ifdef HOST_PC
int step;
double If;
#endif
if(!Tuner->Error)
{
Tuner->SelectBW = 0;
Tuner->BandWidth[TUN_MAX_BW] = 0; /* To avoid list without end */
/* dcdc Tuner->Repeator=0x0;*/ /* no repeator by defaults */
switch(Tuner->TunerType)
{
#ifdef STTUNER_BASIC
#ifdef STTUNER_DRV_TER_TUN_TDLB7
case STTUNER_TUNER_TDLB7:
#ifdef HOST_PC
strcpy((char*)Tuner->DeviceName,(char*)"ALPS TDLB7");
#endif
Tuner->PLLType = TUNER_PLL_TDLB7;/* need to be verified */
Tuner->I_Q = 1;
Tuner->FreqFactor = 1;
Tuner->StepSize = (int) 166667L;
Tuner->IF = (int) 36166L;
Tuner->BandWidth[0] = (int) 7600L;
Tuner->BandWidth[1] = (int) 0L;
/* dcdc Tuner->Repeator = 0; */
Tuner->WrSize = 4;
Tuner->WrBuffer[0] = 0x0B;
Tuner->WrBuffer[1] = 0xF5;
Tuner->WrBuffer[2] = 0x85;
Tuner->WrBuffer[3] = 0x40;
Tuner->RdSize = 1;
Tuner->RdBuffer[0] = 0x00;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_TDEB2
case STTUNER_TUNER_TDEB2:
#ifdef HOST_PC
strcpy((char*)Tuner->DeviceName,(char*)"ALPS TDEB2");
#endif
Tuner->PLLType = TUNER_PLL_TDEB2;/* need to be verified */
Tuner->I_Q = 1;
Tuner->FreqFactor = 1;
Tuner->StepSize = (int) 166667L;
Tuner->IF = (int) 36167L;
Tuner->BandWidth[0] = (int) 7600L;
Tuner->BandWidth[1] = (int) 0L;
/* dcdc Tuner->Repeator = 0; */
Tuner->WrSize = 4;
Tuner->WrBuffer[0] = 0x0B;
Tuner->WrBuffer[1] = 0xF5;
Tuner->WrBuffer[2] = 0x85;
Tuner->WrBuffer[3] = 0x8;
Tuner->RdSize = 1;
Tuner->RdBuffer[0] = 0x00;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_DTT7572
case STTUNER_TUNER_DTT7572:
#ifdef HOST_PC
strcpy((char*)Tuner->DeviceName,(char*)"TMM DTT7572");
#endif
Tuner->PLLType = TUNER_PLL_DTT7572;/* need to be verified */
Tuner->I_Q = 1;
Tuner->FreqFactor = 1;
Tuner->StepSize = (int) 166667L;
Tuner->IF = (int) 36000L;
Tuner->BandWidth[0] = (int) 7600L;
Tuner->BandWidth[1] = (int) 0L;
/*dcdc Tuner->Repeator = 0;*/
Tuner->WrSize = 4;
Tuner->WrBuffer[0] = 0x2;
Tuner->WrBuffer[1] = 0x34;
Tuner->WrBuffer[2] = 0x93;
Tuner->WrBuffer[3] = 0x05;
Tuner->RdSize = 1;
Tuner->RdBuffer[0] = 0x00;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_EAL2780
case STTUNER_TUNER_EAL2780:
#ifdef HOST_PC
strcpy((char*)Tuner->DeviceName,(char*)"SIEL EAL2780");
#endif
Tuner->PLLType = TUNER_PLL_EAL2780;/* need to be verified */
Tuner->I_Q = 1;
Tuner->FreqFactor = 1;
Tuner->StepSize = (int) 166667L;
Tuner->IF = (int) 36167L;
Tuner->BandWidth[0] = (int) 7600L;
Tuner->BandWidth[1] = (int) 0L;
Tuner->WrSize = 4;
Tuner->WrBuffer[0] = 0x2;
Tuner->WrBuffer[1] = 0x34;
Tuner->WrBuffer[2] = 0x93;
Tuner->WrBuffer[3] = 0x05;
Tuner->RdSize = 1;
Tuner->RdBuffer[0] = 0x00;
break;
#endif
#if defined(STTUNER_DRV_TER_TUN_DTT7578) ||defined(STTUNER_DRV_TER_TUN_DTT7592)
case STTUNER_TUNER_DTT7578 :
case STTUNER_TUNER_DTT7592 :
#ifdef HOST_PC
strcpy((char*)Tuner->DeviceName,(char*)"TMM DTT7576");
#endif
if(Tuner->TunerType == STTUNER_TUNER_DTT7578)
{
Tuner->PLLType = TUNER_PLL_DTT7578;/* need to be verified */
}
else
{
Tuner->PLLType = TUNER_PLL_DTT7592;/* need to be verified */
}
Tuner->SubAddress=0xC0;
Tuner->WrSubSize=4;
Tuner->I_Q = 1;
Tuner->FreqFactor = 1;
Tuner->StepSize = (int)166667L;
Tuner->IF = (int)36000L;
Tuner->BandWidth[0] = (int)7600L;
Tuner->BandWidth[1] = (int)0L;
/*dcdc Tuner->Repeator = 0;*/
Tuner->WrSize = 4;
Tuner->WrBuffer[0] = 0x2;
Tuner->WrBuffer[1] = 0x34;
Tuner->WrBuffer[2] = 0x93;
Tuner->WrBuffer[3] = 0x05;
Tuner->WrSubBuffer[0] = 0x2;
Tuner->WrSubBuffer[1] = 0x34;
Tuner->WrSubBuffer[2] = 0x93;
Tuner->WrSubBuffer[3] = 0x05;
Tuner->RdSize = 1;
Tuner->RdBuffer[0] = 0x00;
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_TDA6650
case STTUNER_TUNER_TDA6650:
#ifdef HOST_PC
strcpy((char*)Tuner->DeviceName,(char*)"TDA 6650");
#endif
Tuner->PLLType = TUNER_PLL_TDA6650;/* need to be verified */
Tuner->SubAddress=0xC2;
Tuner->WrSubSize=5;
Tuner->I_Q = 1;
Tuner->FreqFactor = 1;
Tuner->StepSize = (int)125000L;
Tuner->IF = (int)36125L;
Tuner->BandWidth[0] = (int)7600L;
Tuner->BandWidth[1] = (int)0L;
/*dcdc Tuner->Repeator = 0;*/
Tuner->WrSize = 5;
Tuner->WrBuffer[0] = 0x19;
Tuner->WrBuffer[1] = 0xF1;
Tuner->WrBuffer[2] = 0xCC;
Tuner->WrBuffer[3] = 0xC4;
Tuner->WrBuffer[4] = 0x8B;
Tuner->WrSubBuffer[0] = 0x19;
Tuner->WrSubBuffer[1] = 0xF1;
Tuner->WrSubBuffer[2] = 0xCC;
Tuner->WrSubBuffer[3] = 0xC4;
Tuner->WrSubBuffer[4] = 0x83;
Tuner->RdSize = 1;
Tuner->RdBuffer[0] = 0x00;
#ifdef HOST_PC
/*UsrWrInt("Step",Tuner->StepSize);*/
/*UsrWrDouble("If",(double)(Tuner->IF/1000.0));*/
#endif
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_TDM1316
case STTUNER_TUNER_TDM1316:
#ifdef HOST_PC
strcpy((char*)Tuner->DeviceName,(char*)"TDM 1316");
#endif
Tuner->PLLType = TUNER_PLL_TDM1316;/* need to be verified */
Tuner->SubAddress=0xC2;
Tuner->WrSubSize=5;
Tuner->I_Q = 1;
Tuner->FreqFactor = 1;
Tuner->StepSize =(int)166667L;
Tuner->IF = (int)36130L;
Tuner->BandWidth[0] = (int)7600L;
Tuner->BandWidth[1] = (int)0L;
/*dcdc Tuner->Repeator = 0;*/
Tuner->WrSize = 4;
Tuner->WrBuffer[0] = 0x19;
Tuner->WrBuffer[1] = 0xF1;
Tuner->WrBuffer[2] = 0xC8;
Tuner->WrBuffer[3] = 0xAC;
Tuner->WrSubBuffer[0] = 0x19;
Tuner->WrSubBuffer[1] = 0xF1;
Tuner->WrSubBuffer[2] = 0xC8;
Tuner->WrSubBuffer[3] = 0xAC;
Tuner->RdSize = 1;
Tuner->RdBuffer[0] = 0x00;
#ifdef HOST_PC
/*UsrWrInt("Step",Tuner->StepSize);*/
/*UsrWrDouble("If",(double)(Tuner->IF/1000.0));*/
#endif
break;
#endif
#ifdef STTUNER_DRV_TER_TUN_ENG47402G1
case STTUNER_TUNER_ENG47402G1:
#ifdef HOST_PC
strcpy((char*)Tuner->DeviceName,(char*)"MACO ET-03DT");
#endif
Tuner->PLLType = TUNER_PLL_ENG47402G1;/* need to be verified */
Tuner->SubAddress=0xCA;
Tuner->I_Q = 1;
Tuner->FreqFactor = 1;
Tuner->StepSize = (int)166667L;
Tuner->IF = (int)36167L;
Tuner->BandWidth[0] = (int)7600L;
Tuner->BandWidth[1] = (int)0L;
/*dcdc Tuner->Repeator = 0;*/
Tuner->WrSize = 4;
Tuner->WrSubSize = 4;
Tuner->WrBuffer[0] = 0x2;
Tuner->WrBuffer[1] = 0x34;
Tuner->WrBuffer[2] = 0x93;
Tuner->WrBuffer[3] = 0x05;
Tuner->RdSize = 1;
Tuner->RdBuffer[0] = 0x00;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -