阅读:1322回复:3
如何从endpoint0中读写register,help me!
芯片告诉我往endpoint0中写某个register,该register仅有index和要写进去的值,哪位大牛写过?
|
|
|
沙发#
发布于:2004-07-20 14:15
这应该是固件完成的吧,你(驱动或应用)发一个命令字,固件解析它,
然后按你的要求写寄存器.当然命令字要事先和固件约定好. RequestType,request,wValue,wIndex在USB 2.0协议的第9章写的 很详细了,参考参考看看.另,HUB类的在第11章. 一点愚见,不知对否. |
|
|
板凳#
发布于:2004-07-20 11:20
描述不清,你! 芯片资料上告诉我往endpoint0中写某个register,该register仅有index和要写进去的值,哪位大牛写过? 芯片的firmware是产商写好了的,我现在仅写PC端的驱动: 芯片资料上是这么说的:Endpoint 0 是一个控制端点,主要用来枚举和设置。利用供应商提供的命令使用 控制传输来进行传感器的读写。 原文如下: Endpoint 0 is a control endpoint used for device enumeration and configuration. The sensor function registers are written and read using control transfers of vendor specific commands to endpoint 0. 功能传感器描述图: Function Register Map 就是下面这个Index Index Name Description Read/Write Access 0x08 CTRLA Control Register A R/W 0x09 CTRLB Control Register B R/W 0x0A CTRLC Control Register C R/W 我想住芯片寄存器CTRLB中写入数据0x05,应该怎么组织URB呢? 我写过下面的函数: UsbBuildVendorRequest(urb, //ptr to urb URB_FUNCTION_VENDOR_DEVICE, (USHORT) siz, //siz of urb 0, 0x42,//reservedbits=bmRequestType,0表示主机到设备关于设备的标准请求 //我这里用0x42表示主机到设备关于端点0的产商请求 0xCE,//request =IOCTL_WRITE_REGISTER 这是我定义的, wValue,// 这个wValue是不是就是我写寄存器CTRLB地址和数据的地方? 0, // index 这个Index我用0表示从主机到设备端点0 0,//TransferBuffer不知道是不是该从这里传送数据 NULL, //mdl (unused) 0, //bufferlength NULL); 我对RequestType,request,wValue,wIndex没有完全理解,还望 kobebasket继续帮我,万分感谢! [编辑 - 7/20/04 by emugine] |
|
|
地板#
发布于:2004-07-19 14:47
描述不清,你!
|
|