各位达人好,俺最近搞一个LPC2378+ISP1161的USB主机项目,遇到几个问题请教各位达人:
1,在批量传输数据的时候经常出现这样的情况(但不是每次都出现):命令阶段正常,数据阶段正常,可到了状态阶段出现了问题,单步跟踪后发现是状态阶段收到的PTD数据结构中的ActualBytes域本来应该是13字节(CSW),但实际收到的是0字节,但是收到的PTD中的CompletionCode域却是正确的0x00;这样的情况只要出现一次,以后的批量传输就都回出错,导致整个数据传输过程失败。但是,如果在批量传输的数据阶段之后加入一个比较大的延时,这样的情况出现的几率会大大的降低,请问有哪位达人遇到过这样的情况?为什么会出现这样的情况?
2,传输速度的问题。我们的主机写U盘的速度经过测试只有3.xKB/s,写一副300k左右的图片到U盘用了一分钟左右,速度出奇的慢。我们的2378用的是模拟总线,理论上说模拟总线的速度会慢一些,但即使这样,主控器每次向1161送出16位数据之后必须加入一个计数大约5000左右的延时,否则ADS就会出现“取数据终止”的错误(表明程序运行出错),并且程序根本无法执行加入延时之后程序才会正常运行,请各位达人帮忙分析一下原因!!
感激涕零!!!
这个是固件程序,我不会,只有帮你顶一下,驱动有什么问题,可以找我.
逸帆你好
我不知道你说的驱动是不是指windows下的驱动阿?我这里的这个程序是应该属于USBD这一块的吧,只不过我这是嵌入式系统下的驱动而以,它下面是1161的主机控制器驱动,上面是大容量类设备驱动。不知道我这样理解对不对??
还有,在你的驱动程序里,你对批量传输出错是怎么样处理的?