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.

[参考译文] BQ76942:处理时钟延展

Guru**** 2535750 points
Other Parts Discussed in Thread: BQ76942

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1381183/bq76942-dealing-with-clock-stretching

器件型号:BQ76942

工具与软件:

您好!

我将相对地使用远离 MCU 的 BQ76942 IC、因此我计划在两者之间使用 LT3960 I2C 到 CAN (物理)转换器、以减少可能对 I2C 总线产生的负面影响。 LT3960从器件将放置在 BQ76942 IC 附近、LT3960主器件将放置在 MCU 附近。 问题是 BQ76942 IC 执行 LT3960不支持的时钟延展。 我正在考虑在 BQ76942 IC 和 LT3960从器件之间使用另一个 MCU、其用作 BQ76942的"I2C 缓冲器"。 因此、主 MCU 将与该附加 MCU 进行通信、因为它将直接与 BQ76942通信(额外的 MCU 会将所需 BQ76942寄存器的内容复制到其存储器)、但不会发生时钟拉伸、从而与 LT3960兼容。 是否可以使用任何更简单的解决方案来代替额外的 MCU、以"消除 BQ76942的时钟延展"效应?

非常感谢、此致、Dejan。

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

    Dejan、您好!

    需要注意的是、需要支持时钟延展才能与 BQ76942正确通信。  

    此致、

    Thomas Rainey

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

    您好 Thomas:

    感谢您的答复。
    完全理解。

    或许用下面的原理图来解释我的想法会更容易:

    第1点显示了正常情况- BQ76942已连接并直接与主 MCU 通信
    第2点显示了使用 LT3960 (I2C 到物理 CAN 转换器)的想法、因为主 MCU 和 BQ76942之间的距离对于 I2C 接口来说太大。 问题是 LT3960不支持时钟拉伸 I2C 器件。
    第3点展示了我如何解决问题的想法。 建议在 BQ76942和 LT3960之间放置一个额外的 MCU。 支持时钟延展的附加 MCU 将读取 BQ76942中所需的寄存器并将值写入其存储器。 另一方面、主 MCU 会直接从额外 MCU 的存储器中读取这些值、而不会进行时钟延展。

    我知道这个想法有点复杂、但有什么其他建议可以解决我遇到的一个问题吗?

    非常感谢
    此致、
    Dejan。

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

    Dejan、您好!

    通过将 MSP-M0用作 I2C 转 CAN 桥接器、可以替代图2中的 LT3960。 减少 文档 介绍了执行此操作的方法并添加了指向一些示例代码的链接、可使开发更加轻松。

    此致、

    Thomas Rainey