CS5463 实际电压 电流的读取转换

2020-01-23 14:21发布

请问下大家 Vrms 和Irms读取的值, 怎么转换成实际电压和电流啊。

我分别查了 5W,11W,60W的白炽灯,节能灯。

读取的Irms数据如下
5W: 03BC36
11W: 03C198
60W: 0475BC

Vrms:74e44e(后16位也在一个范围内变动)

后16为会一直小范围变动,没有做过校准。




读取的一些配置信息和我设置的都一样, 读取0x04和0x08(电压电流增益)为0x400000

读取Vrms和Irms的时候 状态寄存器返回的是0x900081  表示DRDY CRDY FUP都已经更新了,并且命令是对的 。


初始化函数如下
  1. void cs5463init(void)
  2. {
  3.           unsigned char statue[4]={0x5e,0x80,0x00,0x00};
  4.         unsigned char config[4]={0x40,0x00,0x00,0x01};
  5.         unsigned char count[4] ={0x4a,0x00,0x0f,0xa0};
  6.         unsigned char mask[4]  ={0x74,0x00,0x00,0x00};
  7.         unsigned char smode[4] ={0x64,0x00,0x00,0x01};
  8.         unsigned char start[4] ={0xe8,0x00,0x00,0x00};
  9.        
  10.         goio_init();

  11.           cs5463_reset();
  12.         SpiInit();
  13.         SdiWrite(statue);
  14.         SdiWrite(config);
  15.         SdiWrite(count);
  16.         SdiWrite(mask);
  17.         SdiWrite(smode);
  18.         SdiWriteByte(start[0]);
  19.        
  20.         delay(100000);
  21.         SdoRead(read_count);
  22.         SdoRead(read_config);
  23.         SdoRead(read_temp);
  24.         SdoRead(read_dcvoff);
  25.         SdoRead(read_dcioff);
  26.         SdoRead(read_state);
  27.        
  28. }
复制代码

读取函数如下
  1. void cs5463_read_Vrms(unsigned char *p)
  2. {
  3.           unsigned char vrms[4]={0x18,0x00,0x00,0x00};
  4.        
  5.         SdoRead(read_state);
  6.         while(read_state[1]&0x80 != 0x80)
  7.         {
  8.                   SdoRead(read_state);
  9.         }
  10.         SdoRead(vrms);
  11.         memcpy(p,vrms+1,3);
  12. }


  13. void cs5463_read_Irms(unsigned char *p)
  14. {
  15.           unsigned char irms[4]={0x16,0x00,0x00,0x00};
  16.        
  17.         SdoRead(read_state);
  18.         while(read_state[1]&0x80 != 0x80)
  19.         {
  20.                   SdoRead(read_state);
  21.         }
  22.        
  23.         SdoRead(irms);
  24.         memcpy(p,irms+1,3);
  25. }
复制代码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
street
2020-01-24 05:09
本帖最后由 street 于 2014-8-22 15:05 编辑
ttsky138 发表于 2014-8-22 13:47
我校准的时候, 150mv的AC信号是直接加在 芯片上的吗?    电流不用校准的吗? ...


电压 电流 通道 使用的都是150mv的信号。

电流是通过互感器或是分流器,转换成了150mV信号。  

电压是通过电压互感器或是分压器转转换成了150mV信号

最理想的校准方式是 给满量程信号进行校准,而不是给150mV信号校准

因为满量程信号校准,把互感器和采样电阻的误差都给消除了。

只给150mV信号校准,其中互感器和电阻的累计误差对精度有一定影响。


比如 你校准5A电流。需要给一个5A的标准信号,芯片通过互感器和电阻将5A转成150mV.进行校准。

一周热门 更多>