阅读:1457回复:1
枚举的问题
主机发setup包,进中断在寄存器setup0-7中取得setup包,发现是要求device descriptor,在回答主机一个ack后就通过ep0发送18字节的descriptor。现在问题是通过看寄存器发现数据已经发出去了,但是主机还是在发setup包,发了三次后就出现了unknown device。现在不知道哪错了。
到底周立功的那个程序是怎样把描述符发出的,我只看到她调用下面这个函数:大家可以帮一下吗?(发觉这里很多人遇到这问题,但都找不到原因,也没有解决的方法) //************************************************************************* //USB标准设备请求入口地址指针表 //************************************************************************* void (*StandardDeviceRequest[])(void) = { get_status, clear_feature, reserved, set_feature, reserved, set_address, get_descriptor, reserved, get_configuration, set_configuration, get_interface, set_interface, reserved, reserved, reserved, reserved }; |
|
沙发#
发布于:2007-03-29 09:07
“通过看寄存器发现数据已经发出去了”???寄存器只是表示你有把数据放进去而已,你应该通过工具来看
USB总线有没有你发的数据;如你所说,主机应该没收到你发给它的18个数据,如果有的话主机会发个空包给设备表示这次事务处理已完成,再发一个设备地址的SET UP 包给设备! ************************************************* 义隆USB IC <1>价格便宜 <2>可多次烧录,内置的USB控制器能帮开发者处理掉与PC端“枚举”时的大部分动作。 <3>低速 IC,传输速率1.5MBit/S EM78M612: 16PIN,18PIN,20PIN,24PIN,112 BYTE RAM,2K ROM带有A/D,EEPROM,PWM功能,有EP0和EP1两个端点。 EM78M611: 20PIN,24PIN,40PIN,44PIN(QFP),114BYTE RAM ,6K ROM,A/D,EEPROM, PWM功能,有EP0,EP1,EP2三个端点。 <4>全速 IC:传输速率12MBit/S EM78M680: 20PIN,24PIN,40PIN,40PIN(QFP),271 BYTE RAM ,6K ROM,A/D,EEPROM, PWM功能,有5个端点。 主要应用于: 1: USB和RS232/并口/PS2的转换 2: USB电脑加密锁/小U盘 3: USB无线激光鼠标笔发射/接收 4: USB无线鼠标/键盘/鼠标+键盘复合设备 5: USB智能手写笔 6: 电脑多媒体播放软件遥控器/接收器 7: USB游戏手柄/方向盘/玩具飞机模拟遥控器 8: USB SKYPE电话 9: USB网络彩灯 10:USB按摩器/计步器 11: USB车载DVD 12: 运动器材与电脑通信设备 13:U盘,读卡器等数据速度传输要求比较快且数据量大的产品 我司是台湾义隆单片机的一级代理商,集销售和开发于一体, 我USB部门拥有多位经验丰富的USB硬件开发工程师和电脑端USB驱动, 应用程序软件开发工程师,在短周期内能完成客户的各种方案; 如果是客户自己开发,我们将给客户提供最大的技术支持来帮助客户完成方案。 欢迎大家来电洽谈! ********************************** 深圳广硕电子 USB开发部 联系人:吴先生 TEL:0755-83762428 EMAIL:HLXYWSS@163.COM ADDRESS:深圳市福田区华强北路赛格科技园4栋中12D ********************************** |
|