Beispiel #1
0
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();
}
Beispiel #2
0
/**

@brief   Set MxL5007T tuner bandwidth mode.

*/
int
mxl5007t_SetBandwidthMode(
	TUNER_MODULE *pTuner,
	int BandwidthMode
	)
{
	MXL5007T_EXTRA_MODULE *pExtra;
	MxL5007_TunerConfigS *pTunerConfigS;

	UINT32 Mxl5007tRfFreqHz;
	MxL5007_BW_MHz Mxl5007tBandwidthMhz;



	// Get tuner extra module.
	pExtra = (MXL5007T_EXTRA_MODULE *)pTuner->pExtra;

	// Get MaxLinear-defined MxL5007T structure.
	pTunerConfigS = pExtra->pTunerConfigS;


	// Get RF frequency.
	Mxl5007tRfFreqHz = pTunerConfigS->RF_Freq_Hz;

	// Set bandwidth.
	switch(BandwidthMode)
	{
		case MXL5007T_BANDWIDTH_6000000HZ:		Mxl5007tBandwidthMhz = MxL_BW_6MHz;		break;
		case MXL5007T_BANDWIDTH_7000000HZ:		Mxl5007tBandwidthMhz = MxL_BW_7MHz;		break;
		case MXL5007T_BANDWIDTH_8000000HZ:		Mxl5007tBandwidthMhz = MxL_BW_8MHz;		break;

		default:	goto error_status_get_undefined_value;
	}

	// Set MxL5007T RF frequency and bandwidth.
	if(MxL_Tuner_RFTune(pTunerConfigS, Mxl5007tRfFreqHz, Mxl5007tBandwidthMhz) != MxL_OK)
		goto error_status_set_tuner_bandwidth;


	// Set tuner bandwidth parameter.
	pExtra->BandwidthMode      = BandwidthMode;
	pExtra->IsBandwidthModeSet = YES;


	return FUNCTION_SUCCESS;


error_status_set_tuner_bandwidth:
error_status_get_undefined_value:
	return FUNCTION_ERROR;
}
Beispiel #3
0
/*****************************************************************************
 * INT32 nim_mxl203rf_control(UINT32 freq, UINT8 bandwidth,UINT8 AGC_Time_Const,UINT8 *data,UINT8 _i2c_cmd)
 *
 * Tuner write operation
 *
 * Arguments:
 *  Parameter1: UINT32 freq		: Synthesiser programmable divider
 *  Parameter2: UINT8 bandwidth		: channel bandwidth
 *  Parameter3: UINT8 AGC_Time_Const	: AGC time constant
 *  Parameter4: UINT8 *data		: 
 *
 * Return Value: INT32			: Result
 *****************************************************************************/
INT32 tun_mxl203rf_control(UINT32 tuner_id, UINT32 freq, UINT32 sym, UINT8 AGC_Time_Const, UINT8 _i2c_cmd)
{
	unsigned long dwRF_Freq_KHz;
	MxL203RF_BW_MHz mxl_BW;
	MxL_ERR_MSG Status;

	NIM_MXL203RF_PRINTF("%s:tuner_id %d,freq %ld, sym %ld,AGC_Time_Const %d,_i2c_cmd %d\n",__FUNCTION__,tuner_id,freq,sym,AGC_Time_Const,_i2c_cmd);

	if(tuner_id >= MAX_TUNER_SUPPORT_NUM)
		return ERR_FAILUE;

	if ( bMxl_Tuner_Inited[tuner_id] == FALSE )
	{
		NIM_MXL203RF_PRINTF("MXL203RF CTL_INIT,ADDR=%x\n",mxl203rf_dev_id[tuner_id]->c_tuner_base_addr);
		mxl203rf_TunerConfig[tuner_id].I2C_Addr = (MxL203RF_I2CAddr)(mxl203rf_dev_id[tuner_id]->c_tuner_base_addr);//MxL_I2C_ADDR_96;
		mxl203rf_TunerConfig[tuner_id].Mode = MxL_MODE_CAB_STD;
		mxl203rf_TunerConfig[tuner_id].Xtal_Freq=MxL_XTAL_48_MHZ;		
		mxl203rf_TunerConfig[tuner_id].IF_Freq = MxL_IF_7_2_MHZ; //MxL_IF_6_MHZ;// MxL_IF_4_57_MHZ;//MxL_IF_36_15_MHZ;
		mxl203rf_TunerConfig[tuner_id].IF_Spectrum = MxL_NORMAL_IF;
		mxl203rf_TunerConfig[tuner_id].ClkOut_Setting = MxL_CLKOUT_DISABLE;
		mxl203rf_TunerConfig[tuner_id].ClkOut_Amp = MxL_CLKOUT_AMP_10;
		mxl203rf_TunerConfig[tuner_id].Xtal_Cap = MxL_XTAL_CAP_12_PF;

		if((Status = MxL_Tuner_Init(&mxl203rf_TunerConfig[tuner_id])) != MxL_OK )
		{
			return ERR_FAILUE;
		}

		bMxl_Tuner_Inited[tuner_id] = TRUE;
	}

	dwRF_Freq_KHz = freq;
	mxl_BW = MxL_BW_8MHz; //not use 'sym'

	if(  (Status = MxL_Tuner_RFTune(&mxl203rf_TunerConfig[tuner_id], dwRF_Freq_KHz*1000, mxl_BW)) != MxL_OK )
	{
		return ERR_FAILUE;
	}

	//#define MXL_DEBUG
#ifdef MXL_DEBUG
	UINT8 i;
	for(i = 0; i < 255; i++)
	{
		//printk(&mxl203rf_TunerConfig[tuner_id], i, &reg_dump[i]);
	}
#endif	
	return SUCCESS;	
}
Beispiel #4
0
MxL_ERR_MSG MxL_Wake_Up(MxL5007_TunerConfigS *myTuner)
{
	uint8 pArray[2];	// a array pointer that store the addr and data pairs for I2C write	
	
	pArray[0] = 0x01;
	pArray[1] = 0x01;

	if(MxL_I2C_Write((uint8)myTuner->I2C_Addr, pArray, 2))
		return MxL_ERR_OTHERS;

	if(MxL_Tuner_RFTune(myTuner, myTuner->RF_Freq_Hz, myTuner->BW_MHz))
		return MxL_ERR_RFTUNE;

	return MxL_OK;
}
Beispiel #5
0
/**

@see   TUNER_FP_SET_RF_FREQ_HZ

*/
int
mxl5007t_SetRfFreqHz(
	TUNER_MODULE *pTuner,
	unsigned long RfFreqHz
	)
{
	MXL5007T_EXTRA_MODULE *pExtra;
	MxL5007_TunerConfigS *pTunerConfigS;

	UINT32 Mxl5007tRfFreqHz;
	MxL5007_BW_MHz Mxl5007tBandwidthMhz;



	// Get tuner extra module.
	pExtra = (MXL5007T_EXTRA_MODULE *)pTuner->pExtra;

	// Get MaxLinear-defined MxL5007T structure.
	pTunerConfigS = pExtra->pTunerConfigS;


	// Get bandwidth.
	Mxl5007tBandwidthMhz = pTunerConfigS->BW_MHz;

	// Set RF frequency.
	Mxl5007tRfFreqHz = (UINT32)RfFreqHz;

	// Set MxL5007T RF frequency and bandwidth.
	if(MxL_Tuner_RFTune(pTunerConfigS, Mxl5007tRfFreqHz, Mxl5007tBandwidthMhz) != MxL_OK)
		goto error_status_set_tuner_rf_frequency;


	// Set tuner RF frequency parameter.
	pTuner->RfFreqHz      = RfFreqHz;
	pTuner->IsRfFreqHzSet = YES;


	return FUNCTION_SUCCESS;


error_status_set_tuner_rf_frequency:
	return FUNCTION_ERROR;
}