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.

[参考译文] ISO1641:无法与一个特定的从器件通信

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

https://e2e.ti.com/support/isolation-group/isolation/f/isolation-forum/1340104/iso1641-unable-to-communicate-with-one-specific-slave-device

器件型号:ISO1641
主题中讨论的其他器件:BQ76942BQ76952、、、 ISO1640

大家好!

我一直在测试 ISO1641B IC 以在 MCU 主器件和 BQ76942 AFE 从器件(地址0x60)之间执行隔离式 I2C 通信。 遗憾的是、我无法成功;隔离器似乎未能将一些时钟脉冲从 SCL1传递到 SCL2。 我附上了示波器中显示此问题的图像:

  • 粉色:SDA2 (从器件)
  • 绿色:SDA1 (主器件)
  • 黄色:SCL2 (从器件)
  • 蓝色:SCL1 (主器件)

主器件(蓝色)发送的一些时钟不会传递到从器件(黄色)。 发生这种情况后、总线进入 BUS_BUSY 状态、看不到进一步的通信。 此外、每次我 重新启动主器件和从器件时、我都会观察到相同的波形-每次都削波完全相同的 SCL 脉冲。

  • VCC1相对于 GND1为3.3伏。 SCL1和 SDA1 使用4.7k 电阻器上拉至 VCC1。
  • VCC2短接至 VCC1、GND2短接至 GND1。
  • SCL2和 SDA2使用2K 电阻器上拉至 VCC2。

我在从侧尝试了许多电阻器:2K、4.7K、6.8K、10K 和20K。 所有这些都显示出非常类似的 SCL2缺失的症状。 主侧始终有到 VCC1的4.7K 上拉电阻

我尝试过50kHz、100kHz 和400kHz 波特率。 SCL 时钟也经常错过。

我还尝试了向 VCC2提供5V 电源、但没有效果。

有 一个更令人困惑的 行为、我希望这可能有助于缩小问题范围:

  从 I2C 总线移除 BQ76952从器件后、隔离器看起来确实在工作。 SCL2完全匹配 SCL1。

 同样、当我尝试与地址0x40进行通信(不在总线上)时、SCL2匹配 SCL1。

 当我将 MCU 的 I2C 总线直接连接到从 器件的 I2C 总线时、我能够在没有隔离器的情况下在 MCU 和从器件之间进行通信。 那么、 从器件肯定会工作。 同样、我 能够通过该隔离器与不同的从设备(MPU9250传感器)进行通信、而不会出现问题。 隔离器似乎也能正常工作。

为什么某些 SCL 脉冲会丢失、我该如何解决该问题?

谢谢。

阿鲁什

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

    您好 Arush:

    感谢您迄今为止进行的详细调试。 我将详细讨论这一点、并在明天与您联系。  

    我首先要检查的是、您是否使隔离器的 C1或 C2负载电容值过载。 1侧 I2C 线路仅用于与 MCU 直接连接。 与隔离器的1侧连接了多少个器件?

    [FAQ] ISO1640:为什么 ISO1640/ISO1641 1侧的最大负载电容和负载电流额定值低于2侧? -隔离论坛-隔离- TI E2E 支持论坛 

    此致!
    安德鲁

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

    目前、SIDE1只有一个 MCU、处于主模式。 Side2只有 BQ76942作为 从器件。

    另一个信号是、我稍后将把从设备连接到1号侧面。 最终目标是 MCU 与第一个从器件实现隔离式通信、与第二个从器件实现非隔离式通信。 这可能会导致问题吗?

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

    您好 Arush:  

    则可能会导致问题。 为获得最佳数据表性能、我们建议隔离器的第1侧专用连接到 MCU。  

    我们目前应该能够排除容性负载、因为总线上好像只有 MCU 和 BQ76942器件。 通常、这些 I2C 隔离器看不到协议、会简单地将信号传递到隔离器的另一侧。 因此、除非从器件正在尝试驱动时钟线、否则隔离器没有明显的理由错过 SCL 位。 从示波器捕获中可以看出、隔离器的从器件侧发生了故障。 BQ76942是否有任何原因将 SCL 驱动为低电平并导致总线争用?  

    此致!
    安德鲁

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

    Andrew、您好!

    谢谢您的参与。

    据我所知、 BQ76942 在任何条件下都不会驱动 SCL。  

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

    您好 Arush:  

    上一篇文章没有太多信息要介绍。  

    我 只能 提供以下进一步的意见和建议:   

    1. 我怀疑在协议级别有一些错误。 由于我没有看到从 SDA2到 SDA1的有效传输、因此看起来确认位被覆盖。 绿色波形中的支架是1侧 VOL 区域的结果。
    2. 因此、确认位和停止位(在后续数据包中)看起来都被错过了。 这暗示了一个协议级问题。 尤其是因为(粉色) SDA2线路在数据停止后保持低电平。  
    3. 此外、最后两个示波器屏幕截图(移除 BQ 器件时)显示、黄色信号在传输结束后未被拉高。 这意味着数据包中没有"停止条件"。

    此时提出的唯一建议是测试不同的 I2C 隔离器、或为 BQ76942制定新思路、以了解它们是否可以提供进一步的见解。  

    此致!
    安德鲁

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

    Andrew、您好!

    感谢您的深入了解! 直到现在我才注意到 ACK 位损坏。 我刚刚重新测试、结果是一致的。 第一个事务始终具有该损坏的 ACK 以及相同的缺少 SCL。

    不管怎样、我已经 在电源管理论坛上发布了有关这个主题的新话题、正如您建议的那样: https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1341792/bq76942-isolated-i2c-communication-with-iso1641

    我还将尝试其他一些 I2C 隔离器、看看我是否能这样做一些进展。

    谢谢。

    阿鲁什

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

    您好 Arush:  

    谢谢您告诉我。 另请注意、当我说尝试不同的隔离器时、我建议尝试不同的 ISO1641 (这是 A-B-A 交换)、以查看新器件是否问题继续存在、或者问题仅出在原始器件。

    不管我现在要关闭该主题。 如果您有其他问题、请随时创建新主题或点击此处进行跟进。  

    此致!
    安德鲁  

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

    Andrew、您好!

    问题已解决。 事实证明、 BQ76942 确实会将 SCL 信号驱动为低电平、以执行时钟扩展。 由于 ISO1641具有单向时钟、因此 MCU 无法支持时钟扩展。

    解决方案是改用支持双向时钟的 ISO1640。 这反过来使时钟扩展在总线上工作。

    目前、在我的测试台上、我已经能够使用第二个 ISO1641 IC 建立通信。 我通过 第二个 隔离器的 SDA1、SDA2引脚传递了 SCL 信号、 我希望这些信息能帮助其他面临同样问题的人。

    我尚未找到 ACK 位损坏的明确解释、但我不再面临该症状。

    非常感谢您的帮助!

    此致!

    阿鲁什

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

    尊敬的 Arush:  

    我很高兴我可以帮助您找到解决方案、并感谢您回来更新此帖子、使其包含您的解决方案! 请记住、在建议的答案或其中一个回复上单击"此已解决我的问题"、以便将来的用户更容易找到该帖子。

    此致!
    安德鲁