如何使用USB DFU引导加载程序,而无需使用VBUS和ID ilne进行STM32F4xx



我需要您的帮助,因为我正在开发MCU STM32f439ZI和IAR IDE 7.40,并且正在开发从以下链接下载的USB OTG引导加载程序。

"https://github.com/mechoid9/STM32F4/tree/master/STM32F4-Discovery_FW_V1.1.0/Project/FW_upgrade"

我已经用STM32F407发现板测试了这个引导加载程序,它工作得很好。

但是这个相同的引导加载程序不适用于我的自定义板,

从发现板的原理图可以看出,VBUS电源需要PA9引脚,由PC0使用开关机制触发。

现在在我的情况下,PA9 引脚与其他接口连接,我有趣的外部 (5 V) 电源(使用 PC 并与我的定制板共同接地)也 ID 引脚未连接到任何地方。

我还参考了数据表并尝试使用OTG_FS_GCCFG的"NOVBUSSENS"位,但即使我试图删除这些功能(检测 USB 插件事件),它也无法识别 USB 连接/断开连接,因为我发现连接/断开连接事件可以通过 VBUS 的状态识别,但尽管它不起作用。

所以现在我的被问如下,

1) 我是否需要强制连接开关才能从 PA0/PB13 为 VBUS 供电(根据数据手册)?

2) NOVBUSSENS 在这种情况下是否有效,或者是否有任何其他方法可以在没有 PA9 和 VBUS 连接的情况下在上述引导加载程序上运行?

3)如果上述情况属实,那么是否有任何可用的指导或文件?

如果我能提供更多细节,请告诉我。对此的任何帮助都将非常可观。

谢谢和问候,鲁特维

使用内置的 DFU

许多意法半导体ARM芯片都内置了DFU实用程序。要使用它,您需要提高 BOOT0 并插入。完整的文档可从ST.AN3156获得 代码当前在这里,尽管它可能会不时移动,在ST站点上查找DFUSE。有一段视频在你管上

将 VBUS 用于普通 USB

1) USB 根据 Cube 中设置的标志进行编译,也可以不编译 VBUS 信令。

2) 意法半导体在其产品页面上提供有关DFU和USB的所有必要文档和软件。他们还提供工作DFU。您需要提高 BOOT0,可能还需要提高 BOOT1,具体取决于您拥有的设备。

3)您可以编写自己的DFU,它不是魔法,它所做的只是在USB上查找特定的文件名并将内容写入非易失性存储器。

浏览您拥有的引导加载程序代码(或 ST),看看它们在您想要特定操作时如何触发,例如工作设备的实时更新。

可以在闪存中加载固件的多个副本,然后通过设置引脚或写入启动地址来选择要运行的副本

相关内容

  • 没有找到相关文章

最新更新