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.

[参考译文] C2000-F28004X-POWER-EST-CALC:F28004X CAN 远程帧响应帮助

Guru**** 2535750 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/679883/c2000-f28004x-power-est-calc-help-for-f28004x-can-remote-frame-response

器件型号:C2000-F28004X-POWER-EST-CALC

您好!

我将 C2000 F28004X 用于 CAN 远程功能、我需要执行以下步骤:

1.接收远程标准 ID 0x701帧

2. 在接收远程帧后 ,发送一个字节的0x701数据帧,

我只使用一个消息对象来接收0x701远程帧并发送0x701数据帧、  MSG_OBJ_TY_RX_REMOTE -可以接收远程请求消息对象、 无法自动传输数据帧、因为 我希望反馈的一个字节数据 可以通过软件更改、 如果使用  自动发送、那么一个字节数据 不能由软件控制、现在我配置可以驱动和 MCU 知道何时接收到0x701远程帧、 然后我使用同一个报文对象来发送数据帧、可以发送0x701数据帧、但帧的长度由远程帧长度控制、如果远程帧的数据长度为0、 那么0x701数据帧的长度也是0,即使我 想设置为1,我也会尝试从 0将 CAN_O_IF1MCTL DLC (发送 IF1)写入1,或者尝试将 CAN_O_IF2MCTL DLC (接收远程帧时接收 IF1)从0写入1,它无法工作。 您能否帮助您设置 DLC 并使其正常工作?

我还尝试使用另一个消息 ID 来仅发送0x701数据帧,我发现 MCU 在接收到0x701数据帧而不是远程帧后,将发送一个字节的0x701数据帧。 如果我想让这两个步骤在开始时运行良好,应该如何配置 CAN 驱动器? 一个用于远程的报文对象,一个用于具有相同 ID 的数据,或者只有一个用于接收和发送的报文对象?

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

    您无法更改 DLC 大小。 当您接收到远程帧时、响应帧必须具有相同的 DLC 大小、这是 CAN 协议的要求。 如果您可以更改(如果可能在系统中更改)以便远程帧 DLC 为1、则可以使用1字节的数据进行响应。
    如果您继续接收常规帧、正如您在第二段中提到的、您应该设置一个消息对象来接收它、然后设置第二个消息对象来传输字节。

    此致
    Chris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在我配置一个接收帧和一个字节的发送帧后、我要解决的问题是将接收远程帧 DLC 设置为两个字节、并将具有相同 ID 的发送帧 DLC 设置为一个字节、 然后、无论远程帧长度是零、一还是两、我都可以接收远程帧、我将发送具有一个字节消息的相同 ID 帧、它运行良好、再次感谢。