我需要你的帮助,因为我正在使用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
答案 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),看看如果您需要特定操作,它们将如何触发,例如工作设备的实时更新。
可以在闪存中加载多个固件副本,然后通过设置引脚或写入引导地址来选择运行哪个固件