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.

[参考译文] TPS929240EVM:器件支持通过 CAN 接口实现 FlexWire 协议

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1422597/tps929240evm-device-support-implementing-flexwire-protocol-over-can-interface

器件型号:TPS929240EVM
主题中讨论的其他器件:HALCOGEN

工具与软件:

您好!

我们在通过 CAN 接口实施 FlexWire 协议以与驱动程序通信时遇到问题。 以下是该问题的详细说明:

环境:

我们已经成功实现了 FlexWire 协议并通过 Hercules TMS570LC43中的串行接口(SCI)对其进行了连接。 通过这种方法、我们发送同步字节(SYNC)、器件地址(dev addr)、寄存器地址(reg addr)和计算得出的 CRC。 使用这种串行接口、我们能够毫无问题地控制这些驱动器。

CAN 协议问题:

当我们尝试使用 CAN 协议执行相同的通信时、我们会遇到问题。 我们已经使用 Halcogen 配置了 CAN 总线参数、包括 ID、频率和其他相关设置。 正如预期的那样、我们可以在 CAN 总线上(CAN_H 和 CAN_L)观察包含配置参数的消息。 与串行接口一样、数据字节包括同步字节、器件地址、寄存器地址和计算出的 CRC。 然而、通过 CAN 总线进行通信时、驱动器不会响应这些消息。

我们想知道通过 FlexWire 协议利用 CAN 接口的正确过程。 具体而言、CAN 协议是否需要与串行实现不同的其他注意事项或配置? CAN 接口是否存在我们可能忽视的任何特定定时、消息组帧或数据解释问题?

对于如何通过 CAN 接口正确实施 FlexWire 协议以确保与驱动器成功通信的任何指导、我们都将不胜感激。

感谢您的支持。

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

    您好!  

    如果接收到正确的数据字节、TPS929240应进行响应。

    是否 使用 TPS929240EVM 电路板进行测试?  请检查跳线配置是否正确。 (请参阅图3-4。 连接 TPS929120CANEVM 时的 TPS929240EVM 跳线配置)。  

    如果跳线配置正确、您可以使用数字分析仪捕获 RX 数据并与我共享。  

    在两个主帧之间、需要考虑 TX 环回的延时时间。 例如、写入命令延迟为2字节(STATUS+CRC 字节)、读取命令延迟为 N+1字节(数据+ CRC 字节)。  

    有一个基于 MCU430的示例代码可供您参考、您可以从 TI 网站下载它。  

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

    您好!

    是的、我目前正在测试 TPS929240EVM、并且我已遵循用户指南中所述的跳线配置、尤其是图3-2:未连接 TPS929120CANEVM 时的 TPS929240EVM 跳线配置。 CAN 收发器已成功 从 TCAN1042HGDRQ1的 RXD 引脚接收 CAN 帧

    我正在尝试发送 CTRLGATE 寄存器以解锁器件、但发送初始消息后未收到任何响应。 我已确认 CAN 帧以正确的配置到达器件、但缺少来自驱动器的预期响应或确认。

    此外、我已经确保跳线设置符合我所使用的设置。 您能否更深入地了解器件为何无法响应此命令? 通过 CAN 协议解锁器件时、是否需要考虑特定的延迟、时序或其他配置?

    此外、我将根据您的建议使用数字分析仪采集 RX 数据并与您分享、以帮助进一步诊断问题。

    感谢您的帮助。

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

    请将您在 RX/TX 上捕获的数据发送给我、以便我对具体情况有更多了解。  

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

    大家好、这些是我使用数字分析仪获得的捕获结果。

    第一个帧是 CAN 帧、ID 为0x01。 在数据中、第一个字节为同步字节、第二个字节为 DEV addres、即写入位(0x80)或器件 addres (0x01)、其结果为数据字节2中的0x81。 然后寄存器加数、在本例中、我想写入控制门(0x96)、然后是数据(0x43)和最后一个字节、这是计算出的 CRC (0x6B)并使用 TPS 工具进行检查。 另外3个字节是 CAN 帧协议的其余部分。  

    第二个图像是 Hercules TMS570在无响应的 CAN 总线上发送的帧。 500kb/s 的主帧永远无法获得响应、正如您在图像上看到的那样、延时时间应超过所需值

    请找到 zip 中随附的两张图像

    .e2e.ti.com/.../Log_5F00_can_5F00_time.zip

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

    我不确定您要进行测量的电路板位置。 它在 Rx 引脚上吗? 虽然 TPS929120能够检测到的帧肯定不是如此、如下图所示。 需要检查 数据质量。  对我而言、 我无法从下面的波形获取目标数据。  

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

    您好!

    在参数中、0x55是同步字节。 0x81是写入位||器件地址0x01。 0x96是我想要写入的寄存器。 0x43是数据、最后0x6B 是 CRC。 以蓝色显示的0xD7是由 CAN 协议帧计算的 CRC

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

    什么是红色曲线? 您能否与我共享原始文件? 谢谢!  

    001、8是什么? 什么是00 02 00 3C、D7、在 CRC - 0x6B 后?

    如果未禁用 ACK、则应等待2个字节(STATUS+ CRC);  

    TPS929240使用 FlexWire 协议(请在数据表中查看详细信息)