# 固件更新 开发板包含两颗 MCU。每颗芯片管理两路 CAN/CAN FD 和两路 RS485,因此两颗芯片都需要分别烧录。 ## 固件下载 下载最新的 [STM32G0B1 V81 发布固件包](https://gitcode.com/sanpo/robot/blob/main/products/spine/v8/firmware/g0b/release/spine_v8_v81_g0b_release.zip)。解压后使用其中的 `spine_v8_v81_g0b_release.bin`,并通过同目录的 SHA-256 文件校验完整性。 ## 重要提醒 **不要执行全片擦除。** 开发板 Flash 高地址可能保存设备身份、授权信息、通信配置和批量任务。全片擦除会删除这些数据,普通固件镜像无法自动恢复。 固件从 `0x08000000` 下载;使用“下载并校验”或“Program & Verify”即可。请勿选择全片擦除。 ## 使用 STM32CubeProgrammer 更新 准备 ST-LINK、STM32CubeProgrammer,以及选定的 release 固件,然后按以下步骤操作: 1. 给开发板接入USB供电,确保电压不低于5V。 2. 将 ST-LINK 接到第一颗 MCU 的 SWD 接口。 3. 在 STM32CubeProgrammer 中选择 `ST-LINK` 并连接。 4. 选择选定版本目录中的 `*_release.bin`,下载地址填写 `0x08000000`。 5. 直接执行下载并校验,不要先做全片擦除。 6. 断开 ST-LINK,连接第二颗 MCU 的 SWD 接口,重复步骤 3~5。 7. 重新上电。 ## 更新后检查 分别打开2颗 MCU 对应的USB管理串口,通常在Windows中显示为 `SANPO Studio Management Port`,发送: ```text AT+VER ``` 行尾选择 `CRLF`。返回值应与刚刚烧录的固件版本一致,例如返回: ```text V81 ``` 随后可查询通信参数: ```text AT+SETFDCAN? AT+SETRS485? AT+SPIMODE? AT+RS485RAWCH? AT+BATAUTO? ``` 升级通常保留原通信配置,因此返回值可能与出厂默认值不同。如果确实要恢复通信默认值,可发送 `AT+CFGERASE`;执行前请确认它适用于当前固件。 ## 出厂通信默认值 | 项目 | 默认值 | | --- | --- | | 经典 CAN / CAN FD 仲裁段 | 1 Mbit/s | | CAN FD 数据段 | 5 Mbit/s,BRS 开启 | | RS485 | 4 Mbit/s、1 个停止位、无校验、8 数据位 | | SPI | `SHORT`,每次 23 字节 | SPI 主控需要 CAN FD 时,发送: ```text AT+SPIMODE=LONG ```