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

📄 d0360_init.c

📁 st7710的tuner标准驱动
💻 C
📖 第 1 页 / 共 5 页
字号:

if(InitParams->NbDefVal == STV360_NBREGS)
{
        hChip = ChipOpen(InitParams->Chip);

        DefVal = InitParams->DefVal;

if(hChip != NULL)
{
	for (Rindex=0;Rindex<STV360_NBREGS;Rindex++)
	{
		ChipAddReg(hChip,Rindex,"\0",*Addr++ ,*DefVal++,STCHIP_ACCESS_WR);
		temppatternstore=fieldpattern[Rindex];
		bitvalue = 0;
		for (bitposition=7;bitposition>=0;bitposition--)
		{
				temppatternstore = temppatternstore<<1;
				if (((temppatternstore & 0x80/*1000 0000*/)==bitvalue) && (bitposition!=0))
				{
					fieldwidth++;
				}
				else
				{
					ChipAddField(hChip,Rindex,Findex,"\0",bitposition,fieldwidth,CHIP_UNSIGNED);
					/*STTBX_Print(("\n\nChipAddField(hChip,Rindex%d,Findex%d,nullstring,(bitposition)%d,fieldwidth%d,CHIP_UNSIGNED)\n\n",Rindex,Findex,bitposition,fieldwidth));*/
					fieldwidth=1;
					Findex++;
					bitvalue = ((bitvalue==0) ? (bitvalue=0x80) : (bitvalue=0));
				}
		}/*end for loop on bitposition*/
	}/*end for loop on Rindex*/
}

ChipAddField(hChip,R_SYR_CTL,LONG_ECHO,"LONG_ECHO",3,4,CHIP_SIGNED);
ChipAddField(hChip,R_ICONSTEL,ICONSTEL,"\0",0,8,CHIP_SIGNED);
ChipAddField(hChip,R_QCONSTEL,QCONSTEL,"\0",0,8,CHIP_SIGNED);
ChipApplyDefaultValues(hChip);
}
else
{
   return (STCHIP_Handle_t) NULL;
}
    
   #else

    /*
    **   REGISTER CONFIGURATION
    **     ----------------------
    */


	/* fill elements of external chip data structure */
	InitParams->Chip->NbRegs   = STV360_NBREGS;
	InitParams->Chip->NbFields = STV360_NBFIELDS;
	InitParams->Chip->ChipMode = STCHIP_MODE_SUBADR_8;



    if(InitParams->NbDefVal != STV360_NBREGS) return (STCHIP_Handle_t) NULL;

    hChip = ChipOpen(InitParams->Chip);

    DefVal = InitParams->DefVal; 


	if(hChip != NULL)
	
	{
	


/*  REGISTER INITIALISATION */
            /*  ID  00000000 */ 
            ChipAddReg(hChip,R_ID,"ID",0x00,*DefVal++/*0x21*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_ID,IDENTIFICATIONREGISTER,"IDENTIFICATIONREGISTER",0,8,CHIP_UNSIGNED);

            /*  I2CRPT  0111010R  01110101*/
            ChipAddReg(hChip,R_I2CRPT,"I2CRPT",0x01,*DefVal++/*0x27*/,STCHIP_ACCESS_WR); /* with no bug on I2Crpt 0xA2 */
            ChipAddField(hChip,R_I2CRPT,I2CT_ON,"I2CT_ON",7,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_I2CRPT,ENARPT_LEVEL,"ENARPT_LEVEL",4,3,CHIP_UNSIGNED);
            ChipAddField(hChip,R_I2CRPT,SCLT_DELAY,"SCLT_DELAY",3,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_I2CRPT,SCLT_NOD,"SCLT_NOD",2,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_I2CRPT,STOP_ENABLE,"STOP_ENABLE",1,1,CHIP_UNSIGNED);

            /*  TOPCTRL 01010101 */
            ChipAddReg(hChip,R_TOPCTRL,"TOPCTRL",0x02,*DefVal++/*0x2*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_TOPCTRL,STDBY,"STDBY",7,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_TOPCTRL,STDBY_FEC,"STDBY_FEC",6,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_TOPCTRL,STDBY_CORE,"STDBY_CORE",5,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_TOPCTRL,DIR_CLK,"DIR_CLK",4,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_TOPCTRL,TS_DIS,"TS_DIS",3,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_TOPCTRL,TQFP80,"TQFP80",2,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_TOPCTRL,BYPASS_PGA,"BYPASS_PGA",1,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_TOPCTRL,ENA_27,"ENA_27",0,1,CHIP_UNSIGNED);

            /*  IOCFG0   01010000 */
            ChipAddReg(hChip,R_IOCFG0,"IOCFG0",0x03,*DefVal++/*0x40*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_IOCFG0,OP0_SD,"OP0_SD",7,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_IOCFG0,OP0_VAL,"OP0_VAL",6,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_IOCFG0,OP0_OD,"OP0_OD",5,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_IOCFG0,OP0_INV,"OP0_INV",4,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_IOCFG0,OP0_DACVALUE_HI,"OP0_DACVALUE_HI",0,4,CHIP_UNSIGNED);

            /*  DAC0R  00000000 */
            ChipAddReg(hChip,R_DAC0R,"DAC0R",0x04,*DefVal++/*0x00*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_DAC0R,OP0_DACVALUE_LO,"OP0_DACVALUE_LO",0,8,CHIP_UNSIGNED);

            /*  IOCFG1  R1010000 01010000 */
            ChipAddReg(hChip,R_IOCFG1,"IOCFG1",0x05,*DefVal++/*0x00*/,STCHIP_ACCESS_WR);
            /*ChipAddField(hChip,R_IOCFG1,OP1_SD,"OP1_SD",7,1,CHIP_UNSIGNED);*/
            ChipAddField(hChip,R_IOCFG1,IP0,"IP0",6,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_IOCFG1,OP1_OD,"OP1_OD",5,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_IOCFG1,OP1_INV,"OP1_INV",4,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_IOCFG1,OP1_DACVALUE_HI,"OP1_DACVALUE_HI",0,4,CHIP_UNSIGNED);

            /*  DAC1R   00000000*/
            ChipAddReg(hChip,R_DAC1R,"DAC1R",0x06,*DefVal++/*0x00*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_DAC1R,OP1_DACVALUE_LO,"OP1_DACVALUE_LO",0,8,CHIP_UNSIGNED);

            /*  IOCFG2  00010111 */
            ChipAddReg(hChip,R_IOCFG2,"IOCFG2",0x07,*DefVal++/*0x80*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_IOCFG2,OP2_LOCK_CONF,"OP2_LOCK_CONF",5,3,CHIP_UNSIGNED);
            ChipAddField(hChip,R_IOCFG2,OP2_OD,"OP2_OD",4,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_IOCFG2,OP2_VAL,"OP2_VAL",3,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_IOCFG2,OP1_LOCK_CONF,"OP1_LOCK_CONF",0,3,CHIP_UNSIGNED);

            /*  PWMFR    00001111 */
            ChipAddReg(hChip,R_PWMFR,"PWMFR",0x08,*DefVal++/*0x00*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_PWMFR,OP0_FREQ,"OP0_FREQ",4,4,CHIP_UNSIGNED);
            ChipAddField(hChip,R_PWMFR,OP1_FREQ,"OP1_FREQ",0,4,CHIP_UNSIGNED);

            /*  STATUS  01010111 */
            ChipAddReg(hChip,R_STATUS,"STATUS",0x09,*DefVal++/*0xf9*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_STATUS,TPS_LOCK,"TPS_LOCK",7,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_STATUS,SYR_LOCK,"SYR_LOCK",6,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_STATUS,AGC_LOCK,"AGC_LOCK",5,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_STATUS,PRF,"PRF",4,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_STATUS,LK,"LK",3,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_STATUS,PR,"PR",0,3,CHIP_UNSIGNED);

            /*  AUX_CLK 01011001 */
            ChipAddReg(hChip,R_AUX_CLK,"AUX_CLK",0x0a,*DefVal++/*0x1c*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_AUX_CLK,AUXFEC12B,"AUXFEC12B",7,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_AUX_CLK,AUXFEC_ENA,"AUXFEC_ENA",6,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_AUX_CLK,DIS_CKX4,"DIS_CKX4",5,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_AUX_CLK,CKSEL,"CKSEL",3,2,CHIP_UNSIGNED);
            ChipAddField(hChip,R_AUX_CLK,CKDIV_PROG,"CKDIV_PROG",1,2,CHIP_UNSIGNED);
            ChipAddField(hChip,R_AUX_CLK,AUXCLK_ENA,"AUXCLK_ENA",0,1,CHIP_UNSIGNED);

            /*  FREESYS1    RRRRRRRR 00000000 */
            ChipAddReg(hChip,R_FREESYS1,"FREESYS1",0x0b,*DefVal++/*0x0*/,STCHIP_ACCESS_WR);

            /*  FREESYS2   RRRRRRRR 00000000 */
            ChipAddReg(hChip,R_FREESYS2,"FREESYS2",0x0c,*DefVal++/*0x0*/,STCHIP_ACCESS_WR);

            /*  FREESYS3   RRRRRRRR 00000000 */
            ChipAddReg(hChip,R_FREESYS3,"FREESYS3",0x0d,*DefVal++/*0x0*/,STCHIP_ACCESS_WR);

            /*  AGC2MAX  00000000*/
            ChipAddReg(hChip,R_AGC2MAX,"AGC2MAX",0x10,*DefVal++/*0x8c*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_AGC2MAX,AGC2MAX,"AGC2MAX",0,8,CHIP_UNSIGNED);

            /*  AGC2MIN  00000000*/
            ChipAddReg(hChip,R_AGC2MIN,"AGC2MIN",0x11,*DefVal++/*0x28*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_AGC2MIN,AGC2MIN,"AGC2MIN",0,8,CHIP_UNSIGNED);

            /*  AGC1MAX 00000000*/
            ChipAddReg(hChip,R_AGC1MAX,"AGC1MAX",0x12,*DefVal++/*0xFF*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_AGC1MAX,AGC1MAX,"AGC1MAX",0,8,CHIP_UNSIGNED);

            /*  AGC1MIN 00000000*/
            ChipAddReg(hChip,R_AGC1MIN,"AGC1MIN",0x13,*DefVal++/*0x6B*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_AGC1MIN,AGC1MIN,"AGC1MIN",0,8,CHIP_UNSIGNED);

            /*  AGCR    00011000 */
            ChipAddReg(hChip,R_AGCR,"AGCR",0x14,*DefVal++/*0xBC*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_AGCR,RATIO_A,"RATIO_A",5,3,CHIP_UNSIGNED);
            ChipAddField(hChip,R_AGCR,RATIO_B,"RATIO_B",3,2,CHIP_UNSIGNED);
            ChipAddField(hChip,R_AGCR,RATIO_C,"RATIO_C",0,3,CHIP_UNSIGNED);



            /*  AGC2TH  00000000 */
            ChipAddReg(hChip,R_AGC2TH,"AGC2TH",0x15,*DefVal++/*0x0c*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_AGC2TH,AGC2_THRES,"AGC2_THRES",0,8,CHIP_UNSIGNED);

            /*  AGC12C3 01010100*/
            ChipAddReg(hChip,R_AGC12C3,"AGC12C3",0x16,*DefVal++/*0x00*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_AGC12C3,AGC1_IV,"AGC1_IV",7,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_AGC12C3,AGC1_OD,"AGC1_OD",6,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_AGC12C3,AGC1_LOAD,"AGC1_LOAD",5,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_AGC12C3,AGC2_IV,"AGC2_IV",4,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_AGC12C3,AGC2_OD,"AGC2_OD",3,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_AGC12C3,AGC2_LOAD,"AGC2_LOAD",2,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_AGC12C3,AGC12_MODE,"AGC12_MODE",0,2,CHIP_UNSIGNED);

            /*  AGCCTRL1  0x0RRR0111 0x01110111  */
            ChipAddReg(hChip,R_AGCCTRL1,"AGCCTRL1",0x17,*DefVal++/*0x85*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_AGCCTRL1,DAGC_ON,"DAGC_ON",7,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_AGCCTRL1,AGC1_MODE,"AGC1_MODE",3,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_AGCCTRL1,AGC2_MODE,"AGC2_MODE",0,3,CHIP_UNSIGNED);

            /*  AGCCTRL2    R1100111 01100111 */
            ChipAddReg(hChip,R_AGCCTRL2,"AGCCTRL2",0x18,*DefVal++/*0x1f*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_AGCCTRL2,FRZ2_CTRL,"FRZ2_CTRL",5,2,CHIP_UNSIGNED);
            ChipAddField(hChip,R_AGCCTRL2,FRZ1_CTRL,"FRZ1_CTRL",3,2,CHIP_UNSIGNED);
            ChipAddField(hChip,R_AGCCTRL2,TIME_CST,"TIME_CST",0,3,CHIP_UNSIGNED);

            /*  AGC1VAL1    00000000 */
            ChipAddReg(hChip,R_AGC1VAL1,"AGC1VAL1",0x19,*DefVal++/*0xFF*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_AGC1VAL1,AGC1_VAL_LO,"AGC1_VAL_LO",0,8,CHIP_UNSIGNED);

            /*  AGC1VAL2    RRRR1111 00001111 */
            ChipAddReg(hChip,R_AGC1VAL2,"AGC1VAL2",0x1a,*DefVal++/*0xF*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_AGC1VAL2,AGC1_VAL_HI,"AGC1_VAL_HI",0,4,CHIP_UNSIGNED);

            /*  AGC2VAL1   00000000 */
            ChipAddReg(hChip,R_AGC2VAL1,"AGC2VAL1",0x1b,*DefVal++/*0xFF*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_AGC2VAL1,AGC2_VAL_LO,"AGC2_VAL_LO",0,8,CHIP_UNSIGNED);

            /*  AGC2VAL2    RRRR1111 00001111*/
            ChipAddReg(hChip,R_AGC2VAL2,"AGC2VAL2",0x1c,*DefVal++/*0x0F*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_AGC2VAL2,AGC2_VAL_HI,"AGC2_VAL_HI",0,4,CHIP_UNSIGNED);

            /*  AGC2PGA RR111111 00111111 */
            ChipAddReg(hChip,R_AGC2PGA,"AGC2PGA",0x1d,*DefVal++/*0x00*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_AGC2PGA,UAGC2PGA,"UAGC2PGA",0,6,CHIP_UNSIGNED);

            /*  OVF_RATE1   RRRR1111 00001111 */
            ChipAddReg(hChip,R_OVF_RATE1,"OVF_RATE1",0x1e,*DefVal++/*0x00*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_OVF_RATE1,OVF_RATE_HI,"OVF_RATE_HI",0,4,CHIP_UNSIGNED);

            /*  OVF_RATE2   00000000*/
            ChipAddReg(hChip,R_OVF_RATE2,"OVF_RATE2",0x1f,*DefVal++/*0x00*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_OVF_RATE2,OVF_RATE_LO,"OVF_RATE_LO",0,8,CHIP_UNSIGNED);

            /*  GAIN_SRC1   010R0000 01010000*/
            /*ChipAddReg(hChip,R_GAIN_SRC1,"GAIN_SRC1",0x20,0xCF,STCHIP_ACCESS_WR);gbgb*/
            ChipAddReg(hChip,R_GAIN_SRC1,"GAIN_SRC1",0x20,*DefVal++/*0xCA*/,STCHIP_ACCESS_WR);
            ChipAddField(hChip,R_GAIN_SRC1,INV_SPECTR,"INV_SPECTR",7,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_GAIN_SRC1,IQ_INVERT,"IQ_INVERT",6,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_GAIN_SRC1,INR_BYPASS,"INR_BYPASS",5,1,CHIP_UNSIGNED);
            ChipAddField(hChip,R_GAIN_SRC1,GAIN_SRC_HI,"GAIN_SRC_HI",0,4,CHIP_UNSIGNED);  /**/

            /*  GAIN_SRC2   00000000*/
            /*ChipAddReg(hChip,R_GAIN_SRC2,"GAIN_SRC2",0x21,0x3C,STCHIP_ACCESS_WR);gbgb*/
            ChipAddReg(hChip,R_GAIN_SRC2,"GAIN_SRC2",0x21,*DefVal++/*0x41*/,STCHIP_ACCESS_WR);

⌨️ 快捷键说明

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