CS5463如何测电压

2020-01-22 12:09发布

我在网上搞了一个程序移植过来,程序大体思路是这样的 先初始化定时器 然后串口 CS5463  然后进行校准 最好通过定时器到了一定时间开始只读0X18电压数据寄存器 结果读出来的数据全为0
我这里么有啥工具 我只是想简单的测一个电压 求做过的人指导一下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
31条回答
wujin715
1楼-- · 2020-01-25 07:43
 精彩回答 2  元偷偷看……
ningting06
2楼-- · 2020-01-25 08:42
wujin715 发表于 2014-8-27 19:45
兄台 看你面相十分投缘 好吧  你如果是用51的话 从MSB开始读 读取一个字节 然后让这个值除以2的8次方  然 ...

  出来的结果 比我按比例运算出来的结果 还差的远 想死啊
ningting06
3楼-- · 2020-01-25 14:40
wujin715 发表于 2014-8-27 19:45
兄台 看你面相十分投缘 好吧  你如果是用51的话 从MSB开始读 读取一个字节 然后让这个值除以2的8次方  然 ...

兄弟 你看看我这一系列分析数据  0428EE   042D40  对应38V
                                              056BF2  056810对应55V
                                                070F4  07EB8对应75V
                                                 0ADBF2 0AD57E对应122V
后16位变化超级大 前8位到是相对稳定 相对线性关系还不错 不过按刚才的算法 第一个算出来才7.7V的样子
chliken
4楼-- · 2020-01-25 18:35
wujin715 发表于 2014-8-13 11:31
不用非要校准 有个连续测量 你开了没  CS5463芯片初始化没问题吧?

想请教下,兄台在做的时候有校准么?方便贴下校准部分的代码么?我正在用CS5463,但是在校准的时候,只有直流电流偏移有读数正常///直流电压偏移,交流电流偏移,交流电压偏移读数均为零///交流电流增益,交流电流增益都为400000,
弄了很久,不知道是怎么回事,在坛子里面多个贴里面请教到这个问题,没有人回复。。。
wujin715
5楼-- · 2020-01-25 22:48
chliken 发表于 2014-9-25 10:40
想请教下,兄台在做的时候有校准么?方便贴下校准部分的代码么?我正在用CS5463,但是在校准的时候,只有 ...

东西去年做的  校正的程序挺简单的  不过因为没有校准设备 而且安装说明的校准出来效果不理想 最后自己往寄存器里写数据校准的 因为时间久了  具体才做记不清了 而且最近厂子做设备 没空 怕说错了误人子弟  ,因为我直接设置滤掉了直流 所以只进行了交流校准  我把程序贴出来  如果你想好好研究建议把英文DATASHEET里面的SYSTEM CALIBRATION部分研读一下   部分程序 仅供参考:
/*************************AC Offset Calibration***************************/
/*        CmdData[0]=WRITE+26*2;
        CmdData[1]=0x80;                                //Mask Register-->Enable DRDY
        CmdData[2]=0x00;
        CmdData[3]=0x00;
        SdiWrite(CmdData);
        EX1=1;                                                        //开启中断
//        Instruction(POWERUP_HALT);
        Instruction(0xdd);
        while(flag_calib2);

        CmdData[0]=READ+16*2;                        //读取AC偏移量
        SdoRead(CmdData);
        LcdWriteCmd(0x80);
        LcdWriteData('I');
        LcdWriteData('=');
        LcdWriteData(hex[CmdData[1]/16]);
        LcdWriteData(hex[CmdData[1]%16]);
        LcdWriteData(hex[CmdData[2]/16]);
        LcdWriteData(hex[CmdData[2]%16]);
        LcdWriteData(hex[CmdData[3]/16]);
        LcdWriteData(hex[CmdData[3]%16]);

        CmdData[0]=READ+17*2;
        SdoRead(CmdData);       
        LcdWriteCmd(0x88);
        LcdWriteData('V');
        LcdWriteData('=');
        LcdWriteData(hex[CmdData[1]/16]);
        LcdWriteData(hex[CmdData[1]%16]);
        LcdWriteData(hex[CmdData[2]/16]);
        LcdWriteData(hex[CmdData[2]%16]);
        LcdWriteData(hex[CmdData[3]/16]);
        LcdWriteData(hex[CmdData[3]%16]);

        CmdData[0]=WRITE+15*2;                        //Status Register
        CmdData[1]=0x80;                                //Clear DRDY
        CmdData[2]=0x00;
        CmdData[3]=0x00;
        SdiWrite(CmdData);*/
chliken
6楼-- · 2020-01-26 02:27
 精彩回答 2  元偷偷看……

一周热门 更多>