jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
阅读:2923回复:25

再讨论枚举问题,这次有1000分,已结贴!

楼主#
更多 发布于:2003-05-23 23:16
我做的是isp1581,mcu用的是dsp。前不久刚把isp1581+tms320f206调好,可是一样的固件拿到isp1581+tms320vc5402和isp1581+adsp-21062(sharc)的两块板子上就只能收到第一个描述符80 06 00 01 00 00 40 00,返回了数据有就什么也没有了,收不到下一个set address请求。

以前做的时候也曾经遇到这个问题,可是搞了几周后有一天突然就好了,始终没找到原因,因此这次来时还是束手无策呀!

[编辑 -  2/11/04 by  jinghuiren]

最新喜欢:

lhaihlhaih
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-02-10 22:11
呵呵,很早以前就搞定了,只是今天突然翻出来了,就顺便结一下贴子了。
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-02-10 14:31
搞定就好
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-02-10 13:38
结一下贴,这个问题产生的原因是我打开了控制端点的nak中断,从而导致中断多次重入而超时,关闭nak中断,只打开ack中断后问题即解决。
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-05-28 13:37
太晚了啦,刚放完你就来了 :D
等以后有机会多给你一些,我别的不多,就是分多,想要说一声就行,到灌水区去领! :D
kilroy_guo
驱动大牛
驱动大牛
  • 注册日期2002-10-29
  • 最后登录2005-11-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-05-28 13:26
 :D
冒灌水之嫌,前来恭喜&蹭分!
二姑家的猫想......
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-05-28 13:16
问题解决,原因是:
1,dsp和usb的中断触发方式不匹配,导致后续的中断被前面的屏蔽掉了,或者是由于硬件中断的原因,主程序里的发送函数还没有执行就有进入了中断服务程序,从而是全局变量的标志位发生改变!
2,中断寄存器的中断产生发是问题,我把端点0设置成对ack和nak都产生中断,这样收到setup包后因为处理程序较长,因此主机又发了多次in令牌导致nak中断产生,进而造成情况1中的后面那种情况

通过本次问题,偶对1581虽然不能说完全掌握,但对一般处理器模式应该是没有问题了,目前完成的对各种dsp的连接,其中有tms320f206,tms320vc5402,adsp-21062(sharc),后续工作还会完成对vc33,以及6x系列的连接!

万分感谢yalong兄与newtech兄的鼎立帮助!放分1000,聊表敬意!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-05-27 10:29
那位仁兄还有好的建议吗?
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-05-26 14:44
如果方便也发一份给我我帮你看看!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-05-26 12:53
首先写写newtech和yalong两位老兄的回复,我现在也开始怀疑是否是硬件问题了,因为以前只完成过5v器件的工作,所以不至3.3v是否能行,可是现在板子已经做好了,要改动比较麻烦

固件我已经仔细检查过了,应该是没有问题的,因为在5v供电的一块板子上已经通过了的!(相关的段落我已经在上面的回复贴子里贴出来了)

我的情况是:用bushound监测不到数据,这说明数据很有可能是没有发送,可是在固件中当我把数据写完后已经强制使该端点生效了,也就是说只要收到in令牌,数据一定会发走的。

在完成发送工作后就在没有收到中断了,只是在收到setup包的时候同时收到了一个ep0tx的中断,我认为这个中断是设备因为正确收到setup包而给主机发送ack信号而产生的。

我想请yalong兄给我看一下电路,如果是硬件的问题我就只好飞线了!
yalong
驱动牛犊
驱动牛犊
  • 注册日期2001-08-27
  • 最后登录2011-07-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-05-26 07:59
老弟!还没有搞定啊!我也觉得你的硬件有可能有时序或是别的什么问题。不行,我帮你看看你的电路,5402还算熟悉,也在上面开发过USB1.1。1581的硬件也不是很复杂,支持3V系列。如果硬件没有什么问题,再集中经历搞定固件部分。固件的焦点在于:第一,数据发出去没有,第二,接收的中断清掉没有,能否再收中断。确定了这两部分,也就没问题了!
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-05-26 02:07
在刚开始枚举的阶段,就是收到0x80,,,,0x40的时候,这时的地址还是为0,所以bushound一定可以看到,你回送8个字节的描述符后,就应该收到,set address,一要直到set config之后才看不到ep0的数据了,我觉得你看一下你的器件手册,是否在发送完成之后,还会产生一个中断,这个中断你要直接清除掉,另外你要看一下,usb总线的上的电阻接法,再有我记得好像5v和3v的器件的设置不一样的!还有就是,如果用3v,那么可能你的dsp也要用3v!
cakor
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2009-06-11
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-05-25 14:25
误会,误会!我现在只是做D12的。做什么都无所谓,思路大概是一样的吧
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-05-25 13:46
对了cakor兄,你是否也是做isp1581的,那么能否把你相关的处理函数发一份给我让我参考一下呢,我只需要与get_device_descriptor有关的部分,就如我之前贴出来的那段程序一样,我想比较一下有何不同,看是否我还有什么东西漏掉了!

多谢了。

我的信箱:jinghuiren@163.com

[编辑 -  5/25/03 by  jinghuiren]
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-05-25 13:43
老兄,多谢你的建议了,我刚才看了一下,我们这里没有那么好的仪器呀,哎,我们这只有好一点的数字示波器,不过已经试过了,根本检测不到总线上设备发给主机的数据。
cakor
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2009-06-11
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-05-25 13:19
jinghuiren,兄台!希望这些也对你有用!

USB 2.0 测试步骤可从以下URL下载: www.usb.org/developers/doc.html
    1. Universal Serial Bus Implementers Forum Full and Low-Speed Compliance Test Procedure
    2. Universal Serial Bus Implementers Forum High-Speed Electrical Test Procedure

USB 2.0 Test Tool可从以下URL下载: www.usb.org/developers/tools.html
    1. USBCV
    2. USBCheck
    3. USB High-speed Electrical Test Tool Kit

cakor
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2009-06-11
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-05-25 13:02
还有这里!
http://www.usb.org/developers/docs/Device_HS_test_tektronix41503.pdf
但是这些仪器都很贵的,买不起的
cakor
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2009-06-11
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-05-25 12:58
jinghuiren兄,我建议你到:
http://www.usb.org/developers/compliance/DeviceHSTestforAgilent.pdf
去看看他的TEST对你有没有帮助吧!!
imaginewq
驱动牛犊
驱动牛犊
  • 注册日期2003-03-10
  • 最后登录2003-10-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2003-05-24 23:12
   不好意思,jinghuiren老兄,我是那个问你pipe 问题的菜鸟,感谢你的帮助。
   我对那个问题还有个新的想法,麻烦你再去看看
   谢谢!
 ;)
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2003-05-24 21:56
  这块板子和已经调通的那块板子唯一的区别就是供电问题,调通的那个用的是5v板上供电,而现在这块是3.3v板上供电,但是电源的连接方法是按照datasheet给的连接的呀,而且datasheet明确说明1581这两种供电方式都是可以的。

我在前面已经提到,我收到的中断里有一个是ep0tx中断,这个中断的产生原因我认为是收到了get descriptor的setup包,1581给主机产生ack信号因而产生的中断,这说明缺省的地址0已经正常工作,我用bushound检测不到数据,因此很有可能是数据没有发给主机,但是我检查了发送程序,在那块调通的板子上是完全可行的,确实是没有问题的呀,真是奇怪,这几天老板还整天催我,哎,这日子没法过了! :(
上一页
游客

返回顶部