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.

[参考译文] TMS320F28379D:LAUNCHXL-F28379D

Guru**** 2461010 points
Other Parts Discussed in Thread: LAUNCHXL-F28379D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1496161/tms320f28379d-launchxl-f28379d

部件号:TMS320F28379D
主题中讨论的其他器件:LAUNCHXL-F28379D

工具/软件:

您好、

我正在使用  LAUNCHXL-F28379D 进行 CAN 通信。

我使用了示例代码 can_ex2_loopback_interrupts  、其中我通过对中断进行注释并使用 can_msg_obj_no_flags 配置 can_setupMessageObject 来绕过所有中断。

我尝试在不使用中断的情况下发送 CANopen SDO 数据包、并 探测了 CAN_H 和 CAN_L 我观察到、SDO 数据包只有在从 main 函数退出后才会传输、并且它会连续传输、尽管没有 while 循环或无限 for 循环位于 main 函数内部、没有调用中断、并且在其他示例代码中也具有相同的行为。
我提供了延迟、以便电机驱动器可以确认发送的 CAN 打开 SDO 数据包、并能够使用 SDO 写入电机驱动的索引。
我想逐个发送数据包,因为我必须实现全 CAN 开放协议,以及为什么数据包只在主循环后才发送,为什么不在函数调用后立即发送。
请提供有关这些问题的说明,这是一个错误还是为什么要观察此行为 。

代码截图附在下面以供参考。

谢谢。

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

    Kishor、  

    如果您在此处放置一个断点、如果您继续点击跑步、它是否会在断点处持续停止? 根据说明、我想知道 MCU 是否持续复位。  

    -杰森  

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

    否、它不会在此断点处停止。

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

    请尽快解决前面提到的问题并恢复。  

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

    请解决上述问题、并提供详细信息并尽快回复。

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

    你好、Kishor、  

    您正在使用哪种 CANopen 协议栈? 因为 Launchxl F28379D 本身不支持 CANopen。  

    此致

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

    你好、Kishor、  

    您是否解决了 CAN 问题?  

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

    我正在实施基本的 SDO、PDO、NMT 功能。 我 只在代码中指定索引、子索引和所有与电机驱动器相关的内容,因此不使用 CANopen 堆栈或任何对象字典。 我必须 在电机驱动器上针对特定指标实施 CANopen DS402。  主要的问题是卡是传输 CAN 数据 ,甚至在从电机驱动器接收确认,甚至在删除所有中断,条件是它持续传输数据,并为实现 CANopen 我们需要发送各种不同的数据包,但不连续。 是错误还是任何寄存器条件、中断条件 将被触发或者对此进行了阐释  

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

    否、我尚未解决 CAN 问题、我面临的问题与前面提到的问题相同。  请解决上述问题、并提供详细信息并尽快回复。

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

    您好、Kishore:  

    我认为问题在于、Launchxl F28379D 适用于传统的 CAN 总线传输趋势、因为正如我所说、F28379D 本身不支持 CANopen 技术。 因此、它会像任何正常的 CAN 器件所能工作的那样持续广播一条消息。 我想您应该了解 CANopen 规范一次、并将外部堆栈与开发板一起使用。 我认为我们不能使用 CANopen 策略发送和接收 PDO 和 SDO。 它将作为没有 CANopen 堆栈的常规 CAN 广播设备工作。  

    我认为 TI 推荐用于 CANopen 的 Simma 软件栈、我个人使用过该栈并且它是有效的。   

    希望这对您有所帮助。   

    此致

    Chirag

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

    好的、我将尝试用于 CANopen 的 Simma 软件栈。

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

    我已经解决了 DAR 寄存器设置的重新传输问题、但问题是 只有在退出主函数后才传输数据包。 此外,如果我必须发送多个 SDO,PDO 数据包,然后在 CRO 上的数据是反射只有在退出主循环后. 此外、在处理各种索引时、如果在函数调用后未发送数据包、如何观察各种数据包及其确认。 请说明如何解决此问题以及出现此问题的原因。

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

    PDO 是否会发送请求并等待其他 CAN 节点的响应? 您是否在其他 CAN 节点上运行了 CANopen 协议或堆栈、从而让他们知道如何响应 PDO 请求?