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.

[参考译文] MCF8316A:I2C 问题- NACKing 正确的 i2c 地址(0x01)

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1340329/mcf8316a-i2c-issue---nacking-correct-i2c-address-0x01

器件型号:MCF8316A
主题中讨论的其他器件: MCF8315A

我看到 MCF8216A 不确认 i2c 地址0x1 (默认)的问题。  我看到了使用 EVM i2c 总线接口以及自己的 MCU i2c 接口的相同行为。  在这两种情况下、第一个字节后都有一个 NACK、而不是 ACK。  唯一的例外是 EVM 似乎以某种方式规避了这一点-它在第九个时钟周期期间将 SCL 线路保持在低电平。   似乎 EVM 不知何故知道忽略了 NACK -请参阅图像

我的 MCU 实现使用 Pi Pico (RP2040)、我似乎不具备像 EVM 那样屏蔽 NACK 的能力。  以下是我的 MCU NACK 的一个示例:

我已经阅读了一些关于这个特定问题的其他主题、但找不到解决方案。  例如、FB 引脚通过5.1K 电阻器连接到 AVDD。  原理图如下所示:

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

    大家好、McKay:

    使用 EVM I2C 总线接口时、您是否正在使用接头 J6将 MCU 连接到 MCF8316A?  

    您是否可以将 Motor Studio 与 EVM 配合使用以与 MCF8316A 通信?

    您的 MCU I2C 实现是否使用硬件外设或软件位拆裂?

    此致、

    约书亚

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

    是的、我要连接到 MCF8315A EVM J6接头。  我使用 MCF8316A_GUI 版本1.1.8读取 ISD_CONFIG 寄存器。  此设置就是我在图中所显示的设置。

    我的 MCU I2C 实现使用硬件外设。

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

    EVM 似乎正在执行一些时钟扩展以避免 NAK。  下面是第一个字节的类似图像、但具有更长的 NAK 而没有第9个时钟周期:

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

    我刚意识到、尚未在不使用 J6接头的情况下检查 I2C 总线。  因此、我重新安装了 跳线、以便 EVM 与板载 MCF8316A 通信。  没有改变、第一个字节与上面的图像相同-仍然在第一个字节上获得 NAK。  不知何故、NAK 似乎对 EVM MCU 没有影响。

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

    我一直在读 I2C 工作原理、并偶然发现了时钟扩展的概念。  MCF8316A 是否在 SCL 线上有硬件来执行时钟延展?   我猜可能不是因为我看到不同的运行方式、这取决于在使用的 MCU。。。除非我的 MCU 在第8个时钟周期后不重新排列 SCL 线路。   在第8个时钟周期后、EVM 上的 MSP430 MCU 是否让 MCF8316A 控制 SCL?

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

    大家好、McKay、

    请允许我花点时间来研究您关于 SCL 线路的问题。 我将在周四前回来。

    此致、

    约书亚

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

    我发现问题是 数据有效确认时间长于 SCL 频率。  EVM 实现看起来 注意到了这一点、并等待 ACK 一段时间、而不考虑 时钟频率是否较快。  据我所知、我的 MCU 不允许我实现 ACK 等待时间。  相反、我只是降低了 SCL 频率、以便让 MCF8316A 有更多的时间来控制 SDA 线路并发出 ACK。  下图显示了使用较慢 SCL (10kHz 而不是300ish KHz)的 MCU 的 ACK: