|
在使用 STM32F407 Discovery + Micro-B 转 USB-A 转接线,用来外接 U 盘提前验证方案。 我的想法是直接插上 U 盘,MCU 自动读取 U 盘内固件完成自升级。MCU 作为 USB 主机,从 U 盘读取固件;不依赖电脑、不使用 DfuSe 工具烧写。 目前在STM32CubeMX 里 DFU 只能配置为USB 设备模式,不支持主机模式。 了解到应用笔记 AN3990《Upgrading STM32F4DISCOVERY board firmware using a USB key》。 三个问题: AN3990 文档中提到的配套源代码在哪里下载? DFU 协议是否只能工作在 MCU 作为 USB 从机(Device)模式? 是否有其他官方示例,演示从 U 盘读取固件实现升级? |
微信公众号
手机版
第二个问题:DFU协议肯定是有USB的主机端和从机端,但被升级的一方只能是USB从机端。
第三个问题:要实现从U盘读取数据来升级设备,除了需要USB协议栈外还需要文件系统配合,否则U盘中的文件无法读取。可以考虑使用tinyusb协议栈,其中有示例代码展示当设备作为主机时如何读取U盘中的文件,tinyusb/examples/host/msc_file_explorer at master · hathach/tinyusb
可以使用USB主模式,增加文件系统进行文件读取,进行升级。需要自己写代码实现升级的功能。只要实现了U盘的文件读写,功能就好实现。