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.

[参考译文] Linux/INA260:器件树条目支持

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

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

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/745444/linux-ina260-device-tree-entry-support

器件型号:INA260

工具/软件:Linux

您好:

我们正在定制设计板中使用 INA260。 我在内核配置中需要启用以下模块。

CONFIG_PACKAGE_kmod-hwmon-ina2xx:   
│μ A   
│适用于 ina2xx 直流电流监控芯片的内核模块   
│μ A   
│μ A   
│μ A  
│符号:package_kmod-hwmon-ina2xx [=y]
│类型:tristate  
│提示: KMOD-hwmon-ina2xx .................. INA2XX 监控支持  
│位置:
│->内核模块
│->硬件监控支持
│-> kmod-hwmon-core .................. 硬件监控支持(package_kmod-hwmon-core [=y])  
│在 tmp/.config-package.in:9152上定义
│取决于:package_kmod-hwmon-core [=y]
│选择:package_kmod-i2c-core [=y]&& package_kmod-regmap [=n]

&i2c1{
时钟频率=<100000>;
pinctrl-names ="default";
pinctrl-0 =<&pinctrl_i2c1>;
status ="oke";

ina260{
兼容="ti、ina230";
reg =<0x4e>;
分流电阻器=<10000>;
};
}; 

我是否错过了电流感应行程的 DTS 条目? 或者如何分配相同的任务?

我们必须测量 USB 端口上的功耗、因此 INA260的警报输出连接到 GPIO。 我认为我们必须在上述结构中定义 GPIO 条目。

感谢您的支持

此致、

Waman Prabhu

甲电子产品。

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

    感谢您考虑使用德州仪器。 我不确定我是否理解您的问题。 要在从器件 INA260上定义跳闸点、您需要从主微控制器/微处理器发送正确的 I2C 写入消息系列、以配置屏蔽/使能寄存器和警报限值寄存器。 应根据您决定将 INA260警报路由到哪个 GPIO 引脚、在上述代码中定义 GPIO。 为了确定如何执行此操作、我建议阅读为您使用的微控制器提供的文档、因为每个器件和品牌的语法可能不同。 如果您使用的是德州仪器微控制器、我们实际上提供了有关如何定义端口以及如何使用 I2C 协议进行写入和读取的示例代码。 此外、如果您使用的是 TI 微控制器、并且代码语法有问题、我建议您将问题发布在微控制器论坛下。 但是、如果您需要帮助确定要写入 INA260的字节以正确测量您感兴趣的电流范围、此电流感应论坛可以为您提供帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Patrick:

    感谢您的回答。

    当然、我将为警报信号定义 GPIO。

    但是、如果您需要帮助确定要写入 INA260的字节 以正确测量您感兴趣的电流范围、此电流感应论坛可以为您提供帮助。

    >>请告诉我测量电流需要写入哪些字节? 能否使用 Linux i2c-tools (i2cset/i2cget 命令)来实现上述语句?  

    谢谢、

    Waman Prabhu。

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

    您好 Waman、

    您需要哪些字节实际上是一个广泛的问题。  我怀疑您不熟悉 I2C 协议。  因此、我将从较高的层面开始、让您从这些信息着手、然后我相信我们可以缩小您的应用所需信息的范围。

    要正确测量电流、首先需要配置器件或写入器件。  您将需要写入配置寄存器以设置测量模式、转换时间和平均值计算模式。  要对此进行配置、您将从主器件发送一个如下所示的位流。

    从器件地址由器件引脚 A0和 A1决定。 数据表的表2告诉您如何根据从器件 INA260将使用的地址将这些引脚连接到 GND、VS、SDA 或 SCL。 请注意、地址仅为7位、不是完整字节。 但是、读取/写入位完成字节。 一些微控制器将地址和 R/W 位拆分为两个单独的代码行。 从主器件(无论您使用 Linux 进行何种编程)发送地址后、主器件会等待从器件将 SDA 线路拉至低电平以确认它接收到地址位流。 确认后、您的主器件将需要发送配置寄存器的地址或指针。 配置寄存器地址为00h。 所有寄存器地址均可在数据表的表4中找到。 从器件第二次确认后、主器件会发送与所需配置设置对应的高字节和低字节。 要确定这些设置、请参阅图30。

    要从从从机寄存器中读取数据,需要像以前一样发送从机地址和寄存器地址。 然而、这里的关键区别在于 R/W 位、这将是高电平(写入时它应该是低电平)。 寄存器地址发送后、主器件将线路拉低以确认。 之后、从器件发送所请求寄存器的内容。 如果要读取当前值、则需要将二进制位流转换为等效的十进制数。 然后、您可以将该值乘以数据表电气特性表中的当前 LSB 步长、1.25mA。 如果您仍然需要一些有关 I2C 协议的帮助、我建议 您阅读以下应用手册

    至于代码、我并不是非常熟悉在 Linux 中执行此操作、也无法确认这些命令是否适合您。 但是、我确实找到了此 链接 、其中包含一些可能对您有所帮助的示例代码。 但是、您可能需要进行更多的修改。