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

📄 288_drv.c

📁 STV0299 Minituner driver, for ST chipset
💻 C
📖 第 1 页 / 共 5 页
字号:
		ChipAddField(hChip,R288_TCTLT1,F288_SEL_TETA,"SEL_TETA",1,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TCTLT1,F288_SEL_CTL_PLF,"SEL_CTL_PLF",0,1,CHIP_UNSIGNED);

		/*	TSTRM1	*/
		ChipAddReg(hChip,R288_TSTRM1,"TSTRM1",0x0088,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_TSTRM1,F288_SELOUTR1,"SELOUTR1",7,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTRM1,F288_FSELRAM1,"FSELRAM1",6,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTRM1,F288_FSELDEC,"FSELDEC",5,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTRM1,F288_FOEB,"FOEB",2,3,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTRM1,F288_FADR,"FADR",0,2,CHIP_UNSIGNED);

		/*	TSTRATE	*/
		ChipAddReg(hChip,R288_TSTRATE,"TSTRATE",0x0089,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_TSTRATE,F288_FORCEPHA,"FORCEPHA",7,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTRATE,F288_TSTRATE6,"TSTRATE6",6,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTRATE,F288_TSTRATE5,"TSTRATE5",5,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTRATE,F288_FNEWALPHA,"FNEWALPHA",4,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTRATE,F288_FROT90,"FROT90",3,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTRATE,F288_FOFF,"FOFF",2,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTRATE,F288_FR1,"FR1",1,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTRATE,F288_FR2,"FR2",0,1,CHIP_UNSIGNED);

		/*	SELOUT	*/
		ChipAddReg(hChip,R288_SELOUT,"SELOUT",0x008a,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_SELOUT,F288_EN_VLOG,"EN_VLOG",7,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_SELOUT,F288_SELVIT60,"SELVIT60",6,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_SELOUT,F288_SELSYN3,"SELSYN3",5,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_SELOUT,F288_SELSYN2,"SELSYN2",4,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_SELOUT,F288_SELSYN1,"SELSYN1",3,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_SELOUT,F288_SELLIFO,"SELLIFO",2,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_SELOUT,F288_SELFIFO,"SELFIFO",1,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_SELOUT,F288_SELERR,"SELERR",0,1,CHIP_UNSIGNED);

		/*	FORCEIN	*/
		ChipAddReg(hChip,R288_FORCEIN,"FORCEIN",0x008b,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_FORCEIN,F288_SELVITDATAIN,"SELVITDATAIN",7,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_FORCEIN,F288_FORCE_ACS,"FORCE_ACS",6,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_FORCEIN,F288_TSTSYN,"TSTSYN",5,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_FORCEIN,F288_TSTRAM64,"TSTRAM64",4,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_FORCEIN,F288_TSTRAM,"TSTRAM",3,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_FORCEIN,F288_TSTERR2,"TSTERR2",2,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_FORCEIN,F288_TSTERR1,"TSTERR1",1,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_FORCEIN,F288_TSTACS,"TSTACS",0,1,CHIP_UNSIGNED);

		/*	TSTFIFOL	*/
		ChipAddReg(hChip,R288_TSTFIFOL,"TSTFIFOL",0x008c,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_TSTFIFOL,F288_TSTFIFO7,"TSTFIFO7",7,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTFIFOL,F288_TSTFIFO6,"TSTFIFO6",6,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTFIFOL,F288_TSTFIFO5,"TSTFIFO5",5,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTFIFOL,F288_TSTFIFO4,"TSTFIFO4",4,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTFIFOL,F288_TSTFIFO3,"TSTFIFO3",3,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTFIFOL,F288_FORMSB,"FORMSB",2,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTFIFOL,F288_FORLSB,"FORLSB",1,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTFIFOL,F288_TST_FIFO,"TST_FIFO",0,1,CHIP_UNSIGNED);

		/*	TSTCK	*/
		ChipAddReg(hChip,R288_TSTCK,"TSTCK",0x0090,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_TSTCK,F288_TSTCKRST,"TSTCKRST",6,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTCK,F288_TSTCKDIL,"TSTCKDIL",5,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTCK,F288_FORCERATE1,"FORCERATE1",3,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTCK,F288_FORCESYMHA,"FORCESYMHA",2,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTCK,F288_FORSYMAX,"FORSYMAX",1,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTCK,F288_DIRCKINT,"DIRCKINT",0,1,CHIP_UNSIGNED);

		/*	TSTRES	*/
		ChipAddReg(hChip,R288_TSTRES,"TSTRES",0x0091,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_TSTRES,F288_FRESYYY,"FRESYYY",7,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTRES,F288_FREESRS,"FREESRS",6,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTRES,F288_FRESXXX,"FRESXXX",5,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTRES,F288_FRESCAR,"FRESCAR",4,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTRES,F288_FRESACS,"FRESACS",3,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTRES,F288_FRESYM,"FRESYM",2,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTRES,F288_FRESMAS,"FRESMAS",1,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTRES,F288_FRESINT,"FRESINT",0,1,CHIP_UNSIGNED);

		/*	TSTOUT	*/
		ChipAddReg(hChip,R288_TSTOUT,"TSTOUT",0x0092,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_TSTOUT,F288_RBACT,"RBACT",6,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTOUT,F288_TS,"TS",1,3,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTOUT,F288_CTEST,"CTEST",0,1,CHIP_UNSIGNED);

		/*	TSTIN	*/
		ChipAddReg(hChip,R288_TSTIN,"TSTIN",0x0093,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_TSTIN,F288_TEST_IN,"TEST_IN",7,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTIN,F288_EN_ADC,"EN_ADC",6,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTIN,F288_SGN_ADC,"SGN_ADC",5,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTIN,F288_BCLK_IN,"BCLK_IN",4,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTIN,F288_TP12,"TP12",3,1,CHIP_UNSIGNED);

		/*	READREG	*/
		ChipAddReg(hChip,R288_READREG,"READREG",0x0094,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_READREG,F288_READREG,"READREG",0,8,CHIP_UNSIGNED);

		/*	TSTNR2	*/
		ChipAddReg(hChip,R288_TSTNR2,"TSTNR2",0x0097,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_TSTNR2,F288_DISEQC_IDDQ,"DISEQC_IDDQ",5,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTNR2,F288_DISEQC_I2C,"DISEQC_I2C",0,5,CHIP_UNSIGNED);

		/*	TSTDIS	*/
		ChipAddReg(hChip,R288_TSTDIS,"TSTDIS",0x00a0,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_TSTDIS,F288_EN_DIS,"EN_DIS",7,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTDIS,F288_EN_PTRS,"EN_PTRS",6,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTDIS,F288_TST_DIS_5,"TST_DIS_5",5,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTDIS,F288_TST_DIS_4,"TST_DIS_4",4,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTDIS,F288_EN_DIS_FIFOS,"EN_DIS_FIFOS",3,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTDIS,F288_TST_PRO,"TST_PRO",2,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTDIS,F288_TST_REG,"TST_REG",1,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTDIS,F288_TST_PRE,"TST_PRE",0,1,CHIP_UNSIGNED);

		/*	TSTDISRX	*/
		ChipAddReg(hChip,R288_TSTDISRX,"TSTDISRX",0x00a1,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_TSTDISRX,F288_EN_DISRX,"EN_DISRX",7,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTDISRX,F288_TST_CUR_SRC,"TST_CUR_SRC",6,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTDISRX,F288_IN_DIGSIG,"IN_DIGSIG",5,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTDISRX,F288_HIZ_CUR_SRC,"HIZ_CUR_SRC",4,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTDISRX,F288_PIN_SELECT_TST,"PIN_SELECT_TST",3,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TSTDISRX,F288_TST_DISRX,"TST_DISRX",0,3,CHIP_UNSIGNED);

		/*	IOPSDAT	*/
		ChipAddReg(hChip,R288_IOPSDAT,"IOPSDAT",0x00b0,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_IOPSDAT,F288_SDAT_HIGHZ,"SDAT_HIGHZ",7,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_IOPSDAT,F288_SDAT_CFG,"SDAT_CFG",1,6,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_IOPSDAT,F288_SDAT_XOR,"SDAT_XOR",0,1,CHIP_UNSIGNED);

		/*	IOPSCLT	*/
		ChipAddReg(hChip,R288_IOPSCLT,"IOPSCLT",0x00b1,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_IOPSCLT,F288_SCLT_HIGHZ,"SCLT_HIGHZ",7,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_IOPSCLT,F288_SCLT_CFG,"SCLT_CFG",1,6,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_IOPSCLT,F288_SCLT_XOR,"SCLT_XOR",0,1,CHIP_UNSIGNED);

		/*	IOPAGC	*/
		ChipAddReg(hChip,R288_IOPAGC,"IOPAGC",0x00b2,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_IOPAGC,F288_AGC_HIGHZ,"AGC_HIGHZ",7,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_IOPAGC,F288_AGC_CFG,"AGC_CFG",1,6,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_IOPAGC,F288_AGC_XOR,"AGC_XOR",0,1,CHIP_UNSIGNED);

		/*	IOPDIRCLK	*/
		ChipAddReg(hChip,R288_IOPDIRCLK,"IOPDIRCLK",0x00b3,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_IOPDIRCLK,F288_DIRCLK_HIGHZ,"DIRCLK_HIGHZ",7,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_IOPDIRCLK,F288_DIRCLK_CFG,"DIRCLK_CFG",1,6,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_IOPDIRCLK,F288_DIRCLK_XOR,"DIRCLK_XOR",0,1,CHIP_UNSIGNED);

		/*	IOPAUX	*/
		ChipAddReg(hChip,R288_IOPAUX,"IOPAUX",0x00b4,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_IOPAUX,F288_AUX_HIGHZ,"AUX_HIGHZ",7,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_IOPAUX,F288_AUX_CFG,"AUX_CFG",1,6,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_IOPAUX,F288_AUX_XOR,"AUX_XOR",0,1,CHIP_UNSIGNED);

		/*	IOPSTDBY	*/
		ChipAddReg(hChip,R288_IOPSTDBY,"IOPSTDBY",0x00b5,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_IOPSTDBY,F288_STDBY_HIGHZ,"STDBY_HIGHZ",7,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_IOPSTDBY,F288_STDBY_CFG,"STDBY_CFG",1,6,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_IOPSTDBY,F288_STDBY_XOR,"STDBY_XOR",0,1,CHIP_UNSIGNED);

		/*	IOPCS0	*/
		ChipAddReg(hChip,R288_IOPCS0,"IOPCS0",0x00b6,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_IOPCS0,F288_CS0_HIGHZ,"CS0_HIGHZ",7,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_IOPCS0,F288_CS0_CFG,"CS0_CFG",1,6,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_IOPCS0,F288_CS0_XOR,"CS0_XOR",0,1,CHIP_UNSIGNED);

		/*	IOPCS1	*/
		ChipAddReg(hChip,R288_IOPCS1,"IOPCS1",0x00b7,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_IOPCS1,F288_CS1_HIGHZ,"CS1_HIGHZ",7,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_IOPCS1,F288_CS1_CFG,"CS1_CFG",1,6,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_IOPCS1,F288_CS1_XOR,"CS1_XOR",0,1,CHIP_UNSIGNED);

		/*	IOPSDISEQC	*/
		ChipAddReg(hChip,R288_IOPSDISEQC,"IOPSDISEQC",0x00b8,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_IOPSDISEQC,F288_DISEQC_HIGHZ,"DISEQC_HIGHZ",7,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_IOPSDISEQC,F288_DISEQC_CFG,"DISEQC_CFG",1,6,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_IOPSDISEQC,F288_DISEQC_XOR,"DISEQC_XOR",0,1,CHIP_UNSIGNED);

		/*	TBUSBIT	*/
		ChipAddReg(hChip,R288_TBUSBIT,"TBUSBIT",0x00b9,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_TBUSBIT,F288_BUS_CHOICE,"BUS_CHOICE",6,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TBUSBIT,F288_BUS_POSITION,"BUS_POSITION",0,6,CHIP_UNSIGNED);

		/*	TCOMP1	*/
		ChipAddReg(hChip,R288_TCOMP1,"TCOMP1",0x00f1,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_TCOMP1,F288_SLEEPINHBT,"SLEEPINHBT",7,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TCOMP1,F288_RA6SRC,"RA6SRC",6,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TCOMP1,F288_RA5SRC,"RA5SRC",5,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TCOMP1,F288_RA4SRC,"RA4SRC",4,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TCOMP1,F288_RA3SRC,"RA3SRC",3,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TCOMP1,F288_RA2SRC,"RA2SRC",2,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TCOMP1,F288_RA1SRC,"RA1SRC",1,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TCOMP1,F288_RA0SRC,"RA0SRC",0,1,CHIP_UNSIGNED);

		/*	TCOMP2	*/
		ChipAddReg(hChip,R288_TCOMP2,"TCOMP2",0x00f0,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_TCOMP2,F288_ACCURATE,"ACCURATE",4,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TCOMP2,F288_COMPENS,"COMPENS",3,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TCOMP2,F288_COMPTQ,"COMPTQ",2,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TCOMP2,F288_FREEZE,"FREEZE",1,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TCOMP2,F288_CHIPSLEEP,"CHIPSLEEP",0,1,CHIP_UNSIGNED);

		/*	TCOMPSTAT	*/
		ChipAddReg(hChip,R288_TCOMPSTAT,"TCOMPSTAT",0x00f2,Def288Val[index++],STCHIP_ACCESS_WR);
		ChipAddField(hChip,R288_TCOMPSTAT,F288_COMPOK,"COMPOK",7,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TCOMPSTAT,F288_A6SRC,"A6SRC",6,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TCOMPSTAT,F288_A5SRC,"A5SRC",5,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TCOMPSTAT,F288_A4SRC,"A4SRC",4,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TCOMPSTAT,F288_A3SRC,"A3SRC",3,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TCOMPSTAT,F288_A2SRC,"A2SRC",2,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TCOMPSTAT,F288_A1SRC,"A1SRC",1,1,CHIP_UNSIGNED);
		ChipAddField(hChip,R288_TCOMPSTAT,F288_A0SRC,"A0SRC",0,1,CHIP_UNSIGNED);


	    #if defined(CHIP_STAPI) || defined(NO_GUI)
	        ChipApplyDefaultValues(hChip);
	    #endif
	}
	
	
	return hChip;
}

/*****************************************************
**FUNCTION	::	FE_288_GetMclkFreq
**ACTION	::	Set the STX0288 master clock frequency
**PARAMS IN	::  hChip		==>	handle to the chip
**				ExtClk		==>	External clock frequency (Hz)
**PARAMS OUT::	NONE
**RETURN	::	MasterClock frequency (Hz)
*****************************************************/
U32 FE_288_GetMclkFreq(STCHIP_Handle_t hChip, U32 ExtClk_Hz)
{
	U32 mclk_Hz,			/* master clock frequency (Hz) */ 
		pll_divider,		/* pll divider */
		pll_selratio,		/* 4 or 6 ratio */
		pll_bypass;			/* pll bypass */ 
	
	pll_divider=ChipGetField(hChip,F288_PLL_MDIV)+1;
	ChipGetOneRegister(hChip,R288_SYNTCTRL);
	pll_selratio=(ChipGetFieldImage(hChip,F288_PLL_SELRATIO)?4:6);
	pll_bypass=ChipGetFieldImage(hChip,F288_BYPASS_PLL);
	
	if(pll_bypass)
		mclk_Hz=ExtClk_Hz;
	else
		mclk_Hz=(ExtClk_Hz*pll_divider)/pll_selratio;
	
	return mclk_Hz;
}


/*****************************************************
**FUNCTION	::	FE_288_AuxClkFreq
**ACTION	::	Compute Auxiliary clock frequency 
**PARAMS IN	::	DigFreq		==> Frequency of the digital synthetizer (Hz)
**				Prescaler	==> value of the prescaler
**				Divider		==> value of the divider
**PARAMS OUT::	NONE
**RETURN	::	Auxiliary Clock frequency
*****************************************************/
U32 FE_288_AuxClkFreq(U32 DigFreq,U32 Prescaler,U32 Divider)
{
	U32 aclk,
		factor;
	
	switch(Prescaler)
	{
		case 0:
			aclk = 0;
		break;
	
		case 1:
			if(Divider)
				aclk = DigFreq/2/Divider;
			else
				aclk = DigFreq/2;
		break;
		
		default:
			factor = (U32)(2048L*PowOf2(Prescaler-2));
			if(factor)
				aclk = DigFreq/factor/(32+Divider);
			else
				aclk = 0;
		break;
	}
	
	return aclk; 
}

/*****************************************************
**FUNCTION	::	FE_288_F22Freq
**ACTION	::	Compute F22 frequency 
**PARAMS IN	::	DigFreq	==> Frequency of the digital synthetizer (Hz)
**				F22		==> Content of the F22 register
**PARAMS OUT::	NONE
**RETURN	::	F22 frequency
*****************************************************/
U32 FE_288_F22Freq(U32 DigFreq,U32 F22)
{
	return (F22!=0) ? (DigFreq/(32*F22)) : 0; 
}


/*****************************************************
**FUNCTION	::	FE_288_GetErrorCount
**ACTION	::	return the number of error
**PARAMS IN	::	pParams		=>	Pointer to STCHIP_Handle_t

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -