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

📄 tuner.c

📁 STV0299 Minituner driver, for ST chipset
💻 C
📖 第 1 页 / 共 5 页
字号:
				
				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 + -