计量芯片ATT7022EU的初始化

/*********************************************************
ATT7022EU校准表参数配置
三线三相制
*********************************************************/
void ATT7022_Calibration(SPI_TypeDef* SPIx)
{
    //ATT7022EU 初始化是复位一下
    if(SPIx == SPI1)
    {
        RESET_ATT7022E;
        delay_us(30);
        SET_ATT7022E;
        while(!READ_ATT7022E_IRQ1);
    }
    else
    {
        RESET_ATT7022E_2;
        delay_us(30);
        SET_ATT7022E_2;
        while(!READ_ATT7022E_IRQ2);
    }
    
    delay_us(1000);
    SPIx_Write(SPIx,0xc9,0x5a);//使能检表写操作

    SPIx_Write(SPIx,0xc3,0x0);//清校表数据

    SPIx_Write(SPIx,0x01,0xb9fe);//模式配置
    SPIx_Write(SPIx,0x03,0xf804);//EMU单元配置 BIT7 0 能量寄存器读后不清零
    SPIx_Write(SPIx,0x31,0x3437);//模拟模块使能
    SPIx_Write(SPIx,0x02,0x0054);//设置采样通道ADC放大倍数--电流通道ADC增益放大2倍
    SPIx_Write(SPIx,0x1e,HFConst);//填写高频脉冲输出参数-脉冲常数设置 HFConst
    //SPIx_Write(SPIx,0x1d,0x160);//填写启动电流
    SPIx_Write(SPIx,0x36,0x30);//填写启动功率
    SPIx_Write(SPIx,0x1f,0xF96);//写断相阈值电压--失压阈值

    SPIx_Write(SPIx,0x37,0x0);//写相位补偿区域设置

    SPIx_Write(SPIx,0x17, (u32)(0.3703*Ugain_Par));//电压增益校准
    SPIx_Write(SPIx,0x18, (u32)(0.3703*Ugain_Par));
    SPIx_Write(SPIx,0x19, (u32)(0.3593*Ugain_Par));
    SPIx_Write(SPIx,0x1a, (u32)(0.3558*Ugain_Par));//电流增益校准
    SPIx_Write(SPIx,0x1b, (u32)(0.3538*Ugain_Par));
    SPIx_Write(SPIx,0x1c, (u32)(0.3508*Ugain_Par));
    SPIx_Write(SPIx,0x04, (int)(0.1436*Ugain_Par));//A相有功功率增益
    SPIx_Write(SPIx,0x07, (int)(0.1446*Ugain_Par));//A相无功功率增益
    SPIx_Write(SPIx,0x0a, (int)(0.1706*Ugain_Par));//A相视在功率增益
    SPIx_Write(SPIx,0x0d, (int)(1.9882*Ugain_Par));//A相相位校准0
    SPIx_Write(SPIx,0x10, (int)(1.9882*Ugain_Par));//A相相位校准1
    SPIx_Write(SPIx,0x05, (int)(0.2021*Ugain_Par));//B相有功功率增益
    SPIx_Write(SPIx,0x08, (int)(0.2241*Ugain_Par));//B相无功功率增益
    SPIx_Write(SPIx,0x0b, (int)(0.2121*Ugain_Par));//B相视在功率增益
    SPIx_Write(SPIx,0x0e, (int)(0.0683*Ugain_Par));//B相相位校准0
    SPIx_Write(SPIx,0x11, (int)(0.0683*Ugain_Par));//B相相位校准1
    SPIx_Write(SPIx,0x06, (int)(0.2407*Ugain_Par));//C相有功功率增益
    SPIx_Write(SPIx,0x09, (int)(0.2487*Ugain_Par));//C相无功功率增益
    SPIx_Write(SPIx,0x0c, (int)(0.2507*Ugain_Par));//C相视在功率增益
    SPIx_Write(SPIx,0x0f, (int)(1.9841*Ugain_Par));//C相相位校准0
    SPIx_Write(SPIx,0x12, (int)(1.9841*Ugain_Par));//C相相位校准1

    SPIx_Write(SPIx,0x35,0x080F);//IO状态配置
    SPIx_Write(SPIx,0xC5,0x0002); //同步数据启动命令
    SPIx_Write(SPIx,0xc9,0x0);//失能检表写操作,关闭校表数据写操作
    SPIx_Write(SPIx,0xC6,0x0000);//读取计量寄存器 
}

你可能感兴趣的:(计量芯片ATT7022EU的初始化)