打印
[STM32F0]

STM32F070的DFU问题,求解?

[复制链接]
3989|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
大笨牛牛|  楼主 | 2015-7-15 19:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现我司开发一产品原来已经采用了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.
     

沙发
mark0668| | 2015-7-15 20:05 | 只看该作者
070 用内部晶振是可以驱动USB的.

使用特权

评论回复
板凳
大笨牛牛|  楼主 | 2015-7-16 08:10 | 只看该作者
mark0668 发表于 2015-7-15 20:05
070 用内部晶振是可以驱动USB的.

我看时钟图应该是可以的,但是da ta sheet中的一句话吓到我了:It requires a precise 48 MHz clock which can be generated from the internal main PLL (the clock source must use an HSE crystal oscillator).这是什么节奏啊!项目非常紧急,今天内就要确认这颗IC是否可用,由于前期上述原因走了弯路,我已经没有时间自己验证了.
所以非常冒昧的问一下:是你自己已经用过了吗?
若OK的话,是不是ST的SPEC有问题呀!

使用特权

评论回复
地板
FAQ| | 2015-7-16 13:28 | 只看该作者
大笨牛牛 发表于 2015-7-16 08:10
我看时钟图应该是可以的,但是da ta sheet中的一句话吓到我了:It requires a precise 48 MHz clock wh ...

可以肯定的是不要外部晶振内部时钟也可以驱动USB,但是量产批量恐怕要用外部晶振才保险。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
大笨牛牛 + 1 赞一个!
5
mark0668| | 2015-7-16 14:00 | 只看该作者
It requires a precise 48 MHz clock which can be generated from the internal main PLL (the clock source must use an HSE crystal oscillator).
它需要一个精确的48 MHz的时钟可以由内部产生(主PLL时钟源必须使用HSE晶体振荡器)。

我都用过.看手册不是写了吗,不用外部晶振就能驱动的USB 这是070的一大特点.

使用特权

评论回复
6
大笨牛牛|  楼主 | 2015-7-16 18:49 | 只看该作者
FAQ 发表于 2015-7-16 13:28
可以肯定的是不要外部晶振内部时钟也可以驱动USB,但是量产批量恐怕要用外部晶振才保险。 ...

量产时考虑外晶振是担心内晶振不够吧?
我的USB只是给售后升级使用,不给终端用用.
若升级失败可以多升级几次,我想内晶振应该问题不大.
谢谢!

使用特权

评论回复
7
大笨牛牛|  楼主 | 2015-7-16 18:58 | 只看该作者
mark0668 发表于 2015-7-16 14:00
It requires a precise 48 MHz clock which can be generated from the internal main PLL (the clock sour ...

就是因为手册上写(主时钟源必须使用HSE(外晶振)),所以我才担心必须用外晶振才行啊!
无论如何,既然你们用过那应该是可以的. 保持对手册的疑惑,,呵呵!
多谢

使用特权

评论回复
8
大笨牛牛|  楼主 | 2015-7-16 18:59 | 只看该作者
另外,
   若我自己写DFU的Bootloader的话,PC软件是否用ST标准的软件“Dfuse”就可以了呢?

使用特权

评论回复
9
FAQ| | 2015-7-17 00:28 | 只看该作者
大笨牛牛 发表于 2015-7-16 18:49
量产时考虑外晶振是担心内晶振不够吧?
我的USB只是给售后升级使用,不给终端用用.
若升级失败可以多升级 ...

内部频率是够了,并且保证是可以驱动usb的,只是精度不如外部的。

使用特权

评论回复
10
acguy| | 2015-7-17 07:53 | 只看该作者
072有自校准(依据USB同步帧头),可以不用外部晶振。070没有这功能,上面不是说了,可以用内部pll,但pll的时钟源必须是HSE.

使用特权

评论回复
11
wenlong0601| | 2015-7-17 11:02 | 只看该作者
官方给的串口iap升级成功了吗? 就开始搞usb升级了,呵呵。

使用特权

评论回复
12
大笨牛牛|  楼主 | 2015-7-17 11:46 | 只看该作者
看了各位的解答. 看来最好还是用HSE来做吧。
之前考虑用内晶振,实在是因为I/O口太紧张了.
多谢各位解答!

使用特权

评论回复
13
大笨牛牛|  楼主 | 2015-7-17 11:48 | 只看该作者
wenlong0601 发表于 2015-7-17 11:02
官方给的串口iap升级成功了吗? 就开始搞usb升级了,呵呵。

公司项目,不是自己玩的.
项目所限,不能使用串口的iap。

使用特权

评论回复
14
大笨牛牛|  楼主 | 2015-7-17 11:53 | 只看该作者
刚来不久,还不知怎么评分给分.
各位见谅.
后续补上

使用特权

评论回复
15
huangcunxiake| | 2016-1-27 17:30 | 只看该作者
http://www.st.com/st-web-ui/stat ... nual/DM00091010.pdf
这个技术手册给力,比数据手册好。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

19

帖子

0

粉丝