This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] INA260:读取电流值

Guru**** 2390755 points
Other Parts Discussed in Thread: INA260

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/704591/ina260-read-current-value

器件型号:INA260

您好!

我将 INA260与我的定制设计搭配使用、我尝试在不同的条件下读取电流值(使用电缆或不使用电缆- USB-C)、 但 我没有观察到电流变化的任何变化、它始终为-15536、 数据表显示电流寄存器是二进制补码值、转换为十进制、因此我无法读取正确的一致值。 需要您支持如何正确读取值。

INIT 函数如下所示

CONFIG = INA260_CONFIG_AVGRANGE_4 |
INA260_CONFIG_BVOLTAGETIME_8244US |
INA260_CONFIG_SCURRENTTIME_8244US |
INA260_CONFIG_MODE_SVOLT_CONSTATE;
MASK_DATA_var=MASK_ENABLE_DATA;
THRESH_CURR_var=CURRENT_THRESHOLD;
uint8_t CONFIG_DATA[2]、MASK_DATA[2]、THRESH_CURRENT[2];
CONFIG_DATA[0]=CONFIG>>8;
CONFIG_DATA[1]=CONFIG;
MASK_DATA[0]= MASK_DATA_var>8;
MASK_DATA[1]=MASK_DATA_var;
THRESH_CURRENT[0]= THRES_CURR_var>8;
THRESH_CURRENT[1]=THRESH_CURR_var;

I2C_USBINA260_Initialize (&myfrontINA260、F_INA260_ADDR);

RET = I2C_DEVICE_SequentialRead (&myfrontINA260、值、大小、(uint8_t) INA260_REG_CONFIG);

RET=I2C_DEVICE_SequentialWrite (&myfrontINA260、CONFIG_DATA、SIZE、(uint8_t) INA260_REG_CONFIG);
// if (ret =I2C_MESSAGE_COMPLETE)
RET = I2C_DEVICE_SequentialRead (&myfrontINA260、值、大小、(uint8_t) INA260_REG_CONFIG);
RET=I2C_DEVICE_SequentialWrite (&myfrontINA260、MASK_DATA、SIZE、MASK_ENABLE_register);
// if (ret =I2C_MESSAGE_COMPLETE)
RET=I2C_DEVICE_SequentialWrite (&myfrontINA260、THRESH_CURRENT、SIZE、ALERT_LIMIT_register);

I2C_USBINA260_Initialize (&myreinA260、R_INA260_ADDR);

// ret = I2C_DEVICE_SequentialRead (&myrehinA260、值、大小、(uint8_t) INA260_REG_CONFIG);
if (ret =I2C_MESSAGE_COMPLETE)
RET=I2C_DEVICE_SequentialWrite (&myreinA260、CONFIG_DATA、SIZE、(uint8_t) INA260_REG_CONFIG);
// if (ret =I2C_MESSAGE_COMPLETE)
RET=I2C_DEVICE_SequentialWrite (&myreinA260、MASK_DATA、SIZE、MASK_ENABLE_register);
// if (ret =I2C_MESSAGE_COMPLETE)
RET=I2C_DEVICE_SequentialWrite (&myrehINA260、THRESH_CURRENT、SIZE、ALERT_LIMIT_register);

谢谢、

Arun  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Arun、

    感谢您考虑在设计中使用德州仪器。 您是否曾尝试先读取配置寄存器以查看您的方法是否返回您所期望的结果? 浏览您的代码、您可能会将16位截断为8位、然后旋转。 是否可以确认在为微控制器或处理器运行调试器时不会出现这种情况?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Arun、

    您是否能够正确读取配置寄存器?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Arun、

    由于我一段时间没有听到你的反馈、我认为你已经解决了你的问题。 但是、如果您仍然无法从寄存器中读取正确的值、并且需要进一步的支持、请在下面作出响应。 否则、我现在将关闭此线程。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    很抱歉耽误你的答复。 您的回答回答了我的问题、并帮助解决了问题。

    谢谢、