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

INA238: 部分寄存器读取的配置值和预写进去的值不一致

Part Number:INA238Other Parts Discussed in Thread: SYSCONFIG

1、涉及到的寄存器有SHUNT_CAL寄存器,写进去的值0x08CA,读到的值为0x084A;更换值,也会跟着变,但是不一致;

2、温度限制寄存器,写进去的值0x01FA,读到的值为0x00FA;更换值,也会跟着变,但是不一致。

3、芯片ID读取到的值与其他的寄存器的数据顺序是反的。

Alice:

您好,

     “芯片ID读取到的值与其他的寄存器的数据顺序是反的。”

      ——-请参考数据手册“图 7-7”和 “图 7-8”,数据读写是高位在前。

     请参考下面帖子,上拉电阻对I2C通讯的影响。

      (+) INA237: 寄存器读取值与手册中不匹配 – 放大器论坛 – 放大器 – E2ETm 设计支持 (ti.com)

     使用SysConfig工具可以帮助生成INA238的驱动代码: SysConfig (ti.com)

,

user6296334:

您好,谢谢回复

是这样,参照图7-7和图7-8读取的芯片ID的寄存器内容是正确的,但是我现在遇到的问题是,以这种方式获取的其他寄存器的值是反掉的,所以不知道问题在那里,ID的寄存器读取和其他寄存器的读取顺序是反掉的。比如:    INA238_writeReg(sensor, INA238_adc_config_register, sensor->adcConfigRegister);写入的数值为0xFB68,根据高位在前,低位在后,回读的数据为0x68FB.芯片ID读取的为0x2381,相同的方式,读取到的寄存器却是反掉的,采用的是相同的读取函数。

取值不匹配的问题参考过以上文章,改过IIC上拉电阻,没有作用。当前采用的是4.7K,该总线上有其他IIC从站芯片,可以正常通信。

INA238的SHUNT_CAL寄存器和TEMPERATURE_LIMIT寄存器是主要错误的寄存器,回读的数据存在单字节错误。其他的配置寄存器没有任何问题。

母线电压/电流/温度的读取数据是错误的。而且存在不同的电压,读取的数据一直不变的问题。

,

user6296334:

当前代码是通过官网SysCongfig生成的。

,

Alice:

您好,

      如果仅仅是高低字节反了,就是写入代码发送时顺序错了。

      因为芯片ID可以正确读取,说明读程序是正确的。

      如果写入的数据与读出的数据不一样,还要检查I2C的写时序,在写的过程中是否都有ACK。

      或者您用示波器实际监测一下SDA线上的值。

,

user6296334:

非常感谢 

测试正确了,多个从站有不同的通信方式,造成了数据混乱。

赞(0)
未经允许不得转载:TI中文支持网 » INA238: 部分寄存器读取的配置值和预写进去的值不一致
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1