6 个版本
0.1.5 | 2024年4月30日 |
---|---|
0.1.4 | 2024年4月22日 |
0.1.1 | 2023年12月11日 |
#657 in 硬件支持
每月399次下载
1MB
281 行代码
包含 (静态库, 1MB) c_lib/libcan2040.a
can2040-rust
这是 C 中的 can2040 的移植。基于此,我们可以使用 Rust 在 RP2040 上启用 CAN。
运行 CAN 示例
示例设备
- RP2040 开发板
- Waveshare SN65HVD230 开发板 (CAN 板): [Waveshare SN65HVD230]
- USB-CAN 适配器 (USB): [Amazon]
接线
-
RP2040 GPIO 26 <=> CAN RX
-
RP2040 GPIO 27 <=> CAN TX
-
RP2040 GND <=> CAN GND
-
RP2040 3V3 <=> CAN 3V3
-
CAN CAN-H <=> USB CAN-H
-
CAN CAN-L <=> USB CAN-L
运行 can2040_demo
示例在 Linux 上运行,使用相对较低的波特率 10_000。调试后,您可以自行选择更高的波特率。
准备 USB
将 USB 插入您的计算机,并确保相应的端口已启用(这里对应端口 can0)。
sudo ip link set down can0 && \
sudo ip link set can0 type can bitrate 10000 && \
sudo ip link set up can0
然后,运行以下命令以监控 CAN 总线上的消息以进行调试
candump can0
在 RP2040 上运行 Can2040_demo。
确保所有接线正确,并且如果您调整了 GPIO,请确保代码中相应的 GPIO 也进行了调整。一切准备就绪后,您可以运行以下命令,应该会看到 RP2040 持续向 USB 发送 CAN 帧
cargo run --release --example can2040_demo
发送以测试接收
在您的计算机上运行以下命令,并确保 RP2040 控制台窗口接收信息
cansend can0 123#DEADBEEF12345678
一些提示
- 可以使用逻辑分析仪连接到 CAN-H / L 的差分模式以获取正确的 CAN 信号。连接方法是连接 CAN-H 到信号,CAN-L 到地。
- 双通道示波器也可以连接到 CAN-H/L 以查看差分信号。
- 不需要全局公共地。即使获得的信号受到干扰,SN65HVD230 也可以提取正常的 CAN 信号进行 TX/RX。
依赖关系
~11MB
~216K SLoC