久芯网

INA226: INA226的电流采集精度问题

avatar jason yu 提问时间: 2023-10-24 17:19:27 / 已解决
Part Number: INA226
Other Parts Discussed in Thread:

采用INA226进行电流采集,采样电阻选用15mR,误差变化较大,例如,在18V,0.9A的采样中,第一次误差5mA,第二次测量误差达到50mA;而且不同的电流值误差也不同;想请教下INA226电流采集的精度范围大概是多少?应该如何避免误差的产生?


如需获得 INA226 等器件的更多信息,请点击链接或 点击此处 联系在线客服!

38个回答
  • avatar user78960159
    回答时间: 2023-10-24 17:50:13

    1.发一下你的电路图吧

    2.芯片可以设定采样间隔和平均个数的 你设的是多少呢 你的应用场景下 需要多长间隔获取一次数据

  • avatar Amy Luo
    回答时间: 2023-10-24 18:07:25

    您好,

    您是采用高侧电流检测还是低侧电流检测?两次测量结果误差不应相差这么大,您在寄存器读写方面是不是已经验证了可以正确读写?

    测量不同的电流值误差不同是正常的,在下面产品首页链接有误差分析工具,您可以使用估算下最大误差,如下截图所示:

    https://www.ti.com.cn/product/cn/INA226?

    运放输入端有输入失调电压,因此采用电阻越大,失调电压占的比重越小,误差越小,因此在采样电阻压降允许的条件下越大,误差越小;

    另外,电源的纹波也会引起输出误差,应减小电源电压波动。

  • avatar jason yu
    回答时间: 2023-10-24 18:29:34

    平均16次,间隔1.1ms(0x4527);应用场景下对采样要求不高,分钟级别采集一次就可以,还有个问题就是,每次采集寄存器的值基本不变化,除非电流发生比较大的变化(几十mA)

  • avatar jason yu
    回答时间: 2023-10-24 18:56:18

    高侧监测,寄存器验证可以正确读写,但是误差太大;远远没有理想计算的精度;电路在上面回答中提及,请参考;至于电源纹波,应该在正常范围内(采用爱的克斯的直流电源进行的测试)

  • avatar jason yu
    回答时间: 2023-10-24 19:20:50

    还有一个问题,就是空载时候会读到一个很大的寄存器值

  • avatar Amy Luo
    回答时间: 2023-10-24 19:39:41

    看您的电路图,电流采集端VIN+接的是电流输出端,VIN-接的是电流输入端,因此,读出的Vshunt电压应该是负值,不确定您在进行转换时是否考虑了这一点?

  • avatar jason yu
    回答时间: 2023-10-24 20:04:57

    电路没有问题,电压的精度也可以接收;主要是电流采集

  • avatar user78960159
    回答时间: 2023-10-24 20:33:42

    您指的空载 是不是类似采样电阻所在的信号链路断路的情况 如果是类似这样 是会才到比较大的值 此时寄存器的采集值接近全F 所以算得的电流值会很大 应该是开路导致采样电阻悬空导致嗯

  • avatar user78960159
    回答时间: 2023-10-24 21:02:38

    高侧检测 是指您的应用场景吗 我不是太清楚这是什么电路

    您可以在微控制器 C2000论坛检索这个题目的帖子

    TMDXIDDK379D: 分享 电流传感器使用

    希望能帮上你

  • avatar jason yu
    回答时间: 2023-10-24 21:31:45

    是输入端有电压,输出没有接负载;测试过程还有一个问题,寄存器值变化非常慢,例如,我当前电压设置为15.5V,读出电压为15.36V;我将电压缓慢提高,测量电压一直不变,知道电压变化较大, 比如到15.7V,寄存器的值才会发生变化,请问这是什么原因?

  • avatar jason yu
    回答时间: 2023-10-24 22:01:36

    测试过程还有一个问题,寄存器值变化非常慢,例如,我当前电压设置为15.5V,读出电压为15.36V;我将电压缓慢提高,测量电压一直不变,知道电压变化较大, 比如到15.7V,寄存器的值才会发生变化,请问这是什么原因?

  • avatar Amy Luo
    回答时间: 2023-10-24 22:24:29

    您采用的哪种工作模式,您可以把配置的寄存器值读出来,附在这里吗?我看下您的寄存器配置值

    您预计最大需要测的电流是多少?

  • avatar jason yu
    回答时间: 2023-10-24 22:47:22

    配置寄存器是0x4527,精度是0x06AB,最大电流15A;采用3mr的电阻

  • avatar jason yu
    回答时间: 2023-10-24 23:13:11

    修改配置参数对结果没有影响

  • avatar user78960159
    回答时间: 2023-10-24 23:44:19

    这是我的推算过程 请参考

    最大检测电流15A

    电流检测精度500uA

    calibration寄存器的数值应该设定为十进制3413

    我不清楚您是怎么设计的 您的0x06AB是calibration寄存器的数值吗

  • avatar jason yu
    回答时间: 2023-10-25 00:06:39

    都试过,后来就直接用shunt电压除采用电阻值了,还是不准

  • avatar jason yu
    回答时间: 2023-10-25 00:26:58

    而且目前采集的电压值也远未达到标称的精度,误差在10-20mV左右(预期测量范围12-24V)

  • avatar Amy Luo
    回答时间: 2023-10-25 00:56:05

    在您的电路中,最大15A负载Load接在哪端了?是VIN-还是VIN+?

    看下图,如果是下图这种接法,实际测量的VBUS电压与外部供电电压12V是不一样的,实际测量的VBUS电压是12V减去Vshunt电压。我不清楚您说的电压精度未达到标称精度是不是因为这个原因造成的?

  • avatar user78960159
    回答时间: 2023-10-25 01:16:24

    测试过vcc 3.3v的纹波吗

  • avatar jason yu
    回答时间: 2023-10-25 01:48:05

    减去也不对,测试电流不到1A,是接到了VIN-端

  • avatar jason yu
    回答时间: 2023-10-25 02:06:23

    还有一个现象,每次微调电压,超过0.3V寄存器值才会变化,电流超过20mA寄存器值才会变化

  • avatar jason yu
    回答时间: 2023-10-25 02:23:57

    手头暂时无法测试纹波,电压值为3.28V;3.3V输出采用的是LTC3973

  • avatar user78960159
    回答时间: 2023-10-25 02:48:07

    先说电流采集的问题 如果你想了解INA226的采集精度 你可以看下ti的这个设计TIDA-00313 里面有数据分析

    我觉得电流采集误差大,应该和这个有关系

    首先 shunt电阻的压降范围是约±80mV

    芯片里面应该也是ADC采集shunt电阻压降计算的电流

    既然这样,如果输入电流变化导致的采样电阻压降 能够满足±80mV的范围,那么 采集应该会得到比较好的精度

    就好比一个16位的ADC,采集范围是0到5V,输入信号也是0到5V

    再来看你的设计里 采样电阻是0.003欧姆,采集电流要到15A,那么最大的采样电阻压降也只有0.045V,输入信号的范围大概是允许范围的一半,从这一点看,我觉得可能就已经损失了一半的精度,你可以看一下官方的那个设计,里面的采样电阻是100mohm,采样电阻的压降是±80mV。

    但是对于你的设计,电流很大,势必采样电阻不能太大,否则会超范围。

    我不知道你的采样精度要做到多高,如果是20A,0.05%的精度,(实际测试2.5A,误差在5mA以内),这个能不能满足你的使用要求

    如果要达到这样的采集精度,差动放大的采集方式应该不太容易实现,一般的工业级霍尔传感器或者磁通门传感器也很难达到

    我测试的能达到我说的这个精度的传感器,是之前我发到这个贴里的那个C2000论坛里我分享的测试报告里使用的磁通门传感器

    我使用要求是2.5A,误差小于5mA

    当然这个只是就电流采集精度我介绍了我的解决方式,在你环境里不一定适用

  • avatar Amy Luo
    回答时间: 2023-10-25 03:06:15

    Bus Voltage Register (02h) 的分辨率或者说LSB 是固定的为 1.25 mV/bit,您可以提供一个您的测试样例吗?比如输入电压多少伏,读取的Bus Voltage寄存器值为多少?我想看下您这里的计算过程是否有误

    您可以读取 ID Register的值吗?以验证读取寄存器时序没有问题

  • avatar jason yu
    回答时间: 2023-10-25 03:24:55

    2.5A误差5mA,完全满足我的需要,我现在测试误差远大于这个值,电压的误差跟采样电阻关系不大,还是有较大误差;是否是PCB设计原因?还有比较费解的就是电压、电流变化较大数值后寄存器的值才发生变化

  • avatar jason yu
    回答时间: 2023-10-25 03:52:45

    实际电压16V,Bus Voltage寄存器值读取值为0x3100

  • avatar jason yu
    回答时间: 2023-10-25 04:16:22

    实际电压16V,Bus Voltage寄存器值读取值为0x3100

  • avatar jason yu
    回答时间: 2023-10-25 04:38:20

    读取ID寄存器(0xFFH)返回值为0x2200

  • avatar Amy Luo
    回答时间: 2023-10-25 05:03:36

    0x3100换算成模拟输入电压是15.68V,即使减去Vshunt电压,误差确实也挺大的。

    您使用的是fast mode 还是high-speed mode?您可以附上您读取寄存器的时序图吗?感觉可能是寄存器读取问题

  • avatar user78960159
    回答时间: 2023-10-25 05:29:03

    这个ID不对 

    您把FE地址也读一下和数据手册比对一下

  • avatar user78960159
    回答时间: 2023-10-25 05:53:57

    您好 这位工程师读到的die id 是2200 确实有问题

  • avatar Amy Luo
    回答时间: 2023-10-25 06:20:41

    是的,我看到了,所以想让他抓一下读取寄存器的时序波形看哪里有问题

  • avatar user78960159
    回答时间: 2023-10-25 06:38:49

    我这里有调试的波形记录 你可以比对一下 我用的是C2000系列的片上外设I2C控制的

    顺序写入的4个字节

    1000 0000 --> 设备地址 写操作

    0000 0000 --> 配置寄存器地址

    0100 0101 --> 写入配置寄存器高字节 0x45

    0010 0111 --> 写入配置寄存器低字节 0x27

    配置寄存器默认值4127 设置成4527是转换16次求平均

  • avatar user78960159
    回答时间: 2023-10-25 07:10:41

    还有一个问题 你的检测电流高达15A

    这么大的电流走PCB板流过采样电阻吗 应该不太合适吧

    这种大电流的检测应该用穿心式的电流传感器

  • avatar user78960159
    回答时间: 2023-10-25 07:27:53

    1.从PCB设计角度出发 经验上讲 40mil约1mm耐受1A电流 如果15A PCB线宽需要15mm

    2.电流15A 采样电阻0.003ohm 功耗是0.675W

    常规贴片电阻最大封装2512 功耗1W 所以功率安全也是问题

  • avatar jason yu
    回答时间: 2023-10-25 07:48:12

    感谢,问题解决了,这路IIC忘记加上拉了

  • avatar jason yu
    回答时间: 2023-10-25 08:10:43

    感谢,问题解决了,这路IIC忘记加上拉了

  • avatar Amy Luo
    回答时间: 2023-10-25 08:29:56

    好的,感谢反馈

会员中心 微信客服
客服
回到顶部