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.

[参考译文] MCT8329A:I2C 通信时发出控制字上无确认

Guru**** 2815505 points

Other Parts Discussed in Thread: MCT8329A

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1608057/mct8329a-issue-on-i2c-communication-no-ack-on-control-word

器件型号: MCT8329A

你好

MCT8329A 和微芯片 PIC32MX795 之间的 i2c 通信存在一些问题。

我成功发送了目标 ID(地址 7 位+ 0)、因此得到了 MCT8329 的确认(在第 9 个时钟沿设置为 0)。 然后我尝试发送控制字(3 个字节)、但对于第一个字(为读取 16 位发送 0x80)、芯片没有进行确认。

我的想法是在没有 CRC 的情况下读取 MCT8329 上的寄存器。

是否有任何限制? 我做了许多测试没有成功…

capture.jpg

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

    尊敬的 Kevin:

    您能否验证连接到 I2C 总线的任何其他 I2C 器件是否共用同一个地址?

    器件似乎对地址字节无响应。 通常、我们会观察到确认信号之前的 SDA 线上出现高电平脉冲。 然而、这在目前的情况下并不明显。

    当您使用 不正确的 I2C 地址进行通信时、器件是否会发送 NACK?

    谢谢、

    Dhinesh

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

    您好 Dhinesh、

    感谢您的反馈、MCT8329A 是我的 i2c 总线上的唯一器件(PIC32 与 MCT 之间的直接连接)。

    我在地址上错了... 我的地址是 0x60、但由于目标 ID 上的回复和确认、我认为它是好的... (我发送的是 0x01)

    无论如何、现在我可以发送控制字、但对读取请求的回复始终是 0xFF

    我没有使用 CRC、我发送了 0x80(CR1:读取) 0x00 (CR2) 0x80(CR3:读取 ISD 配置)

    在这 3 个字之后,我发送了控制 ID +读取: 0b1100001.

    我做了什么?

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

    尊敬的 Kevin:

    您尝试读取的地址是 32 位字。 请相应地修改控制字。

    有关在主器件上对 I2C 进行编程的信息、请参阅以下应用手册: https://www.ti.com/lit/an/slla662/slla662.pdf

    谢谢、

    Dhinesh

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

    你好

    它现在工作了,谢谢,我修改了控制字内的 DLEN ,并在第二个起始字节前添加了“i2c start“(目标 ID + i2c 读取)

    低于我的 信号捕获值