0

我需要您的帮助,因为我正在开发 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 并与 mycustom 板共地),ID 引脚也没有连接到任何地方。

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

所以现在我的要求如下,

1) 我是否必须连接一个开关以从 PA0/PB13 提供 VBUS(根据数据表)?

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

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

请让我知道我是否可以提供更多详细信息。对此的任何帮助将是非常可观的。

谢谢和问候, RUTVIJ

4

1 回答 1

0

使用内置 DFU

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

将 VBUS 用于普通 USB

1) 根据 Cube 中设置的标志,USB 编译或不编译 VBUS 信号。

2) ST 在其产品页面上提供有关 DFU 和 USB 的所有必要文档和软件。他们还提供工作 DFU。您需要根据您拥有的设备提高 BOOT0 和可能的 BOOT1。

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

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

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

于 2016-01-28T06:35:57.593 回答