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 问题、某些器件的 NACK。

Guru**** 2463330 points
Other Parts Discussed in Thread: MCT8316A

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1301041/mct8316a-i2c-issue-with-motor-controller-nack-with-some-devices

器件型号:MCT8316A

尊敬的德州仪器团队:

我们的应用具有多个通过 I2C 使用 MCT8316A 的电机(使用电阻降压)、该应用具有一个微控制器 SAMV71Q21、由于不能修改地址、我们使用 I2C 转换器从0x51变为0x00、 然而、由于这个原因、通过使用与我包含的调试器件相同的总线(显示为红色)、一个额外的主器件被标识为主器件2、一个从器件被标识为0x03。

通过使用主器件2 (调试)、我向地址0x51发送信息、字节0x00、然后我从电机 A 收到了 ACK、请查看图形、您可以看到从0x51转换为0x00是如何工作的、 没有任何问题。

黄色=SLC 总线

CIAN=SDA 总线

蓝色=转换器后的 SCL

Pink=SDA 转换器后

f=50.015kHz

接收到 ACK

但是、通过使用主微控制器1、我收到了 NACK、当主器件1需要时、电机控制器没有应答(f=49.55kHz)。

我尝试了主器件1与从器件0x03 (f=49.55kHz)进行通信、并且收到了 ACK、因此主器件1可以与 I2C 通信、因此本质上而言、问题是我尝试与电机 A 和主器件1进行通信时。

如果您能帮助我们解决以下问题、我将不胜感激:

1.为什么电机控制器采用一个微控制器的 ACK 方法,而不是另一个连接到同一个 I2C 总线?

2.在频率 ( f=50.015Khz 成功的通信)和 ( f=49.55Khz 失败的通信)之间是否存在差异?

3、导致此行为的原因是什么、当使用主设备1时、我们需要修改哪些内容才能接收来自电机 A 的 ACK。

如果 需要其他信息、请告诉我。

谢谢。

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

    尊敬的 Carlos:

    几个问题、

    1.转换后 CRO 信号颜色(粉色为 SCL ,蓝色为 SDA)

    2.后置转换器 SDA 信号时序与前置转换器不匹配,请重新检查信号是否不正确。 此外、未正确驱动后置转换器 SDA。 用调试器2 我可以看到信号,但不是很令人信服,而用原来的主机它甚至是差.  您能否检查 Liek 上拉值? 什么是上拉前置和后置转换器?

    谢谢、此致、

    文卡塔德里

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

    您好 Venkatadari

    非常感谢您在下面的支持,请找到蓝色的答案:

    1.转换后 CRO 信号颜色(粉色为 SCL ,蓝色为 SDA)

    是的、 正确、转换器后、粉色为 SCL、蓝色为 SDA。  

    2.后置转换器 SDA 信号时序与前置转换器不匹配,请重新检查信号是否不正确。

    SDA 不匹配  、因为转换器功能、 转换器之前的 地址为0x51、转换器之后的地址为0x00、因此预计会有不同的 SDA、因为电机只接受0x00地址 。不过、您看到、转换器之前和之后的 SCL 都是匹配的(预计不会有不同的 SCL)

    此外、未正确驱动后置转换器 SDA。 用调试器2 我可以看到信号,但不是很令人信服,而用原来的主机它甚至是差.  您能否检查 Liek 上拉值? 什么是上拉前置和后置转换器?

    上拉 前置转换器= 5.1k Ω

    上拉后置转换器= 5.1k Ω

    两侧连接到同一个 Vcc-GND。

    它与与 debug2共享电机驱动器接收器同样相关、因为 ACK 是第一个映像、但主器件1保持 NACK。

    在这方面有什么建议或反馈? 请告诉我。

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

    尊敬的德州仪器团队:

    我们发现接收命令存在软件问题、该问题使我们无法从电机驱动器接收 ACK。如您所见、调试2 -向电机控制器传输信息、但主器件1接收信息、 因此、当我们使用来自主器件1的传输命令时、可以接收 ACK、问题似乎与电机控制器使用的非标准 I2C 格式有关、因为需要特定的结构、 因此我们将修改软件、以便正确读取接收信息。

    我们可以关闭 TT。

    感谢您的支持。