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:I2C 通信已死

Guru**** 651100 points
Other Parts Discussed in Thread: MCT8316A, MCT8316AEVM, MSP430FR2311, MSP-EXP430FR2311, MSP430FR2355, MSP-EXP430FR2355, MCF8316A
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1184902/mct8316a-i2c-communication-is-dead

器件型号:MCT8316A
主题中讨论的其他器件:MSP430FR2311MSP-EXP430FR2311MSP430FR2355MSP-EXP430FR2355MCF8316A

您好!

我甚至在与该器件首次接触 I2C 时遇到问题。 起初、当 FG 引脚没有上拉电阻器时、我只在第一个字节后得到 NACK。 添加 FG 上拉电阻后、器件完全不会出现问题、并且在首次 DeviceID 传输后似乎挂起 I2C 总线、只有一个完整的电源周期才会复位系统。

这是我的电路。 您能看到它有任何问题吗? 此致、Goran。

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

    您好、Goran、

    查看原理图后、我只为您的 VM 电容 C70的原理图提供了一个建议、建议使用10uF。

    您是否使用定制 MCU 向 MCT8316A 发送 I2C 命令? 您使用的目标地址是什么?

    您有 MCT8316AEVM 吗? 如果是、您能否尝试使用跳线从 EVM 的 J6接头为 SCL、SDA 和 AGND 引脚布线。

    1. 断开 SCL、SDA 和 AGND 的跳线与 J6的连接
    2. 从这3个引脚的左侧跳线连接到您的定制 PCB
    3. 通过微型 USB 将 EVM 连接到 PC
    4. 为定制 PCB 加电
    5. 尝试使用 MCT8316A_GUI 进行读取/写入

    此致、
    Eric C.

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

    尊敬的 Eric:

    是的、我使用的是 STM32H750。 目标地址为0x00。 不可以、我没有 EVM、但我将与办公室联系以查看是否有 EVM 可用。

    此致、

    Goran

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

    您好、Goran、

    如果可能、您能否使用逻辑分析仪捕获 I2C SCL 和 SDA 线路并提供波形?

    这可能是与时序相关的问题、具体取决于 在 STM32H750上实现协议的方式。 有关使用 MSP430FR2311的 I2C 通信协议的软件实现、请参阅随附的 CCS 工程:

    在 MSP-EXP430FR2311 LaunchPad 上进行了测试:
    e2e.ti.com/.../5086.SoftwareI2C_5F00_MSP430FR2311_5F00_MCF8316AEVM.zip

    或者、在 CCS 项目下使用 MSP430FR2355实现 I2C 通信的硬件:

    在 MSP-EXP430FR2355 LaunchPad 上进行了测试:
    e2e.ti.com/.../1512.HardwareI2C_5F00_MSP430FR2355_5F00_MCF8316AEVM.zip

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

    请注意、上面提供的示例项目是为 MCF8316A 设计的、因此您需要相应地更新 MCT8316A 的寄存器地址和 I2C 目标地址。

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

    捕获非常简单:生成一个启动条件、主器件生成9个 SDA 低电平的时钟(目标 ID 0)、然后 SCL 和 SDA 都"永久"保持低电平。

    我还记得、计划于22年第4季度发布该器件的新修订版。 它是否可用?

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

    您好、Goran、

    如果看不到逻辑波形捕获、很难判断 I2C 命令中存在哪些问题。 您使用的 I2C 时钟速度是多少? I2C 是通过 软件位拆裂还是硬件 I2C 外设实现的?

    如果您没有 MCT8316AEVM、我建议您获取 MSP-EXP430FR2355 LaunchPad 并使用 上述硬件 I2C 项目 为您提供工作 I2C 通信的参考逻辑波形。

    目前、我没有 MCT8316A 新版本的确切发布日期。

    此致、
    Eric C.

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

    我们使用的是 STM32H750上的内置 I2C 端口。

    因此、我发现了这个问题、同一总线上的两个 DAC 芯片正在响应/干扰常规调用 ID 0的流量。 您为什么选择该 ID ... 现在、我们必须向总线添加多路复用器...

    关于"100us 字节间延迟问题"、我尝试使用10kHz 的 SCL 频率、但遇到了时序问题。 ST 工具可能无法生成有效的10kHz I2C 端口配置、现在我不知道。

    关于"100us 字节间延迟"要求、您能具体说明何时需要。 到目前为止、我已成功地使用32位以100kHz 的全速(无延迟)发送到20个寄存器。 我似乎还记得、NACK 问题仅在芯片"工作"时出现、即 电机启动时是否正确? 另一种方法是在 NACK 处重新发送完整的寄存器读/写命令、直至其正常工作、还是会干扰芯片?

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

    您好、Goran、

    很抱歉、您遇到了0x00目标地址问题。 这也是 此处列出的 MCT8316A 的勘误表。 这将在下一个器件版本中修复、以便 用户可配置 I2C 目标地址。

     I2C 事务中每个字节之间需要100us 的延迟。 这是为了解决   与 MCF8316A 的 I2C 通信问题不同的问题、其中器件算法可能会在电机旋转时因 I2C 命令而锁定。 MCT8316A 在电机旋转时继续进行 I2C 事务处理没有问题。

    此致、
    Eric C.

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

    感谢您的更新! 我需要仔细检查、MCT8316AV 在字节之间不需要100us 的延迟? 这与数据表(SLLSFH8B 2021年8月- 2022年2月修订版)第85页的第8.6.2节相矛盾。

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

    您好、Goran、

    今天是 TI 假日、但我们的目标是在本周结束前提供响应。

    此致、

    Anthony

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

    您好、Goran、

    很抱歉造成混淆、但 MCT8316AV 的每个字节之间也需要100us 的延迟。

    我的意思是、对于 MCF8316A 和 MCT8316A、由于不同于  MCF8316A 的勘误表#8的原因、需要100us 的延迟、这 不会影响 MCT8316A。

    此致、
    Eric C.