阅读:1323回复:7
SL811的问题,各位大侠请帮忙,给分!!!
给设备安排地址时,发送过去的0x00;0x05;0x01;0x00;0x00;0x00;0x00;0x00请求能从示波器上看到,可是就是没有设备返回的ACK信号,读到EP0Status的值始终是0x04(超时)。
还有在USB总线复位(SL811Write (CtrlReg, 0x28);)后IntStatus值就马上从0x00变成0x60,不知道是什么原因,大侠请帮忙啊 !!! |
|
沙发#
发布于:2004-07-22 14:35
给设备安排地址时,发送过去的0x00;0x05;0x01;0x00;0x00;0x00;0x00;0x00请求能从示波器上看到,可是就是没有设备返回的ACK信号,读到EP0Status的值始终是0x04(超时)。 1.data 0/1是否正确 2.是否插着设备复位,如果是倒是正常的。 |
|
板凳#
发布于:2004-07-22 16:37
从示波器上看到的DATA0是正确的,
我们是插着U盘复位的,您说的寄存器值0x60正常还是说超时正常?? 谢谢!! |
|
地板#
发布于:2004-07-22 17:24
从示波器上看到的DATA0是正确的, 寄存器值0x60正常 |
|
地下室#
发布于:2004-07-23 09:11
如果设备插着,我觉得寄存器IntStatus的值是0x60不正常,
如果CtrlREg的寄存器禁止设备挂起,那么IntStatus应该指示设备 是否已经Ready,此时你的制式1,标明没有设备? 不知我分析是否对,高手指示指示? 我现在发送第一个Setup包,总是超时? 是否发送完Setup包后,检查寄存器Intstatus值为0x91,再读取 寄存器EP0Status,值一直为0x04,好像数据没有发送! 发送命令字为0x03,不知有什么问题呢? |
|
5楼#
发布于:2004-07-23 09:57
大哥,你的问题和我们一样,你的数据应该是发送了,只是你没用示波器看到而已,数据没法送就不会返回0x04。
我从示波器上看到的包很好,成功发送了,就是没有ACK 信号 |
|
6楼#
发布于:2004-07-23 11:52
命令字03是读,读取设备返回的0包应该用data1
|
|
7楼#
发布于:2004-07-23 22:45
你地层程序是自己变的吗?建议使用cypress提供的源程序。
我用了他公司的源程序,没有出现任何问题。 |
|