brightfeng
驱动牛犊
驱动牛犊
  • 注册日期2004-01-14
  • 最后登录2005-08-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1810回复:6

请教:68013autoin模式问题

楼主#
更多 发布于:2004-12-30 16:12
1.PA7/SLCS/FLAGD引脚用于通用I/O口,即没用SLCS信号。EP6工作于AUTOIN模式,autoinlength=32Bytes,当我的dsp发32个字节给68013后,pc机读取数据时,bushound显示overrun,无法读入数据;

2.PA7/SLCS/FLAGD引脚用于SLCS,且SLCS的时序同FIFOADR的时序相同。这时DSP发32个字节后,PC读取数据时(要求读入的数据是32字节),每次只能读入一个字节,一共能读入两个字节的数据(读入的是开始的两个字节)。而且我的EP6FIFO是双缓冲,感觉是每读入一个字节,就自动打包并提交了。很奇怪啊

如果是时序有问题,应该是没有数据读入啊,可是现在读入的那两个字节数据是正确的。

另外,SLCS信号是可用也可以不用的,而且cypress网站上有一篇文章上写SLCS信号没有什么特别的时序要求。那么为什么用和不用有两种不同的结果呢?在手册上关于SLAVE FIFO异步时序图中,SLCS时序有时同SLWR一样,有时又同FIFOADR一样,有点晕!不过,我试过这两种时序,结果都是一样的。

现在很困惑,希望大家帮忙!
brightfeng
驱动牛犊
驱动牛犊
  • 注册日期2004-01-14
  • 最后登录2005-08-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-01-04 14:31
为什么没人理呢?:(
我顶
shen_51000
驱动牛犊
驱动牛犊
  • 注册日期2004-10-12
  • 最后登录2006-05-14
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-01-05 09:54
你要知道FIFOADR1:0作用是选择端点的
你这里只有IN数据,没必要加时序了吧
只要设置FIFOADR1:0为1,0即可(ep6)
蓝蓝的天空上有一朵白云……
brightfeng
驱动牛犊
驱动牛犊
  • 注册日期2004-01-14
  • 最后登录2005-08-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-01-06 09:26
楼上的大侠,我按照你说的试了一下,可是结果和原来是一样的,我觉得可能是SLCS信号的问题。
谁能告诉我SLCS信号的时序究竟应该是怎样的啊!!!!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-01-06 11:12
刚才特意查了一下文档,找到如下的文字:9.2.6 Slave FIFO Chip Select (SLCS)
The “Slave FIFO Chip Select” pin (SLCS) is an alternate function of pin PA7; it’s enabled via the
PORTACFG.6 bit (see Section 13.3.1, "Port A Alternate Functions").
The SLCS pin allows external logic to effectively remove the FX2 from the FIFO Data bus, in order
to, for example, share that bus among multiple slave devices.
While the SLCS pin is pulled high by external logic, the FX2 floats its FD[x:0] pins and ignores the
SLOE, SLRD, SLWR, and PKTEND pins.
关键看上一句,如果SLCS处于无效状态,那么68013的SlaveFifo就会失效,68013会忽略你dsp给出的SLOE等所有信号!也就是说这个管脚是Slave FIFO的片选,必须一直有效!
brightfeng
驱动牛犊
驱动牛犊
  • 注册日期2004-01-14
  • 最后登录2005-08-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-01-10 16:25
重新试了一下,将SLCS信号始终置低,果然不只接收到两个字节的数据了:)这个SLCS信号的问题解决了

但是,现在的现象是同不采用SLCS时的问题相同,即无法接收到数据,在bushound中显示overrun,然后pc再一次去接口取数据(DSP并没有再发数据),bushound 显示传输了正确数据,接着显示endpoint halted.接下来就是解决这个问题了。

谢谢大家帮我解决了SLCS的问题。
reuterk
驱动牛犊
驱动牛犊
  • 注册日期2004-12-24
  • 最后登录2005-02-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-01-13 12:09
slcs和address线在整个传输过程中不要有变化
slcs始终拉低,address对应ep6

查看一下你的pkdend设置以及是否与发送0字节有关
游客

返回顶部