我买了一台Seeed Studio Can bus Shield V1.2,我在听200kbps的总线时遇到了问题,但我成功地将其挂载到了我的汽车总线上。
我有一辆运行速度为200kps的无证公交车(不是汽车公交车),我需要嗅探一下,公交车上有3个设备。canh和canl之间的阻抗为60欧姆。我已经切断了P1的跳线,并检查了阻抗仍然是60欧姆,当接线的螺丝端子。我已经把公交车的接地插头插到防护罩的接地上了。
我使用的是随库提供的receive_check示例。我已将总线速度设置为200kbps。
这辆公交车初始化正常,但什么也没收到。接收数据时,Rx led闪烁,MCP2551的引脚4上有信号,但未显示任何内容。
为了确保做好事情,我已经把防护罩/arduino插到了我的车上。我的车是以每小时500公里的速度行驶的。我让它以正确的方式工作,Arduino开始显示一条消息。
我有一个可以解码can总线信息的示波器。
我的示波器可以毫无困难地解码can总线消息。比特时间约为5微秒,示波器自动配置为200kbps。
我比较了我的车和我的设备的信息,它们看起来真的非常相似。我在我的振荡器上使用完全相同的设置(除了速度)来解码这两个消息。我能看到的唯一区别是我的设备信号不像我的汽车信号那么清晰。
这是我的车的信号(500kbps)

这是我的设备的信号(200kbps)

有时它有点嘈杂,在这种情况下,振荡器无法解码,但大多数情况下它是成功的。

这会是问题的一部分吗?我应该时不时地得到一个明确的信息吗?我什么都没拿到。
我一直想知道配置是否适合200kbps的速度,所以我安装了维基页面上提到的中文工具。
对于我的速度200kbps,lib配置是:
#define MCP_16MHz_200kBPS_CFG1 (0x01)
#define MCP_16MHz_200kBPS_CFG2 (0xFA)
#define MCP_16MHz_200kBPS_CFG3 (0x87)我已经尝试了其他配置来达到这个速度,但是没有成功。
#define MCP_16MHz_200kBPS_CFG1 (0x01)
#define MCP_16MHz_200kBPS_CFG2 (0xF5)
#define MCP_16MHz_200kBPS_CFG3 (0x85)我还打开了调试模式,在arduino库中,我收到了更多关于初始化的消息,但CanBus在收到数据时保持沉默。
CAN BUS Shield init ok!
Enter setting mode success
set rate success!!
Enter Normal Mode Success!!
CAN BUS Shield init ok!我用的是Arduino Mega
我能做什么?有什么问题吗?
谢谢你的帮助
发布于 2018-12-17 22:45:59
请阅读数据手册。MCP2515需要处于仅侦听模式。设备复位后自动进入配置模式。然后,您将调用适当的函数将设备置于仅侦听模式。
所有的答案都在CAN总线的库文件中读取和理解。
Listen only模式是一个私有功能,您需要利用库。
https://stackoverflow.com/questions/44229649
复制相似问题