电子元器件论坛
直播中

刘继牛

8年用户 1056经验值
私信 关注

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之间,还没换算,这个波动太大了,请问专家,我的问题出在哪里了?是不是读取的方式不对还是怎么了?求解答?

更多回帖

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