17.树莓派拓展板

17.1 树莓派RS485/CAN拓展板

SC-3568HA不支持CAN通信,可以使用该拓展板通过SPI通讯来拓展出一路CAN。

拓展板实物图:

CAN_485

拓展板引脚对照图:

CAN_485_1

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相连

连接如下图:

CAN_485_2

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:

    CAN_485_4

  • 终端2:

    CAN_485_5

17.2.1.2 与CAN分析仪通信测试

将拓展板和分析仪进行连接。

CAN_485_3

扩展板

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_485_6

  • CAN分析仪测试效果:

    CAN_485_7

17.3 RS485

该拓展板485支持自动切换收发状态,无需程序控制,只需将拓展板的8、10脚与SC-3568HA的40PIN的8、10脚相连,然后将485设备接上拓展板的A、B进行收发即可。

CAN_485_8