ttsky138 发表于 2014-8-22 10:08:38

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

请问下大家 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都已经更新了,并且命令是对的 。


初始化函数如下
void cs5463init(void)
{
        unsigned char statue={0x5e,0x80,0x00,0x00};
        unsigned char config={0x40,0x00,0x00,0x01};
        unsigned char count ={0x4a,0x00,0x0f,0xa0};
        unsigned char mask={0x74,0x00,0x00,0x00};
        unsigned char smode ={0x64,0x00,0x00,0x01};
        unsigned char start ={0xe8,0x00,0x00,0x00};
       
        goio_init();

        cs5463_reset();
        SpiInit();
        SdiWrite(statue);
        SdiWrite(config);
        SdiWrite(count);
        SdiWrite(mask);
        SdiWrite(smode);
        SdiWriteByte(start);
       
        delay(100000);
        SdoRead(read_count);
        SdoRead(read_config);
        SdoRead(read_temp);
        SdoRead(read_dcvoff);
        SdoRead(read_dcioff);
        SdoRead(read_state);
       
}

读取函数如下
void cs5463_read_Vrms(unsigned char *p)
{
        unsigned char vrms={0x18,0x00,0x00,0x00};
       
        SdoRead(read_state);
        while(read_state&0x80 != 0x80)
        {
                  SdoRead(read_state);
        }
        SdoRead(vrms);
        memcpy(p,vrms+1,3);
}


void cs5463_read_Irms(unsigned char *p)
{
        unsigned char irms={0x16,0x00,0x00,0x00};
       
        SdoRead(read_state);
        while(read_state&0x80 != 0x80)
        {
                  SdoRead(read_state);
        }
       
        SdoRead(irms);
        memcpy(p,irms+1,3);
}

street 发表于 2014-8-22 11:15:29

IRMS /0xFFFFFF *150/0.6;
VRMS /0xFFFFFF *150/0.6; 前提是必须要用150mvRMS 信号校准。

你的外围电路设计为 满量程信号为150mV RMS

cwei 发表于 2014-8-22 13:08:52

具体如何转换与你电路有关,和是否校准有关

ttsky138 发表于 2014-8-22 13:47:13

street 发表于 2014-8-22 11:15
IRMS /0xFFFFFF *150/0.6;
VRMS /0xFFFFFF *150/0.6; 前提是必须要用150mvRMS 信号校准。



我校准的时候, 150mv的AC信号是直接加在 芯片上的吗?    电流不用校准的吗?

huojianfei 发表于 2014-8-22 14:54:48

加芯片上校准有什么意思,校准是为了把外围电路的误差校好,比如采样电阻的,互感器之类的误差。

street 发表于 2014-8-22 15:03:39

本帖最后由 street 于 2014-8-22 15:05 编辑

ttsky138 发表于 2014-8-22 13:47
我校准的时候, 150mv的AC信号是直接加在 芯片上的吗?    电流不用校准的吗? ...

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

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

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

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

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

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


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

ttsky138 发表于 2014-8-22 16:28:19

street 发表于 2014-8-22 15:03
电压 电流 通道 使用的都是150mv的信号。

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


你好, 我现在电压校准好了。

电流校准,用什么东西能产生一个稳定的5A 输出。

street 发表于 2014-8-22 16:42:13

个人的话不太好弄 , 公司的话有 交流标准源,和交流恒流源。实在没办法 就用自耦变压器,调压,用环形变压器,绕1-2圈,直接短路 输出电流。不过稳定度差点。

martin200 发表于 2014-8-22 16:46:41

小范围变动很正常。

你用5W,11W,60W的白炽灯,节能灯

因为 市电有波动的。   所以电流值肯定会跳动。   

除非像楼上说的,用 交流标准源

ttsky138 发表于 2014-8-22 17:25:54

street 发表于 2014-8-22 16:42
个人的话不太好弄 , 公司的话有 交流标准源,和交流恒流源。实在没办法 就用自耦变压器,调压,用环形 ...

调压, 我是通过调节 采样电阻的。在220V的时候,调节采样电阻,调节分压到150mv左右。调准。 去读偏移值。

在把采样电阻调节回来。Vmax = "R"*153重新计算 当前电阻下的Vmax。   测试220V的时候 是222,和电流表测出来的一样。


电流 我想用 22R的2200W的电阻。   最大Imax= 10A。   不知道有没有这种电阻。


10A的稳定阻性负载 , 找不到呀!

street 发表于 2014-8-23 16:01:41

ttsky138 发表于 2014-8-22 17:25
调压, 我是通过调节 采样电阻的。在220V的时候,调节采样电阻,调节分压到150mv左右。调准。 去读偏 ...

电阻 不好,功率太大,且发热量大 稳定度除收到电网影响外还收到电阻的发热量影响。(想想电炉就知道了)。

用自耦变压器加环形变压器。环形变压器的次级自己用1平方线绕2-3圈。短路即可输出10A左右电流,次级开口电压只有1V左右。功率降低不少,发热量会降低不少。而且电流数便于调节。
页: [1]
查看完整版本: CS5463 实际电压 电流的读取转换