阅读:1546回复:14
关于d12手册的问题(STALL)<特别是做过EZ-USB的>
手册上说40H命令-45H命令是读最后处理状态寄存器,处理是读一个字节,可是我看一个EZ-USB的汇编例程是调用40H命令后,向D12写了一个字节的数据#00000001H啊...是因为EZ-USB和普通D12不一样么....那我要怎么做才能返回STALL指令阿...
还有一个fdH.好像是得到芯片ID的命令.不知道是不是啊.可是手册上没有啊?? [编辑 - 12/10/02 by dacongtou] |
|
沙发#
发布于:2002-12-13 15:03
补充一点,用GetStatus()命令可以得到一个端点的‘halt’特性,参考一下9.4.5,里面有较详细的说明,不知道你现在做的怎么样了。 我还没到这一步呢..枚举总是通不过...急死了 |
|
板凳#
发布于:2002-12-13 14:39
补充一点,用GetStatus()命令可以得到一个端点的‘halt’特性,参考一下9.4.5,里面有较详细的说明,不知道你现在做的怎么样了。
|
|
地板#
发布于:2002-12-13 11:22
当数据收发连续出现三次错误时硬件会自动停止该端点,接下来我们要做的就是解除这个端点的停止状态,用ClearFeature()命令是协议明确说明的,但是能否在设备方直接通过先禁止再使能端点的方法来清除端点的停止状态我没试过我也不知道,不过我在例子代码中看到设备方收到ClearFeature()命令后做的事情也就是先禁止再使能该端点,设备能不能自己判断并清除那要试了才知道。
除了自动停止外,你也可以通过SetFeature( )命令来停止一个端点,详细情况协议9.4里有说明,你可以看一下然后试一下,如果试出来了别忘了告诉我一声哟,我也很想知道! 另外判断端点是否停止在设备方可以通过读相应的寄存器,在主机方我就不知道通过什么方法判断了,还往知道的大虾不吝赐教! |
|
地下室#
发布于:2002-12-13 08:05
应该是端点停止掉后硬件自动发的吧,协议里说如果一个端点(端点0除外)被停止,那主机再发送in或out令牌过去该端点都会以stall应答,直到该端点的stall状态被清掉为止,主机可以通过发送ClearFeature()命令来清除端点的停止状态,设备方收到这个命令后首先禁止该端点然后再使能它。 如何令端点停止阿?还是它自动停止..那不是我们就什么都不用做了么 |
|
5楼#
发布于:2002-12-12 13:54
应该是端点停止掉后硬件自动发的吧,协议里说如果一个端点(端点0除外)被停止,那主机再发送in或out令牌过去该端点都会以stall应答,直到该端点的stall状态被清掉为止,主机可以通过发送ClearFeature()命令来清除端点的停止状态,设备方收到这个命令后首先禁止该端点然后再使能它。
不知道可不可以直接在设备方先禁止再使能一个端点来清除它的stall状态而不通过主机的干预? |
|
6楼#
发布于:2002-12-12 11:50
去看zboard的USBD12_SetEndpointStatus函数。
|
|
|
7楼#
发布于:2002-12-12 08:20
sorry!应该是硬件的register里面一般都有设置相应的bit,这样就可以发stall。 我还没说谢谢那..有什么可SORRY的 :P 可是我没找到D12哪里可以发啊....真有够笨 |
|
8楼#
发布于:2002-12-11 23:10
sorry!应该是硬件的register里面一般都有设置相应的bit,这样就可以发stall。
|
|
|
9楼#
发布于:2002-12-11 10:58
registry里面有设置。 那需要我做什么呢..我不太明白你的意思? |
|
10楼#
发布于:2002-12-11 09:52
registry里面有设置。
|
|
|
11楼#
发布于:2002-12-10 17:21
我会一直顶到我明白为之的..... :mad:
|
|
12楼#
发布于:2002-12-10 11:02
D12 和EZ-USB 是两种完全不同的器件吧? 那请问我怎么通知主机STALL了啊?? |
|
13楼#
发布于:2002-12-10 10:57
D12 和EZ-USB 是两种完全不同的器件吧?
D12 是PHILIPS 公司的USB接口芯片, 而EZ-USB是CYPRESS公司的USB单片机! |
|
14楼#
发布于:2002-12-09 17:30
没人理.自己顶.
我就是想知道如何教主机知道STALL了 |
|