📄 tuner.c
字号:
bandwidth = (u8+5)*2000000; /* x2 for ZIF tuner BW/2=F+5 Mhz*/
break;
case TUNER_IX2476:
u8 = (ChipGetFieldImage(hTuner,FIX2476_PD2) << 3) +
(ChipGetFieldImage(hTuner,FIX2476_PD3) << 2) +
(ChipGetFieldImage(hTuner,FIX2476_PD4) << 1) +
ChipGetFieldImage(hTuner,FIX2476_PD5);
bandwidth = 20000000 + (u8-3) * 4000000; /* x2 for ZIF tuner */
break;
default:
break;
}
}
return bandwidth;
}
TUNER_Model_t TunerGetModel(STCHIP_Handle_t hChip)
{
TUNER_Model_t model = TUNER_NULL;
if(hChip && hChip->pData)
{
model = ((TUNER_Params_t) (hChip->pData))->Model;
}
return model;
}
void TunerSetIQ_Wiring(STCHIP_Handle_t hChip, TUNER_IQ_t IQ_Wiring)
{
if(hChip && hChip->pData)
{
((TUNER_Params_t) (hChip->pData))->IQ_Wiring = IQ_Wiring;
}
}
TUNER_IQ_t TunerGetIQ_Wiring(STCHIP_Handle_t hChip)
{
TUNER_IQ_t wiring = TUNER_IQ_NORMAL;
if(hChip && hChip->pData)
{
wiring = ((TUNER_Params_t) (hChip->pData))->IQ_Wiring;
}
return wiring;
}
void TunerSetReferenceFreq(STCHIP_Handle_t hChip, U32 Reference)
{
if(hChip && hChip->pData)
{
((TUNER_Params_t) (hChip->pData))->Reference = Reference;
}
}
U32 TunerGetReferenceFreq(STCHIP_Handle_t hChip)
{
U32 reference = 0;
if(hChip && hChip->pData)
{
reference = ((TUNER_Params_t) (hChip->pData))->Reference;
}
return reference;
}
void TunerSetIF_Freq(STCHIP_Handle_t hChip, U32 IF)
{
if(hChip && hChip->pData)
{
((TUNER_Params_t) (hChip->pData))->IF = IF;
}
}
U32 TunerGetIF_Freq(STCHIP_Handle_t hChip)
{
U32 ifreq = 0;
if(hChip && hChip->pData)
{
ifreq = ((TUNER_Params_t) (hChip->pData))->IF;
}
return ifreq;
}
BOOL TunerGetStatus(STCHIP_Handle_t hTuner)
{
// TUNER_Error_t error = TUNER_NO_ERR;
TUNER_Params_t hTunerParams = NULL;
BOOL locked = FALSE;
U8 u8;
hTunerParams = (TUNER_Params_t) hTuner->pData;
if(hTuner && hTunerParams)
{
TunerRead(hTuner);
switch(hTunerParams->Model)
{
case TUNER_NULL:
locked = TRUE;
break;
case TUNER_VG0011:
if(!hTuner->Error)
locked = ChipGetField(hTuner,FTUNERSAT_LOCK);
break;
case TUNER_HZ1184:
if(!hTuner->Error)
locked = ChipGetFieldImage(hTuner,FHZ1184_LOCK);
break;
case TUNER_MAX2116:
if(!hTuner->Error)
{
u8 = ChipGetFieldImage(hTuner,FMAX2116_ADC);
locked = ((u8>0) && (u8<7)) ? TRUE : FALSE;
}
break;
case TUNER_SU1200:
if(!hTuner->Error)
locked = ChipGetFieldImage(hTuner,FSU1200_LOCK);
break;
case TUNER_TBMU301:
if(!hTuner->Error)
locked = ChipGetFieldImage(hTuner,FTBMU301_LOCK);
break;
case TUNER_IX2410:
if(!hTuner->Error)
locked = ChipGetFieldImage(hTuner,FIX2410_FL);
break;
case TUNER_STB6000:
if(!hTuner->Error)
locked = ChipGetFieldImage(hTuner,FSTB6000_LD);
break;
case TUNER_STB6100:
if(!hTuner->Error)
{
TunerRead(hTuner);
locked = ChipGetFieldImage(hTuner,FSTB6100_LD);
}
break;
case TUNER_IX2476:
if(!hTuner->Error)
locked = ChipGetFieldImage(hTuner,FIX2476_FL);
break;
default:
/* nothing to do here */
break;
}
}
return locked;
}
TUNER_Error_t TunerWrite(STCHIP_Handle_t hTuner)
{
TUNER_Error_t error = TUNER_NO_ERR;
TUNER_Params_t hTunerParams = NULL;
U32 pd5, pd4, pd3, pd2;
hTunerParams = (TUNER_Params_t) hTuner->pData;
if(hTuner && hTunerParams)
{
switch(hTunerParams->Model)
{
case TUNER_VG0011:
ChipSetRegisters(hTuner,RTUNERSAT_TUNING_LSB,8);
break;
case TUNER_HZ1184:
ChipSetRegisters(hTuner,RHZ1184_DIVM,4);
break;
case TUNER_MAX2116:
ChipSetRegisters(hTuner,RMAX2116_SUBADR,7);
break;
case TUNER_SU1200:
ChipSetRegisters(hTuner,RSU1200_DIVM,4);
break;
case TUNER_TBMU301:
ChipSetRegisters(hTuner,RTBMU301_DIVM,4);
break;
case TUNER_IX2410:
pd5 = ChipGetFieldImage(hTuner, FIX2410_PD5);
pd4 = ChipGetFieldImage(hTuner, FIX2410_PD4);
pd3 = ChipGetFieldImage(hTuner, FIX2410_PD3);
pd2 = ChipGetFieldImage(hTuner, FIX2410_PD2);
ChipSetFieldImage(hTuner, FIX2410_PD5, 0);
ChipSetFieldImage(hTuner, FIX2410_PD4, 0);
ChipSetFieldImage(hTuner, FIX2410_PD3, 0);
ChipSetFieldImage(hTuner, FIX2410_PD2, 0);
ChipSetFieldImage(hTuner, FIX2410_TM, 0);
ChipSetRegisters(hTuner,RIX2410_NHIGH,4);
ChipSetFieldImage(hTuner, FIX2410_TM, 1);
WAIT_N_MS(1);
ChipSetRegisters(hTuner,RIX2410_NHIGH,4);
ChipSetFieldImage(hTuner, FIX2410_PD5, pd5);
ChipSetFieldImage(hTuner, FIX2410_PD4, pd4);
ChipSetFieldImage(hTuner, FIX2410_PD3, pd3);
ChipSetFieldImage(hTuner, FIX2410_PD2, pd2);
WAIT_N_MS(6);
ChipSetRegisters(hTuner,RIX2410_NHIGH,4);
break;
case TUNER_STB6000:
ChipSetFieldImage(hTuner,FSTB6000_SUBADR,0x01); /* force subadr to 0x01 */
ChipSetRegisters(hTuner,RSTB6000_SUBADR,12);
break;
case TUNER_STB6100:
ChipSetRegisters(hTuner,RSTB6100_VCO,11);
break;
case TUNER_IX2476:
pd5 = ChipGetFieldImage(hTuner, FIX2476_PD5);
pd4 = ChipGetFieldImage(hTuner, FIX2476_PD4);
pd3 = ChipGetFieldImage(hTuner, FIX2476_PD3);
pd2 = ChipGetFieldImage(hTuner, FIX2476_PD2);
ChipSetFieldImage(hTuner, FIX2476_PD5, 0);
ChipSetFieldImage(hTuner, FIX2476_PD4, 0);
ChipSetFieldImage(hTuner, FIX2476_PD3, 0);
ChipSetFieldImage(hTuner, FIX2476_PD2, 0);
ChipSetFieldImage(hTuner, FIX2476_TM, 0);
ChipSetRegisters(hTuner,RIX2476_NHIGH,4);
ChipSetFieldImage(hTuner, FIX2476_TM, 1);
WAIT_N_MS(1);
ChipSetRegisters(hTuner,RIX2476_NHIGH,4);
ChipSetFieldImage(hTuner, FIX2476_PD5, pd5);
ChipSetFieldImage(hTuner, FIX2476_PD4, pd4);
ChipSetFieldImage(hTuner, FIX2476_PD3, pd3);
ChipSetFieldImage(hTuner, FIX2476_PD2, pd2);
WAIT_N_MS(10);
ChipSetRegisters(hTuner,RIX2476_NHIGH,4);
break;
default:
break;
}
}
return error;
}
TUNER_Error_t TunerRead(STCHIP_Handle_t hTuner)
{
TUNER_Error_t error = TUNER_NO_ERR;
TUNER_Params_t hTunerParams = NULL;
hTunerParams = (TUNER_Params_t) hTuner->pData;
if(hTuner && hTunerParams)
{
switch(hTunerParams->Model)
{
case TUNER_VG0011:
ChipGetRegisters(hTuner,RTUNERSAT_TUNING_LSB,8);
break;
case TUNER_HZ1184:
ChipGetRegisters(hTuner,RHZ1184_STATUS,1);
break;
case TUNER_MAX2116:
ChipGetRegisters(hTuner,RMAX2116_STATUS,2);
break;
case TUNER_SU1200:
ChipGetRegisters(hTuner,RSU1200_STATUS,1);
break;
case TUNER_TBMU301:
ChipGetRegisters(hTuner,RTBMU301_STATUS,1);
break;
case TUNER_IX2410:
ChipGetRegisters(hTuner,RIX2410_STATUS,1);
break;
case TUNER_STB6000:
ChipGetRegisters(hTuner,RSTB6000_LD,1);
break;
case TUNER_STB6100:
ChipGetRegisters(hTuner,RSTB6100_LD,1/*12*/);
break;
case TUNER_IX2476:
ChipGetRegisters(hTuner,RIX2476_STATUS,1);
break;
default:
break;
}
}
return error;
}
TUNER_Error_t TunerTerm(STCHIP_Handle_t hTuner)
{
TUNER_Error_t error = TUNER_NO_ERR;
if(hTuner)
{
if(hTuner->pData)
free(hTuner->pData);
ChipClose(hTuner);
}
return error;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -