微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > INA226 精度问题?

INA226 精度问题?

时间:10-02 整理:3721RD 点击:

请问各位,有没用过INA226的。 我用INA226的并联电压来反馈数据,比如,我输入1A 电流,我得到INA226的并联电压的十六进制数是25FF,可是,我输入1.001A或者1.01A时,照理来说是比25FF大一点的数据,比如26XX什么的,可是只有我设定值达到1.02A是才能得到26FF。换句话说,INA226并联电压反馈的十六进驻数据后两位FF不会变化吗?小弟表述的不是太好,请各位大侠见谅。

您好,能否贴上您的电路图,然后说明各个参数。另外请注意226的差模输入范围和共模输入范围。

整个16bit的所有位应该都是会变的。输入电流变化时,最后8bit一直是FF 吗?  你可以尝试去读下电压看看。

我读的就是电阻两端的并联电压,然后除以电阻值,算出来的电流。我还特别试了下,当我DA输出一点点变化时,INA226读回来的数据,可是跳变时是直接25FF调到26FF这样子的。附件是我的电路图,能帮我分析下原因吗?谢谢。

我看您的数据中后两位一直不变,这应该是不正常的,是不是您的程序不对啊,您可以看看您的时序图。

你有没有用万用表测过取样电阻两端的电压,这个值对比INA226采出来的值差异大不大?

另外你能描述下你读取电压值的流程吗?

比如说我设定1A的电流,由于电阻阻值为25毫欧,找实际值应该是25mV才是,我用万用表测量的值为25.4mV,而INA226我使用读取并联电压的方式反馈给我,得到十六进制数为25FF,根据其LSB=2.5uV,也就是说其两端电压为24.317mV。    读取值和实测值大概相差1.1mV,这个差异有点大了。

我读取电压值的流程是按照INA226的芯片资料的时序图来的,首先主控制器发送从机地址0x80,然后发送分流电压寄存器地址0x01,接着就是读取数据,首先发送读从机地址0x81,然后读取高八位数据,接着低八位。代码如下:

void shunt(void)

{
    Start();
    ATWriteByte(0x80);
    TestAck();
    ATWriteByte(0x01);
    TestAck();
    Stop();
}
void READ_INA226(void)
{
   Start();
   ATWriteByte(0x81);
  TestAck();

   H_AD=ATReadByte();
   TestAck();
   L_AD=ATReadByte();
   NoAck();
  Stop();

  ES=0;
  SBUF=H_AD;
  while(!TI);
  TI=0;

  SBUF=L_AD;
  while(!TI);
  TI=0;
  ES=1;
}

问题已解决,谢谢。

你好!

能把问题的原因和解决方案描述下吗?给大家共享下,对后来者或许有用。

我就检查了下时序,调整了下读取数据的函数。

请问楼主能详细的说下吗?我也遇到同样的问题,没找到原因。。。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top