0

这几天我遇到了一个问题,我的 Can Bus 在发送第一条消息后停止工作。

我使用 IOT-Gate-RPI 作为客户端,它具有 raspberry pi 3 计算模块和带有用于 can Bus 的 MCP2551 芯片的集成帽子。线路的另一端,作为显示器,我使用的是运行在 W10 上的 IXXAT 软件 CANAnalyzer 3 Mini。

这是我在 Linux 上的设置:在 /Boot/config.txt 上,我添加了:

dtparam=spi=on
dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25
dtoverlay=spi0-hw-cs #(For Kernel > 4.4.x)

我还确保它将在启动时安装:

auto can0
iface can0 inet manual
    pre-up /sbin/ip link set can0 type can bitrate 125000 triple-sampling on restart-ms 100
    up /sbin/ifconfig can0 up
    down /sbin/ifconfig can0 down

然后,使用 can-utils:

$sudo ip link set can0 up
$cansend can0 111#1122334455667788 #Random message

到目前为止,一切顺利,消息出现在另一边的监视器上。但是,如果我再次发送它,什么都没有出现,我必须将 can0 设置为向下然后向上,以便能够发送新消息。

[编辑 2021-02-10] 正如@Lundin 所问,我使用了示波器来检查信号形状。因此,为了解释新设置,数据由连接在 CAN 总线上的 BMS(电池管理系统)连续发送。在第一张图片上,只有这个 BMS 和一个 IXXAT CAN 转 USB 加密狗。信号非常整洁,所有数据都安全到达。在第二张图片中,我只是插入了我的 IOT-Gate-RPI 的 MCP2515 帽子,信号直接变得混乱。而且我只能如上所述发送一帧。

图片1

图片_2

Compulab 在 IOT-Gate-RPI 上给出的引脚排列也是第三张图片中的引脚排列。根据图 4,您将给出哪个引脚?

1 = ? 2 = ? 3 = ? 4 = ? 5 = ? 6 = ?

图片_3

图片_4

非常感谢您的帮助。

此致

4

1 回答 1

0

所以我刚收到 Compulab 支持的回复,声明的中断引脚有问题,它是 13 而不是 25。

在 /Boot/config.txt 上:

dtparam=spi=on
dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=13
dtoverlay=spi0-hw-cs #(For Kernel > 4.4.x)

谢谢大家的帮助,我学到了很多!

于 2021-02-15T11:00:50.257 回答