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.

[参考译文] TMS320F28035-EP:CAN 总线 Tx NAK

Guru**** 2538540 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1025021/tms320f28035-ep-can-bus-tx-nak

器件型号:TMS320F28035-EP

我很好奇、为什么我的 CAN 总线传输一个帧并不同时传输接收到的 ACK。

我有一个配备适当 CAN 驱动程序的 InnoMakerUSB2CAN。 我已经设置了一个具有 CAN Rx MBox 5和 CAN Tx Mbox 24、1000kbps 等的 F28035扩展坞

我正在将数据字段中的8个字节从 InnoMaker 传输到 F28035、然后将它们传输回 InnoMaker。

InnoMaker 包括接收到的 CAN 消息的 F28035 Tx ACK、但当 F28035将该消息发送回 InnoMaker 时、InnoMaker 会进行堆叠、但 F28035不包含消息中的 ACK。 根据总线分析器、F28035为峰值。 我在 F28035一侧似乎找不到任何错误、InnoMaker 似乎很高兴从 F28035接收到消息、所以我只是想知道为什么 F28035不在 CAN 消息中包含 ACK。

此外、我注意到、如果我将2条消息从 F28035发送到 InnoMaker、则消息之间的时序可能违反 CAN 总线协议。 请参见图像。

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

    Jeffrey、        

             低向 ACK 脉冲由接收器而不是发送器生成。 在图像的第一部分,您的注释“InnoMaker 向帧添加 ACK”不正确。 不是 InnoMaker 会添加此内容。 您在 CANRX 引脚上看到的这个低电平脉冲是由于 CANTX 引脚被驱动为低电平(以 ACK InnoMaker 发送的消息)。  

    在图像的第二部分,不是“F28035 NAK”。 您正在探测错误的位置。 ACK 由 InnoMaker 的 CANTX 引脚生成。 如果您探测该引脚、您的波形将与第一个波形的顶部相同。  

    我在 App.report https://www.ti.com/lit/SPRA890的第4页对此进行了说明。 另请参阅 www.ti.com/lit/SPRA876的第3.1和3.2节 。 另请参阅 www.ti.com/lit/SPRACE5的图2-6

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="352848" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1025021/tms320f28035-ep-can-bus-tx-nak "]此外、我注意到如果我将2条消息从 F28035发送到 InnoMaker、则消息之间的时序可能违反 CAN 总线协议。

    当背靠背传输帧时、 您将看到帧之间的隐性位时间低至11个。 (1 ACK 定界符、7 EOF 和3 IFS)。 在您的情况下、空闲时间可能低至11us。

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

    我同时连接了 F28035的 Tx/Rx 和 InnoMaker、现在一切都是合理的。 谢谢