固件更新
V6 固件面向 STM32G473 系列 MCU。推荐使用 STLINK/SWD 和 STM32CubeProgrammer 更新固件。
准备工作
STLINK/SWD 下载器
稳定的 USB 或外部 5V 控制电源
开发板有两个STLINK接口,分别对应两颗STM32G473芯片,需分别更新固件
更新步骤
连接5V控制系统电源供电。
使用 STLINK 连接开发板 SWD 接口。
打开 STM32CubeProgrammer,选择
ST-LINK。安装工具
下载并安装ST官方烧录软件:STM32CubeProgrammer获取固件
下载V6 固件镜像:sanpo_robot_spine_board_firmware-v6-latest.bin烧录固件
使用STM32CubeProgrammer将固件刷入开发板(两颗芯片需分别操作)
复位开发板或者重新上电。
通过 USB CDC串口工具发送
AT+VER,发送结束符选择CRLF,确认版本号。
默认协议状态
固件更新或恢复默认配置后,默认状态如下:
项目 |
默认值 |
|---|---|
USB 设备形态 |
两颗 STM32 芯片分别枚举为 |
SocketCAN |
单块 SANPO 集成开发板通常枚举为 4 个 |
USB CDC串口协议 |
支持 |
SPI 模式 |
|
CAN/FDCAN 波特率 |
|
CAN FD BRS |
开启 |
RS485 原始数据透传模式 |
关闭,上电默认使用 SANPO |
RS485 原始数据透传通道 |
|
如需修改 USB CDC串口/SPI 使用的 CAN/FDCAN 或 RS485 波特率参数,应通过 USB CDC串口发送 AT+ 指令,配置会写入固件Flash,下次上电无需重复配置。AT+ 控制指令通常通过串口工具发送,操作时只输入命令主体,并把发送结束符设置为 CRLF。与V4版本不同,USB CDC串口连接时的波特率不会同步修改 CAN/FDCAN/RS485总线的波特率。
AT+RS485RAW=1 用于临时开启 RS485 原始数据透传,便于宇树等第三方上位机设置设备参数。该模式不作为上电默认配置保存,重新上电后会自动恢复为非透传模式;生产通信建议使用 SANPO RT 封装帧。
SocketCAN 使用 Linux ip link set canX type can ... 配置当前运行时 CAN 参数。该配置不会写入固件Flash,设备重新上电或重新枚举后,SocketCAN 上位机应重新配置 canX。
如果升级后希望恢复出厂通信配置,或 固件配置区因为多次修改配置而写满,可通过 USB CDC串口发送:
AT+CFGERASE
该命令只擦除通信配置区,不擦除批量指令数据。执行后如需使用 SPI CAN FD,应重新设置 AT+SPIMODE=LONG。
如需使用 SPI CAN FD,应通过 USB CDC串口发送:
AT+SETFDCAN=1000000,5000000
AT+SPIMODE=LONG
注意事项
固件更新过程中不要断开控制电源。
更新前确认目标硬件版本和固件版本匹配。
单块 SANPO 集成开发板提供 4 路 SocketCAN 接口,在主机没有其他 SocketCAN 设备时通常显示为
can0、can1、can2、can3。canX编号不保证和板上 CAN1~CAN4 的物理顺序固定一致,正式使用前应确认canX与物理 CAN 总线的对应关系。