本页面包含针对 RAMN 的常见故障排除方法,主要用于解决重新刷写和调试相关的问题。
如果您遇到 USB 问题,请尝试使用计算机上的其他 USB 端口。如果您通过 USB 集线器连接到 RAMN,请尝试直接将 RAMN 连接到计算机的 USB 端口。
如果您在重新编程或调试 RAMN 时遇到困难,请使用STM32CubeProgrammer确保选项字节如下所示。
ECU A 与 ECU B/C/D 的配置有所不同。
ECU A 选项字节的正确配置 :
如果 ECU A 没有有效的固件(例如,因编程失败或中断),请勿更新其 Option Bytes。

ECU B/C/D 选项字节的正确配置 :

在使用 UDS 重新编程时,SWAP_BANK 和 DBANK 可能会被修改,但如果您遇到问题,请尝试恢复为默认设置。
应将 RDP 选项字节设置为 0xAA,以确保未启用任何内存保护。
重置选项字节后,您可能需要重新刷新固件。
如果您在使用 STM32CubeIDE 时遇到调试问题,但确定 JTAG 连接正确(例如,您可以使用STM32CubeProgrammer进行连接),请参阅 调试 RAMN 固件。
您可以使用 STM32 引导加载程序来启用内存读取和写入保护。同样,您也可以通过修改 RDP 选项字节来启用或禁用内存保护。
如果您使用一种方法启用了保护,而用另一种方法将其移除(例如,您使用 STM32 引导加载程序启用了写保护,但后来又通过 JTAG 移除了读保护),可能会出现问题。此时,微控制器可能看似已解锁,但实际上会拒绝固件重新编程或调试操作。
如果您怀疑存在此问题(因为您过去曾使用过内存保护功能),请尝试使用 scripts/STBootloader 文件夹中的 canboot.py 脚本运行“读取解锁”和“写入解锁”命令。 如果您的内存保护功能不一致,这些命令可能会返回错误,即使它们实际上已经成功执行。
例如,对于 ECU B:
如果通过 CAN 重新编程失败,可能是由于外部 CAN 适配器主动使用错误帧破坏通信流量所致(因为它未执行所需的波特率更改)。 在通过 CAN 进行重新编程之前,请确保已关闭和/或拔下所有外部 CAN 适配器。
意法半导体的 DfuSe 工具可用于通过 USB 对 ECU A 进行编程(当 ECU A 处于 DFU 模式时)。如果 Windows 通过 USB 将 ECU A 识别为“DFU 在 FS 模式下”,但设备信息显示为“未知”或“不可用”,则可能需要单独安装 STM32 DFU 驱动程序,这些驱动程序位于 DFuse 的安装文件夹中,例如: