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.

[参考译文] TMS320F280049:TMS320F280049上的 CAN 总线问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1036340/tms320f280049-can-bus-problem-on-tms320f280049

器件型号:TMS320F280049
Thread 中讨论的其他器件:SYSBIOS

您好!

F280049上的 CAN 控制器有一个有趣的问题。 我使用的是使用 GPIO32和 GPIO18连接的 CAN 控制器"A"。 使用不带环回的 CAN 控制器时、我没有从 GPIO32/CANA_TX 获取任何数据、但是、如果我启用外部环回、我可以使用 PCAN Explorer 在 PC 上从外部接收 CAN 消息。 我通过直接查看多路复用器寄存器检查了 GPIO18和 GPIO32的多路复用器配置、并且它们配置正确。 鉴于这些信息、我知道以下几点  

1) 1)位速率配置正确。

2)我的代码正在发送数据包、我可以正确接收数据包。 因此、到 CAN 收发器的发送路径(包括 CAN 收发器)工作正常。

以下是我使用 SYSBIOS 的测试代码、但我认为这与此问题无关。  

//CANA -> CAN0 Pinmux
GPIO_setPinConfig (GPIO_18_CANA_RX);
GPIO_setPinConfig (GPIO_32_CANA_TX);

//CAN0初始化
CAN_initModule (CANA_base);

//启用 CAN 测试模式
CAN_enableTestMode (CANA_base、CAN_TEST_EXL);

//有关如何设置的信息,请参阅驱动程序库用户指南
//更严格的计时控制。 此外、请参阅器件数据表
//了解有关 CAN 模块计时的更多信息。
//
CAN_setBitRate (CANA_base、DEVICE_SYSCLK_FREQ、125000、10);

//
//在 CAN 外设上启用中断。
//
CAN_enableInterrupt (CANA_base、CAN_INT_IE0 | CAN_INT_ERROR |
CAN_INT_STATUS);
//
//启用 CAN 中断信号
//
CAN_enableGlobalInterrupt (CANA_base、CAN_GLOBAL_INT_CANINT0);

//
//启用 CAN 发送的自动重试。
//
CAN_enableRetry (CANA_base);

//
//配置基于设备编号的消息对象。
//
CANDeviceNumSet (CAN_DEVNO_RMTPHS);

//
//启动可以模块 A 操作
//
CAN_startModule (CANA_base);

请提供任何帮助。

谢谢、

Richard。

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

    您好!

    我想知道问题是什么、当您使用 X1作为时钟输入时、您不能使用 GPIO18。 这确实引起了这样一个问题:您为什么要在连接时钟时不能使用的引脚上放置 CAN 总线信号、因为您需要时钟来实现正确的 CAN 总线时序! 我想故事的道德在于阅读整个数据表!

    谢谢、

    Richard。