与最新 RAMN 固件兼容的微控制器包括:
由于 STM32L552CCT6 仅配备 256kB 闪存,因此不支持 UDS 重编程,但支持其他重编程接口。上述所有微控制器均采用同一固件;RAMN 会自动检测可用的闪存容量,并且不使用硬件加密。
**RAMN 的固件已不再支持 STM32L4 系列微控制器,但 PCB 仍与其兼容。**用于 RAMN BETA 版本的 STM32L4 系列旧版源代码可根据要求提供,但该版本已不再维护,功能也极为有限。
**RAMN 目前“官方”并不兼容 STM32U5 系列微控制器。**如果您希望使用 STM32U5 微控制器,唯一需要的改动是更新 PCB,在 PB11 引脚上增加电容(该引脚在 STM32U5 系列中变为“VCAP”)。源代码大部分是兼容的,但许多用于 STM32L5 的代码生成特性在 STM32U5 上无法使用,因此需要进行一定的移植工作。**二进制文件并不兼容(您无法将 STM32L5 的固件刷入 STM32U5 设备)。**如果您需要有关如何使用 STM32U5 微控制器的指导,请随时与我们联系。
对于 STM32L 微控制器,零件编号的最后四个字母用于指定:
RAMN 的 PCB 要求微控制器采用 LQFP48 封装。
**
围绕 ECU 微控制器的电路
在可能的情况下,我们尽量遵循意法半导体的硬件设计指南。微控制器的 VDD 引脚分别连接到独立的 100nF 去耦电容,以及一个共用的 10uF 电容。RST 引脚也连接了一个 100nF 电容。为了节省空间,VDDA 引脚未连接外部去耦电容和铁氧体磁珠。同样地,VBAT 也没有配备去耦电容。
微控制器的时钟源选用 NX3225GD 晶体。NX3225GD 系列属于汽车级产品,已列入 STM32 兼容晶体清单,并且也被部分 Nucleo 设计所采用。NX3225GD 晶体广泛提供 8MHz 和 10MHz 两种版本。RAMN 可与这两种晶体搭配使用,但由于内部 PLL 电路的限制,8MHz 晶体无法使 STM32L5 系列达到 110MHz 的最大系统时钟频率。因此,建议优先选择 10MHz 晶体。
NX3225GD 晶体的负载电容为 8pF,相较于同类产品而言较低。假设杂散电容为 3pF,则外接两个 10pF 电容以近似实现 8pF 的负载(3 + 10/2 = 8)。
尽管并非理想状态,但该布局遵循了最佳实践,将晶体尽量靠近微控制器放置,并对时钟线进行了屏蔽,以避免与其他信号产生干扰。
每个 ECU 上的时钟电路
存在启动选择电阻,因为 RAMN 曾与 STM32L4 和 STM32L5 兼容,而这两者具有不同的启动序列。
在 STM32L4 和 STM32L5 系列中,默认使用 BOOT0 引脚来指定微控制器应以何种模式启动。电阻 R8 和 R9 可用于选择 ECU A 的 BOOT0 引脚状态。这些电阻中每次只能安装其中一个。
ECU A 的启动模式选择电阻
STM32L4(模式 6)与 STM32L5(模式 12)的引导模式有所不同。
STM32L4 在闪存未编程时将启动嵌入式引导加载程序。这意味着新出厂的板卡无论 BOOT0 引脚处于何种状态,均可直接通过 USB 进行编程。因此,我们使用 R9 将 BOOT0 引脚拉低,而 R8 则不安装。首次连接时,ECU A 将以 DFU 模式启动,并准备好通过 USB 进行编程。一旦 ECU A 完成编程,并且由于 BOOT0 被拉低,该板卡将在下次重启时直接运行已编程的固件。
STM32L5 即使在闪存未编程的情况下,也不会启动嵌入式引导加载程序。为了确保新板卡能够通过 USB 进行编程,我们需要使用 R8 将 BOOT0 引脚拉高,强制 ECU 进入 DFU 引导加载程序模式。R9 则保持未安装状态。这意味着 ECU A 将始终以 STM32 引导加载程序模式启动,直到选项字节被覆盖为新的值,从而触发另一次启动流程。
ECU A 的 BOOT0 引脚可通过 USB 接口旁的测试焊盘从外部访问。然而,一旦成功刷入有效固件,ECU A 将忽略 BOOT0 引脚的状态。
ECU A Boot0 测试焊盘
ECU B、C 和 D 的 BOOT0 引脚由 ECU A 控制。ECU A 应在激活各 ECU 的电源之前,确保正确设置每个 ECU 的 BOOT0 引脚。