如何使用USB DFU引导加载程序而不使用VBUS和ID为STM32F4xx?

时间:2016-01-23 05:15:00

标签: usb stm32 usb-otg

我需要你的帮助,因为我正在使用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插件事件),因为我发现连接/断开事件可以通过VBUS的状态识别,但它不能识别USB连接/断开,但它不能正常工作

所以现在我的quires如下,

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

2)NOVBUSSENS是否在这种情况下工作,或者在没有PA9和VBUS连接的情况下是否还有其他方法可以在上面启动加载程序?

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

如果我能提供更多详情,请告诉我。 对此的任何帮助都会非常明显。

谢谢&问候, RUTVIJ

1 个答案:

答案 0 :(得分:0)

使用内置DFU

许多ST ARM芯片内置了DFU实用程序。要使用它,您需要引发BOOT0并插入.ST提供完整的文档。 AN3156代码目前是here,尽管它可能会不时地在ST网站上查找DFUSE。有视频on You tube

将VBUS用于普通USB

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

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

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

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

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