快速开始

SANPO 机器人集成开发板用于将电脑或主控板连接到 CAN、CAN FD 和 RS485 关节电机。V6 版本可通过 USB 串口、Linux SocketCAN 或 SPI 控制整板 4 路 CAN/CAN FD 和 4 路 RS485。

本文适用于预装 V6 固件的 FDCAN 升级版。使用 V4 固件的标准版、CAN 隔离版或 RS485 隔离版,请访问 V4 版本说明

本页目录

产品概览

项目

说明

主控接入方式

USB 串口 / Linux SocketCAN / SPI

电机通信接口

4 路 CAN/CAN FD + 4 路 RS485

CAN 数据长度

经典 CAN 最大 8 字节;CAN FD 最大 64 字节

SPI 模式

SHORT 23 字节;LONG 73 字节

离线执行

可以保存并自动执行 CAN、CAN FD 和 RS485 指令

扩展接口

IIC(I²C)/ ADC / 串口 / SWD

每颗 MCU 控制两路 CAN/CAN FD 和两路 RS485,并通过自己的 USB 与 SPI 片选接入主机。两颗芯片使用相同固件,区别只是它们连接的物理接口编号不同。

选择控制方式

使用方式

推荐文档

Linux 通过 canX 控制 CAN 或 CAN FD

SocketCAN

直接发送不带 SANPO 封装的 RS485 原始数据

RS485 原始数据透传

USB 串口控制指定的经典 CAN 接口

SANPO USB 转 CAN

USB 串口控制指定的 CAN FD 接口

SANPO USB 转 FDCAN

USB 串口控制指定的 RS485 接口

SANPO USB 转 RS485

Jetson、树莓派等主控板通过 SPI 控制经典 CAN

SANPO SPI 转 CAN

Jetson、树莓派等主控板通过 SPI 控制 CAN FD

SANPO SPI 转 FDCAN

Jetson、树莓派等主控板通过 SPI 控制 RS485

SANPO SPI 转 RS485

SocketCAN 使用 Linux 标准 CAN 接口,不需要 SANPO 帧头。USB 串口和 SPI 扩展协议使用以下帧头:

帧头

十六进制

用途

ST

53 54

经典 CAN 标准帧

ET

45 54

经典 CAN 扩展帧

SF

53 46

CAN FD 标准帧

EF

45 46

CAN FD 扩展帧

RT

52 54

RS485 封装帧

默认通信参数

项目

出厂默认值

经典 CAN

1 Mbps

CAN FD 仲裁段

1 Mbps

CAN FD 数据段

5 Mbps,BRS 开启

RS485

4 Mbps、1 个停止位、无校验、8 个数据位

SPI

SHORT,23 字节

USB RS485

RT 封装回包;RAW 回包关闭

USB 串口和 SPI 使用固件保存的通信参数;SocketCAN 由 Linux 使用 ip link 单独配置。USB 串口软件里选择的“串口波特率”不会改变 CAN、CAN FD 或 RS485 总线参数。

首次使用或更换电机后,建议通过 USB 串口按文本发送以下命令,并把发送结束符设置为 CRLF

AT+VER
AT+SETFDCAN?
AT+SETRS485?
AT+SPIMODE?

版本查询应返回当前烧录固件的版本号。例如,G473 的 V66 发布包会返回:

V66

详细设置方法见 通信参数配置

通道编号

一条 USB 串口连接或一个 SPI 片选只访问当前 MCU 的两路总线。发送报文时可以沿用整板接口编号,但固件实际按下面的本地关系选择接口:

Channel

当前 MCU 的发送目标

0x010x03

第一路 CAN/CAN FD/RS485

0x020x04

第二路 CAN/CAN FD/RS485

0x00

同时发送到当前 MCU 的两路同类接口

推荐在连接第一颗 MCU 时使用 1/2,连接第二颗 MCU 时使用 3/4,这样上位机配置与板上 CAN-1~4RS485-1~4 丝印保持一致。

设备回包中的 Channel 是当前 MCU 的本地编号:第一路返回 0x01,第二路返回 0x02。因此,从 CAN-3、CAN-4、RS485-3 或 RS485-4 收到的回包,也会在对应 USB 串口或 SPI 片选中显示为 0x010x02

USB 接入

完整开发板连接电脑后通常会出现两个 USB 串口;Linux 还会通过 gs_usb 出现 4 个 canX 接口。操作系统分配的 COM/dev/ttyACM*canX 编号不保证与开发板丝印顺序一致,第一次使用时应只连接一个电机确认对应关系。

  • Windows 可以使用 SANPO Studio、串口程序或电机原厂软件。

  • Linux 可以使用 USB 串口;CAN/CAN FD 也可以直接使用 can-utilspython-can

  • 直接发送不带 SANPO 封装的 RS485 数据前,先按 RS485 原始数据透传开启 RAW 回包。

SPI 接入

SPI 适合 Jetson、树莓派或其他主控板进行周期控制。主控软件中的 CS0、CS1 通常分别连接开发板的两个外部片选,每个片选访问一颗 MCU。

  • SPI 使用 Mode 0、MSB First。

  • 出厂默认 SHORT:每次完整传输 23 字节。

  • CAN FD 或超过 18 字节的 RS485 数据需要 LONG:每次完整传输 73 字节。

  • SPI 是全双工接口。发送控制帧时读到的可能是之前缓存的数据或全零;需要继续发送同长度空帧读取后续反馈。

配置和维护

重要: 更新固件时不要执行全片擦除。全片擦除会删除出厂识别信息、已保存的通信参数和离线批次,之后需要重新进行出厂初始化。