打印

速度始终只能保持在16MB/S

[复制链接]
1716|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ousj|  楼主 | 2018-7-28 08:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在用的是68013,驱动使用的是cyusb.sys,32KB的那个,68013与设备的接口是27MB/S左右,slaveFIFO IN方式,在PC端通过同步或异步方式进行读取,现在速度始终只能保持在16MB/S
沙发
ousj|  楼主 | 2018-7-28 08:50 | 只看该作者
在提问之前我也看了论坛里的帖子,之前有大侠使用的这种方式刚开始大概也是这个速度,后来有些是通过修改PC端接收缓冲区大小实现了20+MB/S的,我自己的程序中缓冲区已经做了很多的修改,但是目前来看好像没有什么作用

使用特权

评论回复
板凳
houcs| | 2018-7-28 08:52 | 只看该作者
你的SlaveFIFO的外部MCU频率是多少?

使用特权

评论回复
地板
yinxiangh| | 2018-7-28 08:53 | 只看该作者

有没有另外外接FIFO存储器

使用特权

评论回复
5
chenjunt| | 2018-7-28 08:55 | 只看该作者


我也在测slaveFIFO 的AUTOOUT传输速度可速度非常可怜只有2.2MB/S

使用特权

评论回复
6
ousj|  楼主 | 2018-7-28 08:56 | 只看该作者
如果速度只有2.2MB/S的话,应该是PC端接收缓冲区设置得太小了,设置大点,比如10K,或是其他,会有比较大的提升

使用特权

评论回复
7
ousj|  楼主 | 2018-7-28 08:58 | 只看该作者
不过我的极限好像也就16MB/S

使用特权

评论回复
8
xxmmi| | 2018-7-28 09:01 | 只看该作者
不经过单片机,应该会很快啊!

使用特权

评论回复
9
kangzj| | 2018-7-28 09:02 | 只看该作者


用的什么传输模式啊?

使用特权

评论回复
10
ousj|  楼主 | 2018-7-28 09:03 | 只看该作者
楼上请指点一下,我测试的是SLAVE FIFO AUTOOUT模式 端点2 512*4 PC机发数据 外部主机我使用的是AVR单片机(11.0592MHZ)用单片机来读FIFO中的数据,从而测AUTOOUT的速度

使用特权

评论回复
11
ousj|  楼主 | 2018-7-28 09:04 | 只看该作者

另外我PC的缓冲区设置成了45K了,看来不是缓冲区太小的原因的问题,不知道速度的瓶颈在哪里?

使用特权

评论回复
12
juventus9554| | 2018-7-28 09:07 | 只看该作者


是i啊,测的是SLAVE FIFO的什么模式,外部主机是什么配置?

使用特权

评论回复
13
llljh| | 2018-7-28 09:08 | 只看该作者
我觉得首先必须确认外部主机的速度不能成为瓶颈

使用特权

评论回复
14
renyaq| | 2018-7-28 09:10 | 只看该作者
我也是16MB/s,下面上传的速度从32MB/s,提到48MB/s,连续传输还是16MB/s,

使用特权

评论回复
15
xxrs| | 2018-7-28 09:11 | 只看该作者
我用的FPGA传数,多半时间空闲,我知道瓶颈在上面,怎么修改缓冲区大小啊?

使用特权

评论回复
16
liuzaiy| | 2018-7-28 09:13 | 只看该作者
AVR用的是8位数据总线吧,它就是一个单片机,用它测USB速率,恐怕没法胜任。可以查一下时序,AVR操作一次外部数据用多少时间,加上其它软件开销,能估算出AVR读/写一个字节耗费的时间。

使用特权

评论回复
17
pangb| | 2018-7-28 09:14 | 只看该作者


或者上示波器,看看握手信号。

使用特权

评论回复
18
morrisk| | 2018-7-28 09:15 | 只看该作者
CY提供的例子除了接DSP,就是FPGA的。FIFO不仅可以8位操作,还可以16位操作,比如连16位的DSP总线。

使用特权

评论回复
19
ousj|  楼主 | 2018-7-28 09:17 | 只看该作者
谢谢楼上各位楼上,鼎力相助!是AVR单片机速度不过快,单片机的读周期是900ns的只有1.1M,很慢!瓶颈在AVR上

使用特权

评论回复
20
ousj|  楼主 | 2018-7-28 09:19 | 只看该作者
刚才发现一个新问题,还是上面提到的SLAVE FIFO AUTOOUT模式测试。
AVR单片机接收的数据通过串口返回从串口调试助手(通过串口助手读回USB发出去的数据)显示中发现向USB发2次不同的数据时,数据会不同步。
  比如我第一次发512个0x65(此时的开头257个数据不是65,是随机数),第二次再发512个0x65数据(这以后的数据都正常,发n次都行),第3次我发512个0x33数据,开头显示的是刚才的257个0x65数据,然后才是0x33.不知道怎么会这样的?

使用特权

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

本版积分规则

712

主题

7557

帖子

1

粉丝