在 Nucleo-F446RE 上通过 CANBUS 进行引导加载程序访问

Posted

技术标签:

【中文标题】在 Nucleo-F446RE 上通过 CANBUS 进行引导加载程序访问【英文标题】:Bootloader access over CANBUS on Nucleo-F446RE 【发布时间】:2021-04-05 07:39:08 【问题描述】:

我正在尝试通过 Nucleo-F446 上的 CANBUS 闪存代码。我指的是这个应用笔记

https://www.st.com/resource/en/application_note/cd00264321-can-protocol-used-in-the-stm32-bootloader-stmicroelectronics.pdf

所以根据它在Boot模式下CAN的默认波特率为125KBPS,我们需要使用PB5和PB13引脚,它们是CAN2引脚。

为了测试,我尝试发送带有 DLC=0 和 STDID = 0x79 的 CAN 消息,STM32 应为此返回具有相同 ID 的 ACK,即 0x79。 但我没有得到任何回应。

【问题讨论】:

如何将 PB5 和 PB13 连接到 CAN 总线?你有 CAN 屏蔽(即扩展板)吗? 我有 CAN 收发器模块来获取 CANH 和 CANL 输出。 【参考方案1】:

您必须在 Nucleo Board 中添加一个外部时钟

系统时钟来自 USARTx 的嵌入式内部高速 RC 和 I2Cx 引导加载程序。该内部时钟也用于 CAN 和 DFU(USB FS 设备),但 仅用于选择阶段。 1 MHz(4 到 26 MHz 之间)的外部时钟倍数是 选择阶段后 CAN 和 DFU 引导加载程序执行所需的。

STM Bootloader Description

【讨论】:

以上是关于在 Nucleo-F446RE 上通过 CANBUS 进行引导加载程序访问的主要内容,如果未能解决你的问题,请参考以下文章

STM32F4程序只有在按下复位按钮后才会运行

使用 HAL 的 NUCLEO-F303K8 上的 DMA 不当行为

从 STM32 Nucleo-F767ZI [Ubuntu] 中的 USB 虚拟 COM 读取数据

在 IAR Workbench 上加载闪存加载程序失败

如何使用 Nucleo-F303K8 每 1us 进行一次 adc 转换?

在 STM32CubeIDE 上打印(用 C 语言)到 IDE 控制台