打印

ls提的**我已经做好了,

[复制链接]
7728|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
walnutcy|  楼主 | 2009-1-5 21:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
找了半天也没找到以前的那个讲usb时序的帖子,
就新开一个了。

现在在做一个usb的boot,基本功能已完成,只是下载速度不快,
读取:50KB左右,下载20KB左右。  升级一个512K的芯片需要约22秒。

不知道理论可以做到多少,是因为双缓冲的问题,还是flash写的问题??

明天得继续查了,
沙发
walnutcy|  楼主 | 2009-1-5 21:53 | 只看该作者

明天主要更改下usb传输和flash写,再试试

使用特权

评论回复
板凳
香水城| | 2009-1-5 22:28 | 只看该作者

STM32烧录的瓶颈主要在Flash的写入

不管是哪种传输方式,UART、I2C、USB都比写入Flash要快很多。

使用特权

评论回复
地板
walnutcy|  楼主 | 2009-1-5 22:34 | 只看该作者

香帅在啊, 今天找flash写的资料,没找到,不知道

写的速度可以提高到多少,要是能提高一倍左右就快了,呵呵,

使用特权

评论回复
5
香水城| | 2009-1-5 22:38 | 只看该作者

《STM32F10x闪存编程手册》就是讲如何写Flash的

还有有关读写保护的操作说明。

使用特权

评论回复
6
computer00| | 2009-1-5 23:02 | 只看该作者

差不多就这个速度拉~~~~

使用特权

评论回复
7
香水城| | 2009-1-6 08:57 | 只看该作者

STM32 Flash编程的时间

下表是STM32 Flash编程时间参数,按照最大时间计算,对一个内置512KB的STM32编程可以如下计算:
  1)编程每2个字节时间为40~70us,则编程512K需要
       512 * 1024 / 2 * (40~70us) = 10.5~18.5s
  2)擦除一页的时间为20~40ms,则擦除256页需要
       256 * (20~40ms) = 5.1~10.2s
  3)整体擦除的时间为20~40ms

结论:编程512K总共需要 15~28秒。

如果采取边下载边编程的方式,则肯定以为下载速度太慢——35K/s~18.7K/s

使用特权

评论回复
8
香水城| | 2009-1-6 09:58 | 只看该作者

楼主可以去看看STM32的USB开发包中的DFU例程

刚刚想到,楼主所要的功能不就是DFU吗?

使用特权

评论回复
9
Tiger5| | 2009-1-6 11:12 | 只看该作者

22秒很快了...我现在都要1分多.

使用特权

评论回复
10
xijing0508| | 2009-1-6 11:14 | 只看该作者

回复 7楼

1)编程每2个字节时间为40~70ms,则编程512K需要

是us,ms得多慢

使用特权

评论回复
11
香水城| | 2009-1-6 11:20 | 只看该作者

哈哈,是笔误,好在有一张表格

随后的计算也是按照us来算的。

使用特权

评论回复
12
xijing0508| | 2009-1-6 11:25 | 只看该作者

回复

3)整体擦除的时间为20~40ms
s

使用特权

评论回复
13
walnutcy|  楼主 | 2009-1-6 20:30 | 只看该作者

上班时间不能上网,刚看到香帅的分析,

跟我的实测结果一样,

写flash时等待时间比较长。
功能已经做好了,DFU没仔细看,自己拿U盘的例程改了一下,
基本功能都已经实现了,  

使用特权

评论回复
14
walnutcy|  楼主 | 2009-1-6 20:34 | 只看该作者

今天还在bus hound测了下,

没采用双缓冲,传输速度还是不错的,

1K的数据只需要3ms,相当于速度在333KB/s,即接近2.7Mb/s,

下载时间未能做到20s以内,

读取与下载的过程中,传控制部分占了一些时间,我的做法是分成1K的小块再去下载。

使用特权

评论回复
15
walnutcy|  楼主 | 2009-1-6 20:36 | 只看该作者

贴两幅图吧


这里我根据手头的资源,没有做成一个特殊的CDC设备,是一个特殊设备。枚举后在PC设备列表中显示如下:

目前已经完成其核心部分: 擦除、烧录与回读。
上图,这便是青藤做的USB boot设备具有的功能,
目前读取速度50多KB/s,烧录速度只有20K多点。
(转载请注明出处:青藤门客播报站

软件的数据支持查看与修改,

 

使用特权

评论回复
16
mcuisp| | 2009-1-6 20:40 | 只看该作者

编程2字节的时间52.5us

理论的极限时间是14秒左右。
一般512kB不可能满的,这里面就大有**了。
擦除当然要用全片擦除。

使用特权

评论回复
17
walnutcy|  楼主 | 2009-1-6 21:02 | 只看该作者

ls提的**我已经做好了,

今天做的,呵呵,

自动判断有无有效数据,只下载有效数据

使用特权

评论回复
18
walnutcy|  楼主 | 2009-1-6 21:03 | 只看该作者

不可以用全片擦除,我的设备外置的只有一个usb口

呵呵,

使用特权

评论回复
19
simon21ic| | 2009-1-7 02:19 | 只看该作者

好像差不多就是这个速度吧

我这里也通用用USB接口模拟CDC串口,在上面实现STM32_ISP协议,下载28854字节用了1.34秒。

使用特权

评论回复
20
chwb| | 2009-1-8 16:56 | 只看该作者

这个是ST 32bit MCU的通病!

很简单,现在flash的烧写速度是32MHZ(一般到了40mhz就了不起了)。而且ST的flash的读写速度在技术上没有多大的进步,基本上是维持在这个水平。如果你想flash读写速度快点,可以考虑NXP的ARM,因为nxp的ARM flash的读写速度现在看起来在业界是最快的。以前做过对比试验(07年),读写一样的内容,ST需要的时间基本上是NXP的三倍(STM32F103 v.s LPC2148)。

使用特权

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

本版积分规则

111

主题

1443

帖子

5

粉丝