ADI 技术
直播中

张珊珊

7年用户 133经验值
私信 关注
[问答]

ADE7753读取vrms波动很大

void ADE7753_Init(void)
{   uint8_t buf[2];
          buf[0]=0x80;
          buf[1]=0x00;
          Write7753(MODE,buf,2);//软件复位芯片
          _delay_us(20);
          buf[0]=0x00;
          buf[1]=0x18;
          Write7753(IRQEN,buf,2);//软件复位芯片
          buf[0]=0x64;
          buf[1]=0x00;
          Write7753(LINECYC,buf,2);//软件复位芯片
          buf[0]=0x04;
          //buf[1]=0x00;
          Write7753(GAIN,buf,1);//软件复位芯片
          buf[0]=0x0c;
          buf[1]=0xb2;
          Write7753(CFDEN,buf,2);//软件复位芯片
          buf[0]=0x00;
          buf[1]=0x00;
          Write7753(0X13,buf,2);//软件复位芯片
          buf[0]=0x00;
          buf[1]=0x00;
          Write7753(0X1B,buf,2);//软件复位芯片
          buf[0]=0x00;
          buf[1]=0x00;
          Write7753(0X14,buf,2);//软件复位芯片
          buf[0]=0x0f;
          //buf[1]=0x00;
          Write7753(0X0d,buf,1);//软件复位芯片
          buf[0]=0x0f;
          //buf[1]=0x00;
          Write7753(0X0e,buf,1);//软件复位芯片
  
}
int main(void)
{   
          wdt_disable();
          InitPort();
          ADE7753_Init();
          _delay_ms(200);
          uint32_t test1;
          uint32_t test2;
    while(1)
    {   
                    test2=Read7753(VRMS,3);          test1=Read7753(IRMS,3);
                    showVIHZ(1,test2);用于显示
_delay_ms(2000);
showVIHZ(2,test1);用于显示
  
_delay_ms(2000);

    }
}

为什么我读到的irms的值很稳定,而且能随外部加的电流的大小变化而变化,没次读取出来的都是固定值,波动不会及其微小,而读vrms的时候,加220v的电压,读出来是64w到66W之间,还没换算,这个波动太大了,请问adi专家,我的问题出在哪里了?是不是读取的方式不对还是怎么了?求解答?

回帖(2)

张博

2018-12-13 11:41:13
您好。可以尝试在电压通道过零点读取有效值,或者任意时刻读取有效值,多次读取求均值。也需要确认电压通道输入信号的精度
举报

黄玫玫

2018-12-13 11:50:07
你好,不知道你的问题解决了没
举报

更多回帖

发帖
×
20
完善资料,
赚取积分