Post Go back to editing

ADE7858 无法输出CF

SPIWrite2Bytes(Gain,0x0000); //电流增益/电压增益都设置成1,config the Gain of the PGA , which is before the ADC of ADE7878
rturnvalue = SPIRead2Bytes(Gain);
if(rturnvalue == 0)
{
rturnvalue = 1;
}
SPIWrite2Bytes(CONFIG,0x0000); //默认
SPIWrite2Bytes(HPFDIS,0x0000); //enabled high-pass filters

SPIWrite2Bytes(CF1DEN,0x00A7); //configure the ENERGY-TO-FREQUENCY
rturnvalue = SPIRead2Bytes(CF1DEN);
// if(rturnvalue == 0)
// {
// rturnvalue = 1;
// }
SPIWrite2Bytes(CF2DEN,0x00A7);
SPIWrite2Bytes(CF3DEN,0x00A7);
SPIWrite2Bytes(CFMODE,0x0E88); //0000 1100 1000 1000 //CF1-total active power, disable; CF2-total reactvie power, disable; CF3- fundamental avtive power, disable
rturnvalue = SPIRead2Bytes(CFMODE);
// if(rturnvalue == 0)
// {
// rturnvalue = 1;
// }
SPIWrite2Bytes(ACCMODE,0x0000);
SPIWrite2Bytes(COMPMODE,0x01FF); //CF1包含三相之和
SPIWrite1Byte(MMODE,0x00);

SPIWrite4Bytes(WTHR0,0x007BBE61); //阈值PMAX = 33,516,139 0.001WH/LSB //page 47 datasheet Rev. E
SPIWrite4Bytes(WTHR1,0x00000017);
SPIWrite4Bytes(VATHR0,0x007BBE61); //PMAX = 33,516,139
SPIWrite4Bytes(VATHR1,0x00000017);
SPIWrite4Bytes(VARTHR0,0x007BBE61); //PMAX = 33,516,139
SPIWrite4Bytes(VARTHR1,0x00000017);


SPIWrite1Byte(LCYCMODE,0x0F); //线路累计模式,phase A is selected for zero cross
SPIWrite2Bytes(LINECYC,0x0064);

SPIWrite4Bytes(MASK0,0x00000020); //line cycle interrupt enable
SPIWrite4Bytes(MASK1,0x00000000);

SPIWrite2Bytes(Run,0x0001); //run ADE7878 DSP
rturnvalue = SPIRead2Bytes(Run);   

    

按照官方例程设置了CF相关寄存器值,但是无法输出CF脉冲,配置回读过寄存器值是写入正常的,求大佬帮忙分析下,感谢