CanBus Shield seeedStudio无法捕获数据

时间:2017-05-28 16:35:40

标签: arduino decode can-bus

我已经购买了Seeed Studio Can Bus Shield V1.2,我在以200kbps的速度收听公交车时遇到了问题,但我已成功上市到我的汽车公共汽车上。

我有一辆运行速度为200kps的无证公交车(它不是汽车公共汽车)我需要嗅探,公交车上有3台设备。 canh和canl之间的阻抗为60欧姆。我已经切断了P1跳线并检查了螺钉端子接线时阻抗仍为60欧姆。 我把公交车地面插到了盾构地面。

我正在使用lib提供的receive_check示例。我已将总线速度设置为200kbps。

这辆公共汽车很好但没有收到任何东西。接收数据时Rx指示灯闪烁,我在MCP2551的引脚4上有信号,但没有显示任何信号。

为了确保做得好,我已将盾牌/ arduino插入我的车里。我的车以500kps的速度运行公交车。我让它以正确的方式工作,Arduino开始显示一条消息。

我有一台可以解码CAN BUS信息的picoscope示波器。

我的示波器毫无困难地对can总线消息进行解码。位时间约为5微秒,示波器自动配置为200kbps。

我比较了我的汽车和我的设备消息,它们看起来非常相似。我在oscillon上使用完全相同的设置(速度除外)来解码这两个消息。 我能看到的唯一区别是我的设备信号不像汽车的信号那么干净。

这是我的汽车信号(500kbps)

my can's canbus message

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

my devie canbus message

有时它有点吵,在这种情况下,oscillo无法解码,但大部分时间都是成功的。

low quality signal

这可能是问题的一部分吗? 我是否应该不时得到明确的信息?我没有得到任何。

我一直想知道配置是否适合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)

我也在CanBus lib中打开了调试模式 我在init上收到更多消息,但是当收到数据时,arduino保持沉默。

CAN BUS Shield init ok!
Enter setting mode success 
set rate success!!
Enter Normal Mode Success!!
CAN BUS Shield init ok!

我使用的是Arduino Mega。

我该怎么办?问题是什么?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

阅读数据表。 MCP2515需要处于仅侦听模式。  重置后,设备自动进入配置模式。然后,您将调用适当的功能以将设备置于仅监听模式。

所有答案都在阅读和理解的CAN总线库文件中。

仅收听模式是您需要利用库的一项私有功能。