/*********************************************************
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);//读取计量寄存器
}