我的问题是关于使用 SPI 接口对 CAN 进行一些操作。在我的 Raspberry 上,使用 Raspberry OS 一切正常。
因为我想在 ROS 中使用 CAN 数据,所以我决定在其上安装 Ubuntu Server 20.04。在这样做的过程中,我遇到了一个问题(找不到设备“can”)。
这些是我的配置:
$ nano /boot/config.txt
dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25
dtoverlay=mcp2515-can1,oscillator=16000000,interrupt=25
dtoverlay=spi-bcm2835
dtparam=spi=on
。
$ ./can_setup.sh
#!/bin/bash
ip link set can0 up type can bitrate 1000000
ip link set can1 up type can bitrate 1000000
。
$ ls /dev/
显示 spidev0.0 和 spidev0.1 存在
我已经用逻辑分析仪分析了 MISO MOSI 和 SCK,没有发现任何东西。
有人能帮我吗?
答案1
假设您使用 Ubuntu 作为运行 ROS 的操作系统,您应该在 /etc/firmware/config.txt 中为 dtoverlay 输入条目。
我的带有 MCP2515 的 CAN 总线设备与 Ubuntu 22.04 配合良好。
然后尝试
ls /sys/bus/spi/devices/spi0.0/net
它应该显示类似
can0
希望这可以帮助 ...