打印
[数据传输]

求助:USB传输只能写满一次输入FIFO

[复制链接]
1688|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本人做的USB图像采集,USB固件中设置端点6FIFO自动输入slave FIFO 块传输,512字节包大小,4倍缓冲。FIFO接口时钟为外部时钟10MHz,由于固件中设置的是端点6自动输入512字节,所以TD_Poll函数中没有编写满标志处理代码。
自己编写了一个多线程块传输上位机,接收时只能接收到2048个数据,后面接收到的数据全为0了。
现有以下几个疑问:
1、设置了端点6自动输入,是否还需要在TD_Poll函数添加EP6满标志的处理程序(技术参考手册上讲好像不用)
2、数据传输设计到两个域,USB域与接口域,这两个的时钟不一样(USB域24MHz,接口域10MHz),USB采用slave FIFO模式传输,需要考虑时钟同步问题吗?
3、对于USB图像采集来讲,如果一帧图像一次要传输19000个数据,是否需要在硬件端加存储单元来缓存数据,如果不需要原因是什么?
4、出现只能如下图只能接收2048Byte字节数据可能是什么原因?


上图为上位机接收到的数据
下图为上位机的多线程代码

相关帖子

沙发
zengshaoqing|  楼主 | 2015-9-26 10:12 | 只看该作者
有知道的不,回答一两个

使用特权

评论回复
板凳
nethopper| | 2015-9-26 14:26 | 只看该作者
EP6满标志出现后,要停止往FIFO里灌数据。 这时实时采集到的数据只有放硬件缓存了。是否需要额外的硬件缓存要看能整个系统硬软件能实现的USB数据流速度,比如160MBPS,和数据采集的数据流速度。如果后者比前者小一截,是有可能实现不要硬件缓存的(或只需很小一点硬件缓存),因为USB通讯口还有四个512字节的缓冲。

使用特权

评论回复
地板
Zev| | 2015-9-26 21:44 | 只看该作者
出售USB2.0的IC,ISP1507A1HNTM  QFN-32  可以免费提供样品QQ:823569333

使用特权

评论回复
5
雨天遮阳| | 2015-11-30 11:16 | 只看该作者
我只能回答你第一个问题,在TD_Init里设置AUTOIN=1,实际上就是51配置了USB芯片,之后的传输与51无关了,无需再TD_Poll中加入任何代码

使用特权

评论回复
6
雨天遮阳| | 2015-12-1 16:02 | 只看该作者
至于那一串0建议看看PKTEND的引脚说明

使用特权

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

本版积分规则

11

主题

25

帖子

0

粉丝