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.

[参考译文] MCT8316A-Q1:I2C 总线恢复和内部复位逻辑

Guru**** 2893300 points

Other Parts Discussed in Thread: MCT8316A, MCT8316A-Q1, MCT8315A, MCT8329A

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1639016/mct8316a-q1-i2c-bus-recovery-and-internal-reset-logic

器件型号: MCT8316A-Q1
主题中讨论的其他器件: MCT8315AMCT8329A、MCT8316A

尊敬的 TI 团队:  

将 MCT8316A-Q1 与 100kHz I2C 主器件结合使用。 我们遵循数据表的指导并在字节之间使用~100us 延迟;在正常条件下 、I2C 看起来 是可靠的

但是、我们需要为总线可能挂起(例如,SDA 被目标保持为低电平)或器件停止响应的极少数边缘情况定义一种强大的恢复策略、这些情况是我们在实施字节间延迟之前遇到的问题。 在我们的现场应用中、无法选择对模块 (VM) 进行下电上电。

 模块进行下电上电可以正常工作、但在现场是不可接受的。

问题:

  1. 是否有 记录在案的 方法可以       在不移除电源 (VM) 的情况下复位 MCT8316A-Q1 或其 I2C 目标逻辑

  2. 如果不是、TI 是否 建议   MCU 侧  I2C 总线恢复(GPIO SCL 脉冲/停止)   并重新初始化外设?

  3. MCT8316A-Q1 是否有内部 I2C 状态机超时、会在一段时间不活动后自动释放总线?
  4. 如果看门狗配置为由 I2C 脚踢 (EXT_WD_EN=1、EXT_WD_INPUT =0、EXT_WD_FAULT =1)、则看门狗触发时“复位“的具体范围是多少? 它是仅禁用栅极驱动器/电机、还是重新初始化 I2C 外设逻辑?  
  5. 是否有任何有关 MCT8316A-Q1 I2C 稳定性或恢复过程的具体应用手册或勘误表?

谢谢、
Horia

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

    嗨、Horia、

    A1:另一种方法是通过睡眠进入/退出过程。


    A2:我们需要确定此问题的根本原因。 最佳方法是在 SCL 上施加 GPIO 脉冲、检查 MCU 是否从 MCT 器件退出 SDA 低电平状态的中间。 此外、当 MCT 以高速率或快速故障重试期间驱动电机时、I2C 总线可能没有足够的带宽、这可能会导致通信故障。 请记录具体情况、如果问题可重现、请尝试使用逻辑分析仪捕获此情况。


    A3:不可以、MCT8315A 和 MCT8329A 提供时钟延展、超时为 5ms。


    A4:看门狗超时会触发故障,该故障可配置为可操作 — 可以通过将 FET 设置为 Hi-Z 来停止电机、也可以仅报告故障而无需复位器件状态机。


    A5:请参阅下面的应用手册和勘误链接。

    如何为 MCx83xx 器件系列对 I2C 进行编程

    (+)【常见问题解答】量产器件信息 — 电机驱动器论坛-电机驱动器 — TI E2E 支持论坛

    谢谢、此致

    Venkatadri S.

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

    谢谢 Venkatadri;几个后续问题:

    答 1:如果 MCTMCT8316A  由 I2C 配置为速度命令、并且 DEV_MODE=SLEEP 模式、则将 SPEED/WAKE 引脚拉至低电平将复位 I2C?

    A2: 我只能通过在字节之间不插入 100us 来复制此 I2C 冻结。 (添加 100us 即没问题)。 如果未实现 100us、有时(运行几分钟后)、 MCT 会无限期地将 SDA 保持在低电平、从而冻结 I2C 通信。 我将尝试故意不添加 100us 来尝试触发该 I2C 故障、然后按照 A1 处的说明切换 SPEED/WAKE 引脚来测试它是否可以恢复。 请告诉我是否预计会释放 I2C 总线(从  MCT8316A 的角度来看)

    A4:如果看门狗 EXT_WD_FAULT 配置为“Latched Fault“、则当看门狗触发时、它也会复位 I2C 还是直接关闭 MOSFET?  

    A5:谢谢你,非常有用。 只是为了澄清 — MCT8316A 的 I2C 地址 是不可配置的、并且始终为 0x00(根据勘误表)、是正确的? (I2C 编程指南指出可以对 I2C 地址进行编程)。

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

    嗨、Horia

    请在线查看我的答案

    A1:是的、睡眠进入/退出通过引脚进行控制。 请参阅数据表中的进入/退出流程

    A2:我们建议使用 100µs、因为电机控制是高优先级中断、需要此延迟才能有效管理优先级。 如果存在任何响应问题、我们可以执行 SPEED 引脚切换。


    A4:它只是关闭 MOSFET;I2C 状态将保持不变。


    A5:对于 MCT8316A、地址始终为 0x00、而可以配置其他器件。

    谢谢、此致

    Venkatadri S.

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

    感谢您发送编  修。

    最后一个问题 — 在 SPD_CTRL_MODE = 10b(I2C 模式)中、“从睡眠状态唤醒后驱动电机所需的时间“是多少? 数据表中没有提到它、它仅针对其他模式列出。

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

    嗨、Horia、

    在 I2C 模式下、时序基于发出速度命令的时间。 您应验证睡眠到待机的转换时间。
    ISD 和启动期间的设备状态都相同 — 所有驱动操作将在发出速度命令后立即开始。
    当器件从睡眠状态唤醒时、第一个状态为待机状态、然后等待 I2C 命令。

    谢谢、此致、

    Venkatadri S.