jxchen045
驱动牛犊
驱动牛犊
  • 注册日期2005-01-11
  • 最后登录2005-12-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3067回复:11

为什么我的D12的端点2老是halt???

楼主#
更多 发布于:2005-03-13 18:00
我用usb调试助手调试D12的时候,为什么端点2老是停止,然后我那个GOODLINK的灯就灭了????而端点1的工作都很正常,而且端点2的in也很正常,就是out老出问题???我的端点1和端点2都是设置成中断模式的,我现在的问题是,什么时候会出现端点停止的情况?出现这种情况的原因有哪些呢??望大伙们能指点一二,在此先谢过各位了,谢谢
jxchen045
驱动牛犊
驱动牛犊
  • 注册日期2005-01-11
  • 最后登录2005-12-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-03-13 20:06
好心人帮帮忙啊,就差一点了,为什么端点2输入(in)端点正常,而端点2输出(out)不行啊,端点1的收发也很正常,而且两个端点都是设置成中断传输,为什么,这到底是为什么???
现在的情况是我第一次发送一个out包给端点2,工作正常,我往端点2发送第二个out包就当掉了~~!!偶尔两次或者三次可以,然后就提示端点2读取错误(用USB调试助手1.2),然后GOODLINK就灭了,为什么??急切盼望大伙们的解答~~~~~~~~~~~~~
kkyouking
驱动中牛
驱动中牛
  • 注册日期2004-02-23
  • 最后登录2008-02-27
  • 粉丝0
  • 关注0
  • 积分47分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-03-14 09:11
看看是不是有干扰啊
52+PDIUSBD12开发套件 SL811单片机读写U盘套件 www.devking.cn 联系sl811hs@yahoo.com.cn QQ 14441292
jxchen045
驱动牛犊
驱动牛犊
  • 注册日期2005-01-11
  • 最后登录2005-12-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-15 09:05
如果有干扰的话,那d12的端点1为什么工作就正常呢??而且端点2的in也工作正常呢??就是端点2的out的问题,固件检查n遍了,就是看不什么问题来。是不是跟端点2的双缓冲有关??还是那个端点什么halt?是不是主机接到端点stall的信息,就认为端点停了呢??
snowerlist
驱动牛犊
驱动牛犊
  • 注册日期2004-11-29
  • 最后登录2012-03-13
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望37点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-03-15 09:32
据我了解,d12的端点1是中断传输,而端点2是作为批和同步传输,缓冲区大小都不一样!都设置成中断的in是没问题的,最多批和同步传输一次,但是out要MCU多次接收,问题就来了!
不定对,错了当我没说!别笑我 :(
snowerlist
驱动牛犊
驱动牛犊
  • 注册日期2004-11-29
  • 最后登录2012-03-13
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望37点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-03-15 09:38
看看D12的模式设置得么样!是Non-ISO还是ISO-IO?
jxchen045
驱动牛犊
驱动牛犊
  • 注册日期2005-01-11
  • 最后登录2005-12-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-03-15 13:59
这个也有可能,我看了我的mode的设置是10,和00,我用的at89s52,晶振用到24m(是不是太高了),我用89s52的时候,写端点不正常的时候,d12中断脚一直是低的!!!后面我改用s51看看,端点2的可以多写几次了,单步测试10多次没问题,不过多弄几下也不行,但是D12这时候的中断脚可是高的,而且goodlink也是亮的,而我用s52的时候居然是暗掉了??我想我软件上应该是没什么问题了,看来是硬件上不太可靠(用万能板焊的),可能是程序跑飞了吧,哎,郁闷~~~~~
jxchen045
驱动牛犊
驱动牛犊
  • 注册日期2005-01-11
  • 最后登录2005-12-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-03-15 14:25
是不是,缓冲区里的数据还没读走,PC没有收到out包的应答,就导致pc机认为端点工作不正常,就把端点停止了呢???因为我发现发送端点停了,但是接收端点还能正常工作,而且端点1同样工作的好好的。
    我换了一个低一点的晶振16m的,结果好象能多发送几次了(pc发送),但是次数一多就当了~~~不过有一次连续发送100多次也没问题,唉~~~神啊,救救我吧,调了好几天了,一个结果都没有(>_<)
snowerlist
驱动牛犊
驱动牛犊
  • 注册日期2004-11-29
  • 最后登录2012-03-13
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望37点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-03-15 16:25
你的mode的设置是10和00,表明是模式0端点1,2都是普通(中断)类型!
疑点有两个:
1。硬件不可靠:高速数据传输要考虑波形传导和反射,特别是对高频电路,所以对板子要求高!你换低频的晶振,可以得到更好的效果就使得该点的疑点更大。
2。pc机认为端点工作不正常:我得看看协议,不敢肯定!
附件名称/大小 下载次数 最后更新
2005-03-15_Audio Cd.ico (8KB)  5
jxchen045
驱动牛犊
驱动牛犊
  • 注册日期2005-01-11
  • 最后登录2005-12-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-03-16 08:46
这个问题在我不知道怎么回事的时候,突然就自己解决了,本来是做usb转can的程序的,我接受到数据就往can这边发,我想可能是can这边的发送有问题,导致后续的usb数据一直在缓冲里面没被读走,这是一个猜想,因为端点1同等情况下工作的却好好的。后面我火了,干脆试了一下自接收自发送的,结果工作好好的,唉,好的我是郁闷死了,接着我就更有确定是can这边的发送有问题,我把一些数据检验的,一些多余的判断去掉,终于是ok了,这次好的我也是莫名其妙。
   总结一些调试的小小经验:做接口转换的时候一定要分开调,收发数据都给它弄到中断里,在主程序里面进行数据处理。一定要注意固件里面不能做太多事,不要把固件写的太完美,因为很事其实交给上位机来做。测试数据发送的时候可以用自接受发送的模式来测试端点的情况,联合起来调试的时候你就比较有把握是软件的问题还是硬件的问题。仅供参考,谢谢大家的帮忙了,谢谢
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-03-17 10:56
好象是的.
对于端点的BUFF来说,当他满了时,他就不再接受数据,直到里面有空
余的空间.所以,当你传送或接收数据时一定要即时将数据取走,以免
照成端点不工作的情况出现.
新手上路,请多关照.
brickool
驱动牛犊
驱动牛犊
  • 注册日期2004-08-11
  • 最后登录2005-08-06
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-03-18 10:41
请问;你现在用的晶振还是24M的吗?D12 的板是自己做的吗?用USB自收自发的时候能到多少的速度?谢谢
我现在也在做usb,但速度慢的要死,也不知道是硬件还是软件的问题,郁闷很久了,谢谢了
游客

返回顶部