2020-01-22 12:09发布
wujin715 发表于 2014-8-13 22:06 可能还是初始化的问题我把CS5463的初始化贴出来 参考一下5460的 void CS5463Init() {
embeddev_1 发表于 2014-8-14 15:27 还有些疑惑 cs5463分为校准后和从来没有校准,校准后比较简单
最多设置5个标签!
void CS5463Init()
{
RESET2=0;
_nop_();
RESET2=1; //8个振荡周期大约是2us
_nop_();
_nop_();
SpiInit();
_nop_();
delay100us();
/**********************Status Register************************************/
CmdData[0]=WRITE+15*2;
CmdData[1]=0x80; //Clear DRDY
CmdData[2]=0x00;
CmdData[3]=0x00;
SdiWrite(CmdData);
/***********************Config Register***********************************/
CmdData[0]=WRITE;
CmdData[1]=0x00;
CmdData[2]=0x00;
CmdData[3]=0x01; //K=1
SdiWrite(CmdData);
/************************Cycle Count Register*****************************/
CmdData[0]=WRITE+5*2;
CmdData[1]=0x00;
CmdData[2]=0x0f;
CmdData[3]=0xa0; //N=4000
SdiWrite(CmdData);
/********************Control Register*************************************/
CmdData[0]=WRITE+28*2; //Disable CPUCLK
CmdData[1]=0x00;
CmdData[2]=0x00;
CmdData[3]=0x04;
SdiWrite(CmdData);
/*******************Operational Mode Register*****************************/
CmdData[0]=WRITE+18*2;
CmdData[1]=0x00;
CmdData[2]=0x00;
CmdData[3]=0x61; //Enable IHPF VHPF AFC
SdiWrite(CmdData);
/*************************Mask Register***********************************/
CmdData[0]=WRITE+26*2; //Mask Register
CmdData[1]=0x00;
CmdData[2]=0x00;
CmdData[3]=0x00; //Disable INT
SdiWrite(CmdData);
Instruction(START_CONV_C); //Perform Continuous Computation Cycles
T_Offset_Calibrate();
}
如果我只采样电压 电流采集端是否可以悬空 还有我CS5463的INT是接地的 这样做是否正确?没一点头绪 手册也是英文的 读起来相当吃力
还有些疑惑
cs5463分为校准后和从来没有校准,校准后比较简单
(Vrms/0.6)*V满量程= 实测电压有效值
(Irms/0.6)*I满量程= 实测电压有效值;
现在根据cs5463测得的Pactive寄存器(~1-1)怎么计算实际有功功率?
没有校准的,理论上应该是这样计算
V,I通道最大输入+-250mv,对应有效值176mv
Vrms/1=x/176 --> x=276Vrms
x再乘以互感器变比既可以得到源端电压有效值,电流也是类似
现在不明白的就是Pactive寄存器,这个得到一个(-1~1)之间的数,根据这个数怎么反推实际有功功率?
Vrms*Irms=S; PF=P有功/S;
这不校准 误差也太大了把 相差范围竟然到了+-10V
一周热门 更多>