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.
我正在尝试执行示例程序(https://youtu.be/TrKQN-sor-s)。 我正在使用2个 TI RM46x LaunchPad。 我已经将一个电路板的 DCAN1设置为 Tx、将另一电路板的 DCAN1设置为 Rx。 通过将 Tx 引脚连接到 Rx 引脚即可在不使用 CAN 收发器的情况下进行连接。
面临的问题:CAN 数据未发送、错误控制寄存器显示发送错误。 请参阅以下屏幕截图。
查询:
我是否遗漏了与以下提到的点相关的任何设置以获得预期输出?
1) 1)发送和接收 ID。
2) Message1配置设置。
3) 3)收发器是强制性的、或者不是强制性的。
4) 4)所需的时钟设置。
5) 5)需要的任何其他设置。
使用的工具:HALCOGEN
Code Composer Studio
此致、
Joel
您好!
如果您不使用 CAN 收发器、最好将2个器件放置在具有较短布线和较低带隙的 PCB 板上。
请使用应用手册作为参考:
https://www.mikrocontroller.net/attachment/28831/siemens_AP2921.pdf
根据您的建议、我尝试在节点之间使用较短的布线距离、但发送器端仍然显示传输错误。 除了已共享的屏幕截图之外、我是否还需要包括其他设置?
在中、示例程序轮询方法用于消息传输。 根据该链接 、使用 www.ti.com/.../spna131.pdf 中断方法。 CAN 数据传输应遵循哪种方法?
您好 Joel、
您可以使用轮询模式或中断模式。 两者都应该起作用。 由于您没有 CAN 收发器、请使用 AppNote (Siemens _AP2921.pdf)建议的方法、并将比特率更改为较低的值。
CAN 收发器向总线输出一个高电平(1)或一个低电平(0)、但是0可以主导1。 即、如果两个收发器尝试同时讲话、其中一个表示1、另一个表示0、则0将胜出。 我们只需使用二极管即可重新创建相同的情况、如下所示:
您好!
我已经尝试使用上述方法使用二极管、但问题仍然存在。 我已经尝试过降低波特率和减少节点间迹线距离的方法。 请建议问题可能出在哪。
此致、
Joel
您好、Joel、
我之前做过这种测试、它在低波特率下运行良好。 BTW、2块板之间只需一根导线。 总线应上拉至3.3V 而不是5V。
您好、QJ Wang、
我有带 TJA1050 CAN 收发器的 MCP2515 CAN 控制器。 它是否与 RM46x 兼容?
此致、
Joel
您好、Joel、
RM46有3个 CAN 模块。 如果您需要3个以上的 CAN、MCP2515可用作通过 SPI 扩展的 CAN。 TJA1050可用作 TMS570或 RM4x 的 CAN 收发器。