Exemplo n.º 1
0
void AW5306_User_Cfg1(void)
{
	unsigned char i;
		
	for(i=0;i<AWTPCfg.TX_LOCAL;i++)
	{
		AW_I2C_WriteByte(SA_TX_INDEX0+i,AWTPCfg.TX_ORDER[i]);			//TX REVERT
	}

	AW_I2C_WriteByte(SA_TX_NUM,AWTPCfg.TX_LOCAL);
	AW_I2C_WriteByte(SA_RX_NUM,AWTPCfg.RX_LOCAL);

	if(1 == AWTPCfg.MULTI_SCANFREQ)
	{
		AW_I2C_WriteByte(SA_SCANFREQ1,AWTPCfg.BASE_FREQ);
		AW_I2C_WriteByte(SA_SCANFREQ2,AWTPCfg.BASE_FREQ);
		AW_I2C_WriteByte(SA_SCANFREQ3,AWTPCfg.BASE_FREQ);
	}
	else
	{
		AW_I2C_WriteByte(SA_SCANFREQ1,AWTPCfg.BASE_FREQ);		//3-5
	}
	//AW_I2C_WriteByte(SA_TCLKDLY,1);
	AW_I2C_WriteByte(SA_RX_START,AWTPCfg.RX_START);
	AW_I2C_WriteByte(SA_SCANTIM,4);		// set to 32 TX cycles mode

	AW_I2C_WriteByte(SA_PAGE,1);
	AW_I2C_WriteByte(SA_CHAMPCFG,0x2b);	//
	AW_I2C_WriteByte(SA_OSCCFG1,AWTPCfg.FREQ_OFFSET);			//
	AW_I2C_WriteByte(SA_PAGE,0);

	AW5306_CLB_WriteCfg();	
}
void AW5x0x_User_Cfg1(void)
{
    unsigned char i;

    AW_I2C_WriteByte(SA_PAGE,0);
    AW_I2C_WriteByte(SA_IDRST,0x55);
    AW_Sleep(5);

    if(AWTPCfg.TX_LOCAL > 21)
    {
        for(i=0; i<21; i++)
        {
            AW_I2C_WriteByte(SA_TX_INDEX0+i,AWTPCfg.TX_ORDER[i]);	//TX REVERT
        }

        AW_I2C_WriteByte(SA_PAGE,2);
        for(i=21; i<AWTPCfg.TX_LOCAL; i++)
        {
            AW_I2C_WriteByte(SA_TXINDEX21+(i-21),AWTPCfg.TX_ORDER[i]);	//TX REVERT
        }
        AW_I2C_WriteByte(SA_PAGE,0);
    }
    else
    {
        for(i=0; i<AWTPCfg.TX_LOCAL; i++)
        {
            AW_I2C_WriteByte(SA_TX_INDEX0+i,AWTPCfg.TX_ORDER[i]);	//TX REVERT
        }
    }

    AW_I2C_WriteByte(SA_TX_NUM,AWTPCfg.TX_LOCAL);
    AW_I2C_WriteByte(SA_RX_NUM,AWTPCfg.RX_LOCAL);

    if(AWTPCfg.MULTI_SCANFREQ & 1)
    {
        AW_I2C_WriteByte(SA_SCANFREQ1,AWTPCfg.BASE_FREQ);
        AW_I2C_WriteByte(SA_SCANFREQ2,AWTPCfg.BASE_FREQ);
        AW_I2C_WriteByte(SA_SCANFREQ3,AWTPCfg.BASE_FREQ);
    }
    else if(! (AWTPCfg.MULTI_SCANFREQ & 1))
    {
        AW_I2C_WriteByte(SA_SCANFREQ1,AWTPCfg.BASE_FREQ);		//3//-5
    }

    if(AWTPCfg.INT_MODE == 0)
    {
        AWTPCfg.WAIT_TIME = 0;
    }

    AW_I2C_WriteByte(SA_WAITTIME,AWTPCfg.WAIT_TIME);

    AW_I2C_WriteByte(SA_RX_START,AWTPCfg.RX_START);
    if((AWTPCfg.MULTI_SCANFREQ & 0xF0) == 0)
        AW_I2C_WriteByte(SA_SCANTIM,4);		// set to 32 TX cycles mode
    else if((AWTPCfg.MULTI_SCANFREQ & 0xF0) == 0x10)
        AW_I2C_WriteByte(SA_SCANTIM,8);		// set to 64 TX cycles mode
    else if((AWTPCfg.MULTI_SCANFREQ & 0xF0) == 0x20)
    {
        AW_I2C_WriteByte(SA_SCANTIM,0x0C);	// set to 96 TX cycles mode
        AW_I2C_WriteByte(SA_CARRNUM,96);	// set to 96 TX cycles mode
    }
    else if((AWTPCfg.MULTI_SCANFREQ & 0xF0) == 0x30)
    {
        AW_I2C_WriteByte(SA_SCANTIM,0x0C);	// set to 128 TX cycles mode
        AW_I2C_WriteByte(SA_CARRNUM,128);	// set to 128 TX cycles mode
    }
    else if((AWTPCfg.MULTI_SCANFREQ & 0xF0) == 0x40)
    {
        AW_I2C_WriteByte(SA_SCANTIM,0x0C);	// set to 160 TX cycles mode
        AW_I2C_WriteByte(SA_CARRNUM,160);	// set to 160 TX cycles mode
    }
    else if((AWTPCfg.MULTI_SCANFREQ & 0xF0) == 0x50)
    {
        AW_I2C_WriteByte(SA_SCANTIM,0x0C);	// set to 192 TX cycles mode
        AW_I2C_WriteByte(SA_CARRNUM,192);	// set to 192 TX cycles mode
    }
    else if((AWTPCfg.MULTI_SCANFREQ & 0xF0) == 0x60)
    {
        AW_I2C_WriteByte(SA_SCANTIM,0x0C);	// set to 224 TX cycles mode
        AW_I2C_WriteByte(SA_CARRNUM,224);	// set to 224 TX cycles mode
    }
    else if((AWTPCfg.MULTI_SCANFREQ & 0xF0) == 0x70)
    {
        AW_I2C_WriteByte(SA_SCANTIM,0x0C);	// set to 255 TX cycles mode
        AW_I2C_WriteByte(SA_CARRNUM,255);	// set to 255 TX cycles mode
    }
    else if((AWTPCfg.MULTI_SCANFREQ & 0xF0) == 0x80)
    {
        AW_I2C_WriteByte(SA_SCANTIM,0x0C);	// set to any TX cycles mode
        AW_I2C_WriteByte(SA_CARRNUM,AWTPCfg.CARRNUM);	// set to any TX cycles mode
    }

    if(AWTPCfg.CHIPVER == 259)
    {
        if(AWTPCfg.MULTI_SCANFREQ & 4)
            AW_I2C_WriteByte(SA_SCANTIM,(AW_I2C_ReadByte(SA_SCANTIM)|0x40));		// enable CAC CFB cycle reset
        else
            AW_I2C_WriteByte(SA_SCANTIM,(AW_I2C_ReadByte(SA_SCANTIM)&0xBF));		// disable CAC CFB cycle reset
    }

    AW_I2C_WriteByte(SA_DRV_VLT, AWTPCfg.DRVVLT);

    AW_I2C_WriteByte(SA_PAGE,1);
    AW_I2C_WriteByte(SA_CHAMPCFG,AWTPCfg.CHAMP_CFG);	//
    AW_I2C_WriteByte(SA_OSCCFG1,AWTPCfg.FREQ_OFFSET);	//
    AW_I2C_WriteByte(SA_OSCCFG2,0x10);		//TRIM register
    AW_I2C_WriteByte(SA_POSLEVELTH,AWTPCfg.POSLEVEL_TH);

    AW_I2C_WriteByte(SA_CPFREQ,AWTPCfg.CPFREQ);
    AW_I2C_WriteByte(SA_ADCCFG,AWTPCfg.ADCCFG);
    AW_I2C_WriteByte(SA_IBCFG1,AWTPCfg.IBCFG1);
    AW_I2C_WriteByte(SA_IBCFG2,AWTPCfg.IBCFG2);
    AW_I2C_WriteByte(SA_LDOCFG,AWTPCfg.LDOCFG);

    if((AWTPCfg.CHIPVER == 256) || (AWTPCfg.CHIPVER == 259))
    {
        AW_I2C_WriteByte(SA_ATEST1,AWTPCfg.ATEST1);
        AW_I2C_WriteByte(SA_ATEST2,AWTPCfg.ATEST2);
        AW_I2C_WriteByte(SA_ADCDCR,AWTPCfg.ADCDCR);
        if(AWTPCfg.MULTI_SCANFREQ & 2)
            AW_I2C_WriteByte(SA_CCR1,AWTPCfg.CCR1 | 0x10);
        else
            AW_I2C_WriteByte(SA_CCR1,AWTPCfg.CCR1);
        AW_I2C_WriteByte(SA_CCR2,AWTPCfg.CCR2);
        AW_I2C_WriteByte(SA_CAMPRSTCR,AWTPCfg.CAMPRSTCR);

        AW_I2C_WriteByte(SA_PAGE,2);
        for(i=0; i<7; i++)
        {
            AW_I2C_WriteByte(SA_RXOFFSET_CC0+i,AWTPCfg.RXOFFSET_CC[i]);
        }
        for(i=0; i<13; i++)
        {
            AW_I2C_WriteByte(SA_TXOFFSET_CC0+i,AWTPCfg.TXOFFSET_CC[i]);
        }
    }

    for(i=0; i<16; i++)
    {
        if(AWTPCfg.REGISTER_LIST[i][1]!= 0)		//register != 0
        {
            AW_I2C_WriteByte(SA_PAGE,AWTPCfg.REGISTER_LIST[i][0]);
            AW_I2C_WriteByte(AWTPCfg.REGISTER_LIST[i][1],AWTPCfg.REGISTER_LIST[i][2]);
        }
        else
        {
            break;
        }
    }

    AW_I2C_WriteByte(SA_PAGE,0);
    AW5x0x_CLB_WriteCfg();
}