搜索
bottom↓
回复: 112

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

  [复制链接]

出0入0汤圆

发表于 2015-7-1 19:04:56 | 显示全部楼层 |阅读模式
本帖最后由 wdluo 于 2015-7-2 09:38 编辑

前言:
最近正在做一个关于高速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,计算数据传输的时间及数据传输的速度,打印输出消耗的时间和速度。



固件:
PC端程序:

程序源码下载(包括PC驱动程序源码):
http://www.embed-net.com/thread-171-1-1.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2015-7-1 19:27:05 | 显示全部楼层
好牛x的样子。

出0入17汤圆

发表于 2015-7-1 19:56:44 | 显示全部楼层
谢谢分享!

出0入0汤圆

发表于 2015-7-1 20:00:40 | 显示全部楼层
STM32F4  上面用的的USB库和常用的STM32 USB 全速库一致么? 最近我在用STM32F0x2的MCU时,发现有一个USB V1.0全速库,相比于常见V4.0全速的库,多了两个寄存器,还芯片自带上拉控制,整个库架构完全不一样,大量使用了指针和回调函数。

出0入85汤圆

发表于 2015-7-1 20:13:07 | 显示全部楼层
不错的东西~~

出0入0汤圆

发表于 2015-7-1 20:15:06 | 显示全部楼层
42MByte/s是不是可以传输高清视频了?

出0入0汤圆

发表于 2015-7-1 20:22:41 来自手机 | 显示全部楼层
kkey 发表于 2015-7-1 20:15
42MByte/s是不是可以传输高清视频了?

4Mbps 1080p h264都无压力

出0入76汤圆

发表于 2015-7-1 20:23:10 | 显示全部楼层
不错,这个速度很快, 非常适合做一些数据采集

出0入0汤圆

发表于 2015-7-1 20:25:27 | 显示全部楼层
有点牛,传视频。

出0入0汤圆

发表于 2015-7-1 20:28:37 | 显示全部楼层
最近弄usb,这个不错

出0入0汤圆

发表于 2015-7-1 20:29:42 | 显示全部楼层
很不错啊,谢谢分享!

出0入0汤圆

发表于 2015-7-1 21:01:20 | 显示全部楼层
不错,谢谢分享

出0入4汤圆

发表于 2015-7-1 21:05:21 | 显示全部楼层
谢谢分享,

出0入0汤圆

发表于 2015-7-1 21:36:49 来自手机 | 显示全部楼层
相当赞。

出0入0汤圆

发表于 2015-7-1 23:45:01 | 显示全部楼层
上30MB都是不错的。这个都快接近理论极限了

出0入0汤圆

发表于 2015-7-1 23:54:00 | 显示全部楼层
赞一下,不错...

出0入0汤圆

发表于 2015-7-2 00:22:23 | 显示全部楼层
可否麻烦楼主把程序代码传过来呢?
没那边的注册账号,而且要论坛币才能下载

出0入0汤圆

发表于 2015-7-2 09:09:46 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2015-7-2 09:16:40 | 显示全部楼层
兄弟能不能把资料转到阿莫论坛上来呢,说不定还能搞个酷帖。

出0入18汤圆

发表于 2015-7-2 09:18:48 | 显示全部楼层
早年 也这样做过,方案很类似,后来 传输速度不稳定  改方案了!

出0入0汤圆

 楼主| 发表于 2015-7-2 09:39:12 | 显示全部楼层
源码已经上传,多谢大家支持....
头像被屏蔽

出0入0汤圆

发表于 2015-7-2 09:47:25 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

出0入0汤圆

发表于 2015-7-2 09:49:19 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

 楼主| 发表于 2015-7-2 09:50:20 | 显示全部楼层
bbs2009 发表于 2015-7-2 09:47
前二年 用 带 USB2.0 HS PHY 的ATMEL  AT91SAM3U4C 做过 高速USB  Bulk 数据传输。
PC 端 也是 libusb-win3 ...

其实STM32F2的也可以的,PHY都得外接,没片内集成

出0入0汤圆

 楼主| 发表于 2015-7-2 09:51:16 | 显示全部楼层
bbs2009 发表于 2015-7-2 09:47
前二年 用 带 USB2.0 HS PHY 的ATMEL  AT91SAM3U4C 做过 高速USB  Bulk 数据传输。
PC 端 也是 libusb-win3 ...

M4的高速PHY也得外接,没内部集成
头像被屏蔽

出0入0汤圆

发表于 2015-7-2 09:51:58 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

 楼主| 发表于 2015-7-2 09:52:47 | 显示全部楼层
bbs2009 发表于 2015-7-2 09:51
主要 是外接  PHY 不爽。

没办法啊,不过接口一般都是标准的,程序基本上也就多加一个宏定义,这还好
头像被屏蔽

出0入0汤圆

发表于 2015-7-2 09:55:21 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

 楼主| 发表于 2015-7-2 09:56:33 | 显示全部楼层
bbs2009 发表于 2015-7-2 09:55
NUVOTON   472  等 带 USB2.0 HS  PHY 有时间 可以玩玩。

这个可以有

出0入0汤圆

 楼主| 发表于 2015-7-2 10:13:43 | 显示全部楼层
slzm40 发表于 2015-7-1 20:00
STM32F4  上面用的的USB库和常用的STM32 USB 全速库一致么? 最近我在用STM32F0x2的MCU时,发现有一个USB V ...

有一定的区别的

出0入0汤圆

发表于 2015-7-2 12:18:02 | 显示全部楼层
这么高的速率,单片机没异常?

出0入0汤圆

发表于 2015-7-2 12:22:46 | 显示全部楼层
问下407开始就设置成高速,还是先设置全速再设置高速

出0入0汤圆

发表于 2015-7-2 12:23:45 | 显示全部楼层
记号..........

出0入0汤圆

 楼主| 发表于 2015-7-2 16:21:39 | 显示全部楼层
yuxiang2 发表于 2015-7-2 12:18
这么高的速率,单片机没异常?

我只测试了几百兆的数据,没啥问题

出0入0汤圆

 楼主| 发表于 2015-7-2 16:21:56 | 显示全部楼层
leonliu_1128 发表于 2015-7-2 12:22
问下407开始就设置成高速,还是先设置全速再设置高速

直接设置成高速

出0入0汤圆

发表于 2015-8-17 21:19:02 | 显示全部楼层
抽空试试

出0入0汤圆

发表于 2015-8-17 22:08:53 | 显示全部楼层
leonliu_1128 发表于 2015-7-2 12:22
问下407开始就设置成高速,还是先设置全速再设置高速

必须先设置成高速。

出0入13汤圆

发表于 2015-8-24 07:08:44 来自手机 | 显示全部楼层
高速usb传输,不错

出0入0汤圆

发表于 2015-8-24 07:23:00 | 显示全部楼层
很牛啊!!!

出0入0汤圆

发表于 2015-8-24 16:23:35 | 显示全部楼层
确实很牛 !标记

出0入0汤圆

发表于 2015-8-24 16:37:41 | 显示全部楼层
好家伙, 马克~

出0入0汤圆

发表于 2015-8-24 16:59:55 | 显示全部楼层
谢谢分享,看看你的上位机部分

出0入0汤圆

发表于 2015-8-24 17:32:54 | 显示全部楼层
WOW, 可以做好多事情了

出0入0汤圆

发表于 2015-8-24 19:37:13 | 显示全部楼层
厉害,收藏了!

出0入0汤圆

发表于 2015-10-8 14:03:30 | 显示全部楼层
这个速度确实不错

出0入0汤圆

发表于 2015-10-8 15:53:05 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2015-10-8 16:22:01 | 显示全部楼层
,下来参考一下

出0入0汤圆

发表于 2015-10-8 16:34:46 | 显示全部楼层
传数据的时候,单片机还能做其他事吗

出0入0汤圆

发表于 2015-10-8 16:40:14 | 显示全部楼层
兄弟,我最近也在最USB通信,我也是配置了两个端点,一个OUT,一个IN,主机给设备发数据已经可以了,但是设备上传数据时总是为0,也不知道什么原因。在调试状态下明明已经把 数据写入对应端点的缓存区中了,但是主机没有读取到,这是为什么呢?愁了好几天了。我只传了2个字节。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2015-10-8 18:20:11 | 显示全部楼层
myshworks 发表于 2015-10-8 16:40
兄弟,我最近也在最USB通信,我也是配置了两个端点,一个OUT,一个IN,主机给设备发数据已经可以了,但是设 ...

肯定是程序问题了,你参考我程序慢慢调试吧

出0入0汤圆

 楼主| 发表于 2015-10-8 18:20:39 | 显示全部楼层
最近新做了几块板子,需要的可以联系我

出0入0汤圆

 楼主| 发表于 2015-10-8 18:21:44 | 显示全部楼层

3D图就是这样子的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2015-10-8 18:38:40 | 显示全部楼层
wdluo 发表于 2015-10-8 18:20
肯定是程序问题了,你参考我程序慢慢调试吧

我只想知道可能原因是什么呢,总不能漫无边际的看吧

出0入0汤圆

发表于 2015-10-9 13:16:57 | 显示全部楼层
stm32f407 告诉usb 30m,40m

出0入0汤圆

发表于 2015-10-9 14:46:33 | 显示全部楼层
我手上有块stm32f439板子, 想试下楼主这个程序, USB3300硬件要怎么连接?

出0入0汤圆

发表于 2015-10-26 16:06:24 | 显示全部楼层
好资料,正被USB HS弄得头疼,上位机收不到数据,BUS HOUND却能看到,应该是上位机驱动有问题。参考,多谢楼主分享

出0入0汤圆

 楼主| 发表于 2015-10-26 18:30:53 | 显示全部楼层
shouqiang_zhang 发表于 2015-10-9 14:46
我手上有块stm32f439板子, 想试下楼主这个程序, USB3300硬件要怎么连接?

http://www.embed-net.com/thread-171-1-1.html
参考这个吧,有原理图,有程序源码

出0入0汤圆

发表于 2015-10-26 18:55:38 | 显示全部楼层
40MBytes/s ,确定没有算错?

出0入0汤圆

 楼主| 发表于 2015-10-26 21:26:03 | 显示全部楼层
flyleaf 发表于 2015-10-26 18:55
40MBytes/s ,确定没有算错?

确定没错

出0入0汤圆

发表于 2015-11-10 00:09:32 | 显示全部楼层
你好,使用你的代码和vs程序,出现如下情况,请帮忙看一下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2015-11-10 08:15:46 | 显示全部楼层
谢谢分享!!!

出0入0汤圆

发表于 2015-11-10 08:23:05 | 显示全部楼层
牛,Mark

出0入0汤圆

发表于 2015-11-10 08:46:10 | 显示全部楼层
thank you !!

出0入0汤圆

发表于 2015-11-10 08:53:07 | 显示全部楼层
谢谢楼主分享。

出0入0汤圆

 楼主| 发表于 2015-11-10 08:56:50 | 显示全部楼层
521yiyi14 发表于 2015-11-10 00:09
你好,使用你的代码和vs程序,出现如下情况,请帮忙看一下。

你调试下程序,看是在什么地方返回的错误

出0入0汤圆

发表于 2015-11-12 09:34:19 | 显示全部楼层
我这板卡硬件有问题了,F437芯片烧写完成后插入PCB无反应

出0入0汤圆

 楼主| 发表于 2015-11-12 10:14:30 | 显示全部楼层
jiaohuang2004 发表于 2015-11-12 09:34
我这板卡硬件有问题了,F437芯片烧写完成后插入PCB无反应

我有块调试好了的板子,需要的话便宜出了
https://item.taobao.com/item.htm ... amp;id=522872166282

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2015-11-12 10:52:39 | 显示全部楼层
五百块你觉得卖的出去吗

出0入0汤圆

发表于 2015-11-12 12:25:52 | 显示全部楼层
wdluo 发表于 2015-11-12 10:14
我有块调试好了的板子,需要的话便宜出了
https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-476959 ...

如果能够便宜一些的话,估计销量应该还是不错的

出0入0汤圆

发表于 2015-11-12 17:23:40 | 显示全部楼层
这个必须顶啊 。

出0入0汤圆

 楼主| 发表于 2015-11-13 12:13:44 | 显示全部楼层
本帖最后由 wdluo 于 2015-11-13 12:15 编辑
yuwangwangyu 发表于 2015-11-12 10:52
五百块你觉得卖的出去吗


不是卖板子,板子值不了几个钱的,大家都知道,还有种东西叫软件,叫服务,叫技术支持

出0入0汤圆

 楼主| 发表于 2015-11-13 12:16:39 | 显示全部楼层
本帖最后由 wdluo 于 2015-11-14 09:32 编辑

基于这个板子实现的高速SPI Flash烧写软件,现在功能基本上已经完成了,还有些细节需要调整

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2015-11-13 17:27:02 | 显示全部楼层
楼主这个有木有空板啊,冒昧想要一片。

出0入0汤圆

 楼主| 发表于 2015-11-14 09:25:51 | 显示全部楼层
huangqi412 发表于 2015-11-13 17:27
楼主这个有木有空板啊,冒昧想要一片。

有,需要的话免费送了,不过自己出邮费

出0入0汤圆

发表于 2015-11-14 09:32:12 | 显示全部楼层
wdluo 发表于 2015-11-14 09:25
有,需要的话免费送了,不过自己出邮费

   谢谢楼主,站内短信。

出0入0汤圆

发表于 2015-11-28 23:21:26 | 显示全部楼层
一直在研究USB,支持纬图,板子下月攒足了钱,就下手。

出0入0汤圆

发表于 2015-11-28 23:28:14 | 显示全部楼层
为啥不用STM32F4XX上的USB呢?是不是usb速度上不去?

出0入0汤圆

 楼主| 发表于 2015-11-30 09:15:14 | 显示全部楼层
xts 发表于 2015-11-28 23:28
为啥不用STM32F4XX上的USB呢?是不是usb速度上不去?

片上没高速USB PHY,所以得外接

出0入0汤圆

发表于 2015-12-2 14:16:05 | 显示全部楼层
谢谢,参考参考,虽然用的PHY不一样

出0入0汤圆

 楼主| 发表于 2015-12-2 16:10:42 | 显示全部楼层
whm_WUHAN 发表于 2015-12-2 14:16
谢谢,参考参考,虽然用的PHY不一样

你用的什么PHY?也学习学习

出0入0汤圆

发表于 2015-12-6 17:05:42 | 显示全部楼层
wdluo 发表于 2015-12-2 16:10
你用的什么PHY?也学习学习

我用的是NXP的ISP1716A,现在还未做这方面功能,后面方案可行的话,我也会分享给大家

出0入0汤圆

发表于 2015-12-6 17:26:20 | 显示全部楼层
stm32的USB还是感觉不方便,速度也就那样,要求高的不建议使用

出0入0汤圆

发表于 2015-12-6 17:46:52 | 显示全部楼层
支持楼主一下,我的最新的 iCore3 就参考了楼主的部分资料,在此表示谢意!!

http://www.amobbs.com/thread-5637306-1-1.html

出0入24汤圆

发表于 2015-12-6 18:18:32 | 显示全部楼层
Mark!学习一下

出0入0汤圆

发表于 2016-1-5 19:45:52 | 显示全部楼层
感谢分享,下载学习学习

出0入0汤圆

 楼主| 发表于 2016-2-24 09:23:32 | 显示全部楼层

出0入0汤圆

发表于 2016-2-24 16:51:25 | 显示全部楼层
不错,值得收藏的好东西

出0入0汤圆

发表于 2016-2-24 17:13:22 | 显示全部楼层
CY68013A up to 52MB/s using the bulk transfer.

出0入0汤圆

发表于 2016-6-30 15:09:52 | 显示全部楼层
谢谢分享!

出0入4汤圆

发表于 2016-7-1 10:49:40 | 显示全部楼层
感谢楼主分享,标记!

出0入53汤圆

发表于 2016-7-1 10:55:54 | 显示全部楼层
不错              

出0入0汤圆

发表于 2017-6-13 20:25:11 | 显示全部楼层

不错,收藏了,谢谢分享

出0入0汤圆

发表于 2018-11-1 15:32:03 | 显示全部楼层
楼主辛苦!

出0入0汤圆

发表于 2019-4-19 16:14:20 | 显示全部楼层
运行楼主stm32的程序。设备管理器一直刷新,右下角提示不能识别设备。设备管理器里出不了黄色感叹号。没有运行上位机,也没装驱动。按理说设备管理器里应该能出黄色警告,而不是一直刷新吧?

出0入0汤圆

发表于 2019-4-19 18:28:43 | 显示全部楼层
nianhua_m 发表于 2019-4-19 16:14
运行楼主stm32的程序。设备管理器一直刷新,右下角提示不能识别设备。设备管理器里出不了黄色感叹号。没有 ...

问题解决了,是硬件上 晶振并联的起振电阻没焊接! 看来这个起振电阻还挺重要啊?为什么其他有晶振电路 也没焊接这颗电阻,能起振呢?是因为晶振的问题吗?

出0入0汤圆

发表于 2019-4-20 15:09:17 | 显示全部楼层
牛啊,效率太高了

出0入0汤圆

发表于 2019-4-20 21:08:41 来自手机 | 显示全部楼层
不错

出0入0汤圆

发表于 2019-6-4 18:15:18 | 显示全部楼层

谢谢分享!

出0入4汤圆

发表于 2019-6-5 08:32:46 来自手机 | 显示全部楼层
名贴usb数据采集传输

出0入0汤圆

发表于 2019-8-21 08:50:03 | 显示全部楼层
楼主,能否分享一下原理图?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 14:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表