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.

[参考译文] BQ76952EVM:在 RTOS 环境中、BQ769x2电芯电压和温度读取在几秒钟后失败

Guru**** 1990115 points
Other Parts Discussed in Thread: BQ76952, BQ76952EVM, BQSTUDIO
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1449641/bq76952evm-bq769x2-cell-voltage-and-temperature-readings-fail-after-few-seconds-in-rtos-environment

器件型号:BQ76952EVM
主题中讨论的其他器件:BQ76952、、 BQSTUDIO

工具与软件:

您好!

我目前正在与合作 BQ769x2电池管理系统(BMS) 、与 STM32微控制器连接。 我使用 I2C 接口实现了电池电压和温度监控。

问题描述

系统在运行时运行良好 裸机模式 、为电池电压和温度提供一致和准确的读数。 不过、当我将同一代码集成到时 基于 RTOS 的环境 (FreeRTOS)、读数在几秒钟内都是准确的、但随后所有电池电压都会显示 65459. 并显示温度 6272.75 .

重要观察结果:

  1. 该问题仅在 RTOS 环境中发生。 裸机执行正常运行、不会出现任何问题。
  2. 最初、读数是正确的(电压和温度)。
  3. 几秒钟后:
    • 电芯电压值 :固定于65459
    • 温度值 :固定于6272.75
  4. 我已经验证 BQ769x2的电源稳定、并且不存在物理连接问题。

系统详细信息:

  • 微控制器上 :STM32L552E-STM32E EV
  • 通信协议 : I2C.
  • BQ769x2配置
    • 所有16节电池都启用。
  • 软件环境
    • RTOS:FreeRTOS
    • 工具链:STM32CubeIDE (GCC)

请求帮助:

  • 几秒钟后、什么因素会导致读数失败、特别是在 RTOS 环境中?
  • 在 RTOS 环境中使用 BQ769x2有什么具体注意事项吗?
  • 这是否与任务占先或 I2C 驱动器可重入性问题有关?

非常感谢提供任何调试和解决此问题的指导或建议。

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

    你好、Sai、

    几秒钟后、在 RTOS 环境中什么原因会导致具体的读数失败?

    从电芯电压值和 Temperature 返回的值来看、它看起来像是返回"FFFFFFF"这样的值。 这通常意味着没有为子命令提供足够的时间来完成操作。 我们建议您具有 至少 发送子命令之后、恰好在读取子命令之前等待2ms。  

    我们有  STM32示例代码、您可以使用这些代码作为参考、以提供帮助。 此 软件指南 可能也很有用。  

    [quote userid="634476" url="~/support/power-management-group/power-management/f/power-management-forum/1449641/bq76952evm-bq769x2-cell-voltage-and-temperature-readings-fail-after-few-seconds-in-rtos-environment 关于在 RTOS 环境中使用 BQ769x2有什么具体的注意事项吗?

    目前还没有我们所知道的。

    此致、
    Alexis

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

    尊敬的 Alexis:

    感谢您的快速响应和宝贵信息。

    在我的设置中、我将启动 BQ76952 16V 电源模块进行连接、并通过将其连接到 STM32 MCU I²C μ A . 提供的示例代码开始 裸机 、该设置运行完美。 但是、当我运行时 示例代码与 RTOS 相同 、这些值在前几秒钟内会正确显示、但随后会更改为您提到的无效值(例如FFFF)。

    我使用了 STM32的示例代码、延迟为2ms 命令之后发送相应的子命令、如文档中所示。 有趣的是、在不同的场景中 BQ76952EVM 通过连接到 STM32L5 I²C μ A 、我只连接 微型 USB 对于电路板、无需打开 BQStudio、相同的基于 RTOS 的代码即可正常工作!

    当通过 带有16V 砖型的 USB 供电时、此行为是否表明初始化存在差异? 或者、也许还有其他针对 RTOS 环境的时序或延迟考虑因素?

    期待您对此有深入的了解!

    此致、
    Sai Manikanta Badiga

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

    你好、Sai、

    您是否尝试过在 RTOS 中使用示例代码时添加比2ms 更长的延迟来查看是否发生了相同的问题? 我们已经看到客户增加了10ms 甚至100ms 以保证安全。

    此外、在您提到的不同场景中、它是否与下图类似?

    我会与我的团队仔细核实、看看他们是否对您的其他问题有更多了解。

    此致、
    Alexis

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

    尊敬的 Alexis:
    是的、我尝试了更长的延迟时间、但结果保持不变。
    我将 STM32 I2C 和接地引脚连接到了 BQ76952、但没有连接 VSS 或 REG1、如图所示。
    但是、当连接 Micro USB 时、它在 RTOS 中以2ms 正常运行。  
    我在连接或初始设置中是否漏掉了任何内容?

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

    你好、Sai、

    您是否愿意共享您的设置的图片或图像? 我不确定这不一定是设置问题;但是、进行检查并没有什么影响。

    您还想与 RTOS 共享一个逻辑分析仪文件来运行示例代码吗?

    此致、
    Alexis

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

    你好、Sai、

    当通过 具有16V 砖型的 USB 供电时、此行为是否意味着初始化存在差异? 或者、对于特定于 RTOS 环境的时序或延迟、可能还有其他注意事项?[/QUOT]

    在与我的团队核实后、据我们所知、没有什么是这样的。  

    我只连接 微型 USB 对于电路板、无需打开 BQStudio、相同的基于 RTOS 的代码也能正常工作![/QUOT]

    我意识到您曾提到它 在不 打开 bqStudio 的情况下的工作原理。 在使用 micro-USB 时、bqStudio 可能会导致通信干扰 和  EVM 上的 I2C 线路。

    您是否介意检查器件的 REG18并获取 TS1引脚的波形?

    此致、
    Alexis

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

    您好、Alexis、

    感谢您的答复和见解!

    目前、我没有逻辑分析仪、但我已经订购过、它应该很快就会送达。 获取该文件后、我将共享请求的所有文件和数据、包括 TS1引脚的波形以及 REG18的任何相关详细信息。

    我想再提一个观察结果:它不仅仅是 bqStudio 造成的差异。 即使我使用 Micro USB 通过墙上适配器为电路板供电(不连接 bqStudio)、基于 RTOS 的代码也能很好地工作。 无论是否涉及 bqStudio、这种行为似乎始终如一。

    期待听到您对此有何看法!

    此致、
    SAI

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

    你好、Sai、

    感谢您让我知道。  

    此致、
    Alexis