pengenwen
禁止发言
禁止发言
  • 注册日期2003-03-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1586分
  • 威望8380点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1885回复:14

欢迎使用68013 slave fifo的朋友一起讨论

楼主#
更多 发布于:2004-01-06 08:42
用户被禁言,该主题自动屏蔽!

最新喜欢:

lmhhlmhhlmhhlm...
huoxy
驱动小牛
驱动小牛
  • 注册日期2002-03-01
  • 最后登录2014-02-24
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望4点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-01-06 09:46
请教一个问题。


DMA Write 正常。从主机通过EP2发向设备的数据,可以通过在 SLRD 加一系列的低电平脉冲读出去。

但是 DMA Read 不正常。计划通过EP6向主机返回数据,IFCFG = 11 已经选择Slave FIFO模式,SLCS = 0 ,FIFOADR = 10, FIFOFULL = 1,应该我已经选择了EP6 FIFO,而且缓冲区不满(还没有写任何数据),此时,如果我在 SLWR 引脚加低电平脉冲,则出现问题,有时在1->0出问题、有时在0->1出问题,在第一个低电平脉冲期间肯定会出问题,问题:有时是“设备被意外删除”、有时是“添加了一个不可识别的新设备,原设备还在,但如果应用程序操作原设备则系统重起”。

为了测试,我把 68013 与其他外围设备断开连接,把它的各个引脚通过过孔引了出来,如果手拿着一个电阻腿去碰各个引脚,碰别的引脚都没关系,唯独一碰 SLWR 引脚就会出现上述的问题。

我的电路板没有用多层板,只是双层,这有没有关系?
是不是我的低电平脉冲太宽的关系?
是不是芯片的问题?该芯片的PD.0引脚不能输出(OED = 0xFF)PD的其他引脚都可以。该芯片为样片。
好好学习,天天向上,做一个乖宝宝。
pengenwen
禁止发言
禁止发言
  • 注册日期2003-03-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1586分
  • 威望8380点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-01-06 10:02
用户被禁言,该主题自动屏蔽!
huoxy
驱动小牛
驱动小牛
  • 注册日期2002-03-01
  • 最后登录2014-02-24
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望4点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-01-06 10:48
FIFOFULL = 1?什么意思?
这应该是一个状态位吧,FIFO满了你当然就不能写数据了


FIFOFULL = 1 就是说他输出高电平,如果他输出低电平 (=0)才应该是满了。

FIFOPINPOLAR = 0;

FF FE 都是 active LOW . 也就是说,低电平才缓冲区满。
好好学习,天天向上,做一个乖宝宝。
chaoswang
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2005-10-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-01-06 11:21
    我用68001,只能用slave fifo。
pengenwen
禁止发言
禁止发言
  • 注册日期2003-03-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1586分
  • 威望8380点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-01-06 11:37
用户被禁言,该主题自动屏蔽!
fengzhongzhige
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2008-04-15
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望10点
  • 贡献值0点
  • 好评度40点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-01-06 13:10
68013,
slave fifo 异步写模式
auto in

用FPGA往EP6里写数据,

1。如果没限制个数的往里写,用上层调用DeviceIoControl往PC里读,可以读出来数据。但是数据并不是从0开始的,为什么?(自己定义的循环从0开始递增的数据往EP6里写)
2。如果限制写的个数,比如30个,用上层调用DeviceIoControl往PC里读,就读不出来数据了。为什么?

时序是参照技术手册里的异步写的时序
PCI卡 http://blog.21ic.com/blog.asp?name=zhangdage
huoxy
驱动小牛
驱动小牛
  • 注册日期2002-03-01
  • 最后登录2014-02-24
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望4点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-01-06 14:36
68013,
slave fifo 异步写模式
auto in

用FPGA往EP6里写数据,

1。如果没限制个数的往里写,用上层调用DeviceIoControl往PC里读,可以读出来数据。但是数据并不是从0开始的,为什么?(自己定义的循环从0开始递增的数据往EP6里写)
2。如果限制写的个数,比如30个,用上层调用DeviceIoControl往PC里读,就读不出来数据了。为什么?

时序是参照技术手册里的异步写的时序
 


你是不是没有使用 PKTEND ,如果小于512字节的数据包,应该使用此管脚强制发送“短数据包”。

你在 SLWR 上加低电平脉冲设备不复位吗?我的设备在 SLWR 上一加低电平就复位,而且如果在启动时如果把 SLWR 通过电阻连接到低电平,则设备不能成功枚举,请问你有没有遇到这个现象。能否帮忙试一下?
好好学习,天天向上,做一个乖宝宝。
fengzhongzhige
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2008-04-15
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望10点
  • 贡献值0点
  • 好评度40点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-01-06 15:02
技术手册上好像说过,当IN 时,包的大小可以随意,OUT时,是固定的.

slwr信号在写的时候用到,并没有引起抚慰.一切正常,不知道阁下是什么原因了
PCI卡 http://blog.21ic.com/blog.asp?name=zhangdage
huoxy
驱动小牛
驱动小牛
  • 注册日期2002-03-01
  • 最后登录2014-02-24
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望4点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-01-06 15:23
技术手册上好像说过,当IN 时,包的大小可以随意,OUT时,是固定的.

slwr信号在写的时候用到,并没有引起抚慰.一切正常,不知道阁下是什么原因了


小于512字节的“短包”必须用 PKTEND 强制发送。 Out包大小可以由应用程序随意。

刚才友人告诉我 Reserved Pin 应该接地,我忘了接,可能是这个原因,你的接地了吧。
好好学习,天天向上,做一个乖宝宝。
fengzhongzhige
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2008-04-15
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望10点
  • 贡献值0点
  • 好评度40点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-01-06 15:58
开发包里由一些文档,是关于硬件应该注意的,我的接地了,

我记得好像是in是任意的,可能寄错了.可我加上pkend 也不好使
PCI卡 http://blog.21ic.com/blog.asp?name=zhangdage
huoxy
驱动小牛
驱动小牛
  • 注册日期2002-03-01
  • 最后登录2014-02-24
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望4点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-01-06 16:32
开发包里由一些文档,是关于硬件应该注意的,我的接地了,

我记得好像是in是任意的,可能寄错了.可我加上pkend 也不好使


我的 SLWR 还不好使,没有到 PKTEND 这一步,我也只是从资料上看到的。
好好学习,天天向上,做一个乖宝宝。
fengzhongzhige
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2008-04-15
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望10点
  • 贡献值0点
  • 好评度40点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-01-06 17:11
号了,我的问题解决了,原来是谢数据太早了.
要不,你酒吧盖接地的接地,然后仔细检查SLWR
PCI卡 http://blog.21ic.com/blog.asp?name=zhangdage
huoxy
驱动小牛
驱动小牛
  • 注册日期2002-03-01
  • 最后登录2014-02-24
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望4点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-01-07 08:49
号了,我的问题解决了,原来是谢数据太早了.
要不,你酒吧盖接地的接地,然后仔细检查SLWR  


我的问题也解决了,就是 Reserved Pin 的问题。

现在,我的 CY7C68013 基本上已经都通过了。唯一的问题就是总线供电的问题,如果时总线供电的话系统容易重启,不知道是驱动的问题(和我的1.1设备使用了同样的驱动源程序,GUID不一样),还是硬件不稳定,还USB线太长(大约2米)。
好好学习,天天向上,做一个乖宝宝。
xiang_d
驱动牛犊
驱动牛犊
  • 注册日期2001-10-22
  • 最后登录2004-03-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-01-29 08:46
楼上的兄弟,你确定是由于供电引起的吗?我也出现容易重起的情况,但是找不到原因,你试过自己供电吗?
游客

返回顶部