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.

[参考译文] CCS/TMS320F2.8377万D:CAN通信CAN_EXTERNAL _Transmit 2.8377万d

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/618139/ccs-tms320f28377d-can-communication-can_external_transmit-28377d

部件号:TMS320F2.8377万D
主题中讨论的其他部件:controlSUITESN65HVD233ISO1050

工具/软件:Code Composer Studio

当 我在 2.8377万d中使用函数CAN_EXTERNAL _Transmit时, 此函数总是出错并中断操作。  GPIO均已正确配置。

CAN -一个模块可以  正常发送消息(只有一条消息),然后程序中断并停止运行,因为CANB模块无法接收消息。 你能向我解释一下原因吗?

您能向我解释一下此函数的具体功能吗?( CAN_EXTERNAL _Transmit) 。 非常感谢

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

    您好,

    您能否描述您如何以物理方式连接CAN-A和CAN-B?  外部CAN针脚是否通过CAN网络(或CAN总线)?

    谢谢!

    约瑟夫

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不连接CAN-A和CAN-B,我认为它们在主板上已经相互连接。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的Joseph:
    顺便说一句,您能不能向我解释一下此函数的特定功能(CAN_Loop.c) ? 我可以使用此函数(CAN_Loop.c)从外部接收消息或向外部发送消息。 如何修改?

    HIS是函数C:\ti\controlSUITE\DEVICE_SUPPORT\F2837xD\V210\F2837xD_Examples_CPU1\CAN_loopback的2837的位置
    谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    在您所使用的示例中,CAN引脚的CANRX和CANTX引脚必须连接到收发器,以生成输出到CAN总线的差分信号,以便测试CAN_EXTERNAL_Transmit工作。  如果您只想了解CAN通信如何工作而无需使用CAN收发器和CAN总线,您可以使用CAN_Loopback示例。

    此致,

    约瑟夫

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

    CAN_Loopback测试基本上将数据从CANTX引脚传输到CANRX引脚,并检查传输的数据是否等于接收的数据。 初始传输的数据为0,每次递增1,这实质上传输CANTX引脚中ASCII字符的所有组合。 这实际上是一个内部测试,用于检查CAN模块和针脚的基本功能。

    如果要从外部接收或发送消息,请使用测试CAN_EXTERNAL _Transmit.c. 然后,您需要将CANTX和RX引脚连接到收发器(例如 SN65HVD233或类似产品),以便将CAN模块连接到CAN网络。 这是CAN的基本要求,因为CAN总线将CAN连接到网络,即使在嘈杂的环境中,也依靠差分信号可靠地运行。 将来自CAN模块的CANTX和RX信号转换为差分信号由收发器完成。 建立与CAN网络的连接后,节点之间才能进行完全通信。 在示例CAN_EXTERNAL _Transmit.c中,CAN模块A传输数据,而CAN模块B接收来自同一2.8377万D芯片的数据。 只要模块连接到CAN网络,您就可以扩展测试,以便您可以使用CAN模块从其他设备传输/接收数据。

    如果您有疑问,请告诉我。

    此致,
    约瑟夫
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以通过不带收发器的CAN_Loopback测试CAN模块。 如果您必须立即测试CAN_EXTERNAL_STmit,则应添加CAN收发器,如ISO1050。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复,我解决了我的问题。