现我司开发一产品原来已经采用了STM32F070F6这颗IC, 之所有选她是因为带USB口方便升级使用.
但是板子做出来调试发现,系统自带的Bootloader无论如何也无法执行USB DFU的动作.
查看070的datasheet,
“The boot loader is located in System Memory. It is used to reprogram the Flash memory by
using USART on pins PA14/PA15 or PA9/PA10”
好像用系统自带的Bootloader只能支持UART.
但查看Reference上又说可以支持USB DFU,如下
Embedded boot loader
The embedded boot loader is located in the System memory, programmed by ST during
production. It is used to reprogram the Flash memory using one of the following serial
interfaces:
• USART on pins PA14/PA15 or PA9/PA10
• I2C on pins PB6/PB7 (STM32F070xx and STM32F030xC devices only)
• USB DFU interface (STM32F070xx devices only)
For further details, please refer to AN2606.
这真是自相矛盾啊?
因为我的系统要求必须使用USB来做升级,所以我想干脆不用系统自带的DFU,自己来写吧。
但是鉴于上述的教训我还是有几点疑问想要请教大家帮忙:
1) 自己写的USB DFU是否只能选用HSE(外部晶振),选用HSI(内部晶振)是否可以?
070的datasheet中好像有说明只能用HSE,难道精度不够?
2) 自己写USB DFU,PC软件是否仍可以用ST的“DfuSeDemo”来下载.
望各位指教.
Tks.
|