17.树莓派拓展板¶
17.2 CAN通讯¶
17.2.1 DTS配置¶
该拓展板使用MCP2515来实现CAN通信,关于MCP2515的dts配置如下:
注意
固件中没有适配MCP2515,若需要使用CAN接口,根据以下内容配置即可
arch/arm64/boot/dts/rockchip/rk3568-toybrick-x0-linux.dts
1/ {
2 mcp251x_clk: mcp251x-clk {
3 compatible = "fixed-clock";
4 #clock-cells = <0>;
5 clock-frequency = <12000000>; //根据MCP2515模块的硬件晶振设置 12MHz
6 };
7};
8
9&spi3{
10 status = "okay";
11 pinctrl-0 = <&spi3m1_cs0 &spi3m1_pins>;
12 pinctrl-1 = <&spi3m1_cs0 &spi3m1_pins_hs>;
13 max-freq = <5000000>;
14 mcp2515: mcp2515 {
15 compatible = "microchip,mcp2515";
16 pinctrl-names = "default";
17 pinctrl-0 = <&mcp2515_irq1_pins>;
18 reg = <0>;
19 clocks = <&mcp251x_clk>;
20 spi-max-frequency = <2000000>;
21 interrupt-parent = <&gpio3>;
22 interrupts = <RK_PB1 IRQ_TYPE_EDGE_FALLING>;
23 vdd-supply = <&vcc3v3_sys>;
24 xceiver-supply = <&vcc3v3_sys>;
25 status = "okay";
26 };
27};
28
29&pinctrl {
30 mcp2515 {
31 mcp2515_irq1_pins: mcp2515-irq1-pins {
32 rockchip,pins = <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
33 };
34 };
35};
17.2.1 CAN收发测试¶
首先将拓展板与SC-3568HA板卡40PIN相连
连接如下图:
17.2.1.1 回环测试¶
板卡带有CAN测试工具,连接好拓展板后输入命令测试
注意
1.回环测试无需连接CAN_H和CAN_L;
2.pin脚连接方式为一一对应,即1 pin脚对应拓展板1脚;
设置波特率以及回环模式:
1#将CAN0接口关闭
2ip link set can0 down
3#设置比特率为 250000Hz,同时启用回环模式
4ip link set can0 type can bitrate 250000 loopback on
5#将CAN0接口启用
6ip link set can0 up
打开两个终端窗口,测试can0自收发:
1#终端1
2candump can0
3
4#终端2
5cansend can0 -i 0x321 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88
6
7#或者只使用一个终端
8candump can0 &
9cansend can0 -i 0x321 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88
测试效果如下:
终端1:
终端2:
17.2.1.2 与CAN分析仪通信测试¶
将拓展板和分析仪进行连接。
扩展板 |
CAN分析仪 |
|---|---|
CAN_H |
CAN_H |
CAN_L |
CAN_L |
设置波特率并进行测试
1#将CAN0接口关闭
2sudo ip link set can0 down
3#设置比特率为 250000
4sudo ip link set can0 type can bitrate 250000
5#将CAN0接口启用
6sudo ip link set can0 up
7
8#发送(标准帧,数据帧,ID:7ff,date:11223344556677)
9cansend can0 -i 0x7ff 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88
10
11#接收
12candump can0
终端测试效果:
CAN分析仪测试效果:








