打印
[STM32F4]

STM32F4xx+USB3300实现高速USB数据传输,可达42MByte/s速度

[复制链接]
10970|35
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
beyond696|  楼主 | 2015-6-29 16:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 beyond696 于 2015-7-1 19:00 编辑

前言:
最近正在做一个关于高速USB数据传输的项目,主要是用STM32F407+USB3300的方式来实现,话说STM32在这点有点不厚道,若把USB的高速PHY做在芯片上多爽啊,没办法,芯片不带高速PHY,只有外接USB3300了,还好库在这方面做得不错,简单的定义一个宏就支持外部的高速PHY了,USB传输数据速度也还不错,PC读数据基本上可以达30MByte/s以上,最高速度我测试到可以到42MByte/s,这就跟自己的电脑配置和系统有一定的关系了,不过总的来说,速度还是比较理想的,上位机驱动还是使用libusb-win32,程序比较简单。

程序功能:
1,单片机实现两个端点,一个Bulk IN,一个Bulk OUT,端点大小为512Byte;
2,PC端通过Bulk OUT发送4字节数据,其含义为PC即将读取的数据量;
3,单片机程序接收到PC下发的4字节数据后,循环将数据通过Bulk IN端点发送给PC,为了测试极限速度,每次发送的数据为64Kbyte,当然每次发送数据的时候都会检测前一次发送的数据是否发送完成;
4,PC端程序发送4字节的数据长度信息给单片机后,循环读取数据,每次读取64Kbyte(这个必须跟单片机每次发送的数据字节数一样),直到数据读取完毕;
5,计算数据传输的时间及数据传输的速度,打印输出消耗的时间和速度。

程序及源码下载:
http://www.embed-net.com/thread-171-1-1.html

沙发
捉虫天师| | 2015-6-29 18:53 | 只看该作者
单片机实现两个端点,一个Bulk IN,一个Bulk OUT,端点大小为512Byte;不错,去下载看看。

使用特权

评论回复
板凳
天灵灵地灵灵| | 2015-6-29 19:39 | 只看该作者
USB传输数据速度也还不错,PC读数据基本上可以达30MByte/s以上,我只为好贴挺。

使用特权

评论回复
地板
Thor9| | 2015-6-29 19:42 | 只看该作者
这个对于新手来说是有难度的

使用特权

评论回复
5
beyond696|  楼主 | 2015-7-1 18:59 | 只看该作者
我用同事更好的电脑测试,速度基本上可以达42MByte/s

使用特权

评论回复
6
hanyafeng| | 2015-10-22 14:18 | 只看该作者
我设计的原理图与红龙demo板,有点区别。因只有外设模式,去掉miniusb以及相关cpen extvbus 等等与host有关的东西;而且根据datasheet说明,有源晶振直接24MHz给XI,reset pin 接地了。

现在我用usb otg 库 、 vcp 测试代码,进行初始化device模式,始终不见clkout 有输出,这是第一;第二,代码运行到OTG_HS_CoreReset函数时(对OTG_HS_GRSTCTL的 CSRST位操作时)就会导致整个程序的崩溃。

查看pdf文件,说是 引起 hclk pclk domain 的复位?!

我真的有点晕了!哪位大哥给解释下?不胜感谢,或者电话我13718138497。或者短信给我联系方式,我电话您。

使用特权

评论回复
7
734774645| | 2015-10-22 17:16 | 只看该作者
USB的应用还没有做过,都是做串口的。

使用特权

评论回复
8
hanyafeng| | 2015-10-22 19:22 | 只看该作者
要传输300dpi x 300dpi 分辨率的照片,大小约1兆半字节,FS要用1秒钟,对于上位机操作流程来说,等待时间太长了。只能用外扩 USB PHY 。

使用特权

评论回复
9
玛尼玛尼哄| | 2015-10-22 19:28 | 只看该作者
用那种串口赚USB的,只是速度低了点,不过特别好实现。

使用特权

评论回复
10
cedar_renjun| | 2015-12-16 14:04 | 只看该作者
Cool,准备用USB HS

STM32不带高速USB PHY,略蛋疼

使用特权

评论回复
11
zlwxxx| | 2015-12-22 19:56 | 只看该作者
楼主在吗?发的链接打不开

使用特权

评论回复
12
gjxyn| | 2017-9-14 21:02 | 只看该作者
楼主啊,请问你有USB3300的封装库吗?AD里没有啊,原理图里试着画了个封装,PCB里画出来的不能用。。。。求帮助啊。谢谢!

使用特权

评论回复
13
pattywu| | 2019-3-20 12:08 | 只看该作者
我也试过,以不同的大小的缓冲区试过,双缓冲区。
每块10K,速度36MB/s;
每块20K,速度39MB/s;
每块30K,速度40MB/s;
每块40K,速度41MB/s;
每块50K,速度42MB/s;
每块0.5K,速度16MB/s。

最后一个,我分析了一下原因。
应该是ARM处理器的寄存器太多,512字节一次,中断太频繁,USB传输过程出现断流。

使用特权

评论回复
14
eittinfo| | 2019-5-8 17:41 | 只看该作者
hi
anyone have source code?
i don't have enough point and i cant download this code
thx for sharing

使用特权

评论回复
15
eittinfo| | 2019-5-8 18:43 | 只看该作者
hi
anyone could send this files to my email?
i need this files but i can't donwload
help me friends
thx

使用特权

评论回复
16
jkl21| | 2019-5-10 07:09 | 只看该作者
高速USB数据传输的通信效果怎么样

使用特权

评论回复
17
wwppd| | 2019-5-10 07:10 | 只看该作者
USB3300没有使用过  

使用特权

评论回复
18
maqianqu| | 2019-5-10 07:10 | 只看该作者
直接做个OTG吧      

使用特权

评论回复
19
dspmana| | 2019-5-10 07:10 | 只看该作者
驱动是统一的吗?   

使用特权

评论回复
20
eefas| | 2019-5-10 07:11 | 只看该作者
谢谢楼主的分享资料了

使用特权

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

本版积分规则

个人签名:USB转I2C,SPI,CAN,UART,GPIO,PWM,IR,ADC,DAC合一 http://usb2xxx.taobao.com

55

主题

294

帖子

12

粉丝