yung2002
驱动牛犊
驱动牛犊
  • 注册日期2004-02-14
  • 最后登录2004-04-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2028回复:2

请教usb mouse firmware 和 d12 的一些问题

楼主#
更多 发布于:2004-02-16 23:59
最近在朋友那借到一块驱动开发网的ZBoard(usb接口芯片用的是pdiusbd12) 开发板,想学学firmware,但是遇到了一个难题,请各位高手指点一二,小弟不胜感激!


我在原有firmware基础上改写,想做成usb鼠标设备,全部的描述符都是我使用usbview得到的。编译好下载的80c52上调试,win2000已经能够识别这个鼠标设备了(在设备管理器里可以看到“人体学输入设备”和“Hid-compliant mouse”)

(1)
可是之后我用万用表测试d12的中断引脚一直是高电平,也就是说d12没有再发出中断。不知道是什么原因

(2)
我从串口捕捉到的最后的get descriptor(report) 数据如下:

bmRequestType = 81, nType = 0
Request Type = Standard, Request = GET_DESCRIPTOR, Desc_type = 0x22.
CodeTransmit {5 1 9 2 a1 1 9 1 }
ReadInterruptRegister() = 0x02
EP0Tx {a1 0 5 9 19 1 29 3 }
ReadInterruptRegister() = 0x02
EP0Tx {15 0 25 1 95 3 75 1 }
ReadInterruptRegister() = 0x02
EP0Tx {81 2 95 1 75 5 81 1 }
ReadInterruptRegister() = 0x02
EP0Tx {5 1 9 30 9 31 9 38 }
ReadInterruptRegister() = 0x02
EP0Tx {15 81 25 7f 75 8 95 3 }
ReadInterruptRegister() = 0x02
EP0Tx {81 6 c0 9 3c 15 0 25 }
ReadInterruptRegister() = 0x02
EP0Tx {1 75 1 95 1 b1 22 95 }
ReadInterruptRegister() = 0x02
EP0Tx {7 b1 1 c0 }
ReadInterruptRegister() = 0x02
ReadInterruptRegister() = 0x01 //串口得到的最后一行数据


我觉得最后一行应该是ReadInterruptRegister() = 0x08 (endpoint 1 IN),host 向 device 要鼠标数据,是不是我的理解不对

d12只支持全速设备,而鼠标一般都是低速的,会不会是驱动程序的问题呢

谢谢!!

yung2002
驱动牛犊
驱动牛犊
  • 注册日期2004-02-14
  • 最后登录2004-04-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-02-20 21:44
那位大虾知道阿,大概说说也行,给分20。。。
doomleo
驱动牛犊
驱动牛犊
  • 注册日期2001-07-27
  • 最后登录2005-12-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-04-05 09:23
可能是你给REPORT_DESCRIPTOR有问题.
Desc_type = 0x22.是REPORT_DESCRIPTOR,
比对一下你的REPORT_DESCRIPTOR是否正确.
是否全速设备,只与电路设计有关,而与芯片和FIRMWARE无关.至于鼠标可否是全速设备,这一点我不清楚:(
LEO
游客

返回顶部