TI中文支持网
TI专业的中文技术问题搜集分享网站

INA226 精度问题?

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

Sunny Qin:

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

Wanda WANG:

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

shun sheng zhang:

回复 Wanda WANG:

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

Sunny Qin:

回复 shun sheng zhang:

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

Wanda WANG:

回复 shun sheng zhang:

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

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

shun sheng zhang:

回复 Wanda WANG:

比如说我设定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; }

shun sheng zhang:

回复 Wanda WANG:

问题已解决,谢谢。

Wanda WANG:

回复 shun sheng zhang:

你好!

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

shun sheng zhang:

回复 Wanda WANG:

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

user1894177:

回复 shun sheng zhang:

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

赞(0)
未经允许不得转载:TI中文支持网 » INA226 精度问题?
分享到: 更多 (0)