MxL_ERR_MSG MxL_Soft_Reset(MxL5007_TunerConfigS* myTuner) { UINT8 reg_reset; reg_reset = 0xFF; // if(MxL_I2C_Write((UINT8)myTuner->I2C_Addr, ®_reset, 1)) if(MxL_I2C_Write(myTuner, ®_reset, 1)) return MxL_ERR_OTHERS; return MxL_OK; }
MxL_ERR_MSG MxL_Soft_Reset(MxL5007_TunerConfigS *myTuner) { //uint32 Status=0; uint8 reg_reset; reg_reset = 0xFF; if(MxL_I2C_Write((uint8)myTuner->I2C_Addr, ®_reset, 1)) return MxL_ERR_OTHERS; return MxL_OK; }
MxL_ERR_MSG MxL_Soft_Reset(MxL5007_TunerConfigS* myTuner) { /* UINT32 Status=0; */ UINT8 reg_reset=0; reg_reset = 0xFF; /* if(MxL_I2C_Write((UINT8)myTuner->I2C_Addr, ®_reset, 1))*/ if(MxL_I2C_Write(myTuner, ®_reset, 1)) return MxL_ERR_OTHERS; return MxL_OK; }
MxL_ERR_MSG MxL_Set_Register(MxL5007_TunerConfigS *myTuner, uint8 RegAddr, uint8 RegData) { uint32 Status=0; uint8 pArray[2]; pArray[0] = RegAddr; pArray[1] = RegData; Status = MxL_I2C_Write((uint8)myTuner->I2C_Addr, pArray, 2); if(Status) return MxL_ERR_SET_REG; return MxL_OK; }
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// // // // Tuner Functions // // // //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// MxL_ERR_MSG MxL_Set_Register(void * DevHandle,MxL5007_TunerConfigS* myTuner, UINT8 RegAddr, UINT8 RegData) { UINT32 Status=0; UINT8 pArray[2]; pArray[0] = RegAddr; pArray[1] = RegData; Status = MxL_I2C_Write(DevHandle,(UINT8)myTuner->I2C_Addr, pArray, 2); if(Status) return MxL_ERR_SET_REG; return MxL_OK; }
MxL_ERR_MSG MxL_Stand_By(MxL5007_TunerConfigS *myTuner) { uint8 pArray[4]; // a array pointer that store the addr and data pairs for I2C write pArray[0] = 0x01; pArray[1] = 0x0; pArray[2] = 0x0F; pArray[3] = 0x0; if(MxL_I2C_Write((uint8)myTuner->I2C_Addr, pArray, 4)) return MxL_ERR_OTHERS; return MxL_OK; }
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; }
MxL_ERR_MSG MxL_Loop_Through_On(MxL5007_TunerConfigS *myTuner, MxL5007_LoopThru isOn) { uint8 pArray[2]; // a array pointer that store the addr and data pairs for I2C write pArray[0]=0x04; if(isOn) pArray[1]= 0x01; else pArray[1]= 0x0; if(MxL_I2C_Write((uint8)myTuner->I2C_Addr, pArray, 2)) return MxL_ERR_OTHERS; return MxL_OK; }
MxL_ERR_MSG MxL_Tuner_Init(MxL5007_TunerConfigS *myTuner) { uint8 pArray[MAX_ARRAY_SIZE]; // a array pointer that store the addr and data pairs for I2C write uint32 Array_Size; // a integer pointer that store the number of element in above array //Soft reset tuner if(MxL_Soft_Reset(myTuner)) return MxL_ERR_INIT; //perform initialization calculation MxL5007_Init(pArray, &Array_Size, (uint8)myTuner->Mode, myTuner->IF_Diff_Out_Level, (uint32)myTuner->Xtal_Freq, (uint32)myTuner->IF_Freq, (uint8)myTuner->IF_Spectrum, (uint8)myTuner->ClkOut_Setting, (uint8)myTuner->ClkOut_Amp); //perform I2C write here if(MxL_I2C_Write((uint8)myTuner->I2C_Addr, pArray, Array_Size)) return MxL_ERR_INIT; return MxL_OK; }
MxL_ERR_MSG MxL_Tuner_RFTune(MxL5007_TunerConfigS *myTuner, uint32 RF_Freq_Hz, MxL5007_BW_MHz BWMHz) { // uint32 Status=0; uint8 pArray[MAX_ARRAY_SIZE]; // a array pointer that store the addr and data pairs for I2C write uint32 Array_Size; // a integer pointer that store the number of element in above array //Store information into struct myTuner->RF_Freq_Hz = RF_Freq_Hz; myTuner->BW_MHz = BWMHz; //perform Channel Change calculation MxL5007_RFTune(pArray,&Array_Size,RF_Freq_Hz,BWMHz); //perform I2C write here if(MxL_I2C_Write((uint8)myTuner->I2C_Addr, pArray, Array_Size)) return MxL_ERR_RFTUNE; //wait for 3ms MxL_Delay(3); return MxL_OK; }