예제 #1
0
파일: MXL5007.c 프로젝트: mrtos/gk6105s-id
int Maxlinear5007_KHz(int frequency_KHz)
{
	uint8 RFSynthLock, REFSynthLock;
	unsigned int freq_MHz;
	MxL5007_TunerConfigS myTuner;
	myTuner.I2C_Addr = MxL_I2C_ADDR_96;//I2C address 0xC0>>1, 0x60==96
	myTuner.Mode = MxL_MODE_DVBT;
	//Setting for Cable mode only
	//myTuner.IF_Diff_Out_Level = -8;
	//Set Tuner's XTAL freq
	myTuner.Xtal_Freq = MxL_XTAL_24_MHZ;//MxL_XTAL_24_MHZ;
	//Set Tuner's IF Freq
	myTuner.IF_Freq = MxL_IF_36_15_MHZ;//MxL_IF_36_15_MHZ; 
	//Set Tuner's Clock out setting
	myTuner.ClkOut_Setting = MxL_CLKOUT_ENABLE;
	myTuner.ClkOut_Amp = MxL_CLKOUT_AMP_0;
	MxL_Check_ChipVersion(&myTuner);
	MxL_Tuner_Init(&myTuner);
	freq_MHz = frequency_KHz/1000;
	MxL_Tuner_RFTune(&myTuner, (uint32)(freq_MHz*1000000), MxL_BW_8MHz);
	
	//myTuner.I2C_Addr = MxL_I2C_ADDR_99;
	MxL_RFSynth_Lock_Status(&myTuner, &RFSynthLock);
	MxL_REFSynth_Lock_Status(&myTuner, &REFSynthLock);
	if(RFSynthLock & REFSynthLock)
	{
      printf("Maxlinear Tuner locked\n");
	}
	return 1;
	//getchar();
}
예제 #2
0
INT32 tun_mxl203rf_status(UINT32 tuner_id, UINT8 *lock)
{
	BOOL IfLock;
	INT32 ret = SUCCESS;

	if(tuner_id >= MAX_TUNER_SUPPORT_NUM)
		return ERR_FAILUE;

	if(MxL_OK == MxL_RFSynth_Lock_Status(&mxl203rf_TunerConfig[tuner_id], &IfLock))
	{
		//*lock = 1;
		*lock = ( IfLock == TRUE ) ? 1 : 0; 
	}
	else
	{
		*lock = 0;        
		ret = ERR_FAILUE;
		NIM_MXL203RF_PRINTF("%s err,tuner_id %d\n",__FUNCTION__,tuner_id);
	}
	return ret;
}