阅读:3099回复:7
[请教]ISP1582枚举编程
我的枚举程序做完了第一步的“主机读取设备描述符”,进行到了“地址分配”阶段,该阶段已经能读到主机发给设备的命令“00 05 02 00 00 00 00 00”,然后我在主函数(mainloop.c)中对ISP1582的地址寄存器设置了0x82的值,之后把EndPoint index 寄存器的值设置为0x00, 把control Function 寄存器的值设置为0x03, 这样,我认为就完成了"地址分配"阶段的工作。但是,程序运行的结果显示是进入不了第二次”取设备描述符“的阶段,就是一直不产生中断 ,程序一直停在主函数,而不在产生中断。
请问版上的USB高手们这是怎么回事?是不是我们的程序中遗漏了一些关键步骤还是硬件的原因?怎么解决不产生中断的问题? 就这个问题我已经弄了一周了,但是一直就是不产生中断啊!请知道的帮帮忙啊!谢谢了啊! 我的MCU是Ti公司的TMS320C6727。 |
|
沙发#
发布于:2009-03-24 11:10
你比我还好点,我正在用ISP1583开发USB接口,以前我们是用ISP581产品已经应用,但现在碰到问题,就是枚举不成功,具体就是已经能收到PC的第一个设置包,并且我也发送了返回信息,并有发送完成中断,但PC报未知的USB设备,一直搞不定,不知道你能不能给我指点指点。
|
|
板凳#
发布于:2009-03-25 22:49
你是地址分配的setup包没收到吧?
我是根据NXP公司提供的程序改写的。具体步骤是在收到第一个setup后,在该中断函数中读命令,然后回到主函数发送设备描述符,最后在TX0中断函数中置Endpoint index寄存器的值为0x01, control function 寄存器的值为0x03,执行完中断后函数会进入RX0中断,但什么都不做,只是进去清掉中断位就可以了。下面就可以收到第二个setup包了 |
|
地板#
发布于:2009-03-27 14:39
我收到的第一个包内容是:80 06 FF 01 00 00 40 00,即要我返回设备描述符,我返回了18个字节的描述符,其中包括PID、VID、包长度等,确实像你说的我在发送中断子程序中设置Endpoint index寄存器的值为0x01,control function 寄存器的值为0x03,但就是收不到接收完成中断,PC很快就反映未知USB设备。
但是如果我不在发送中断子程序中设置Endpoint index寄存器和control function 寄存器,PC则等很久才反映未知USB。 我搞四周了,一直搞不定,你一定要帮帮我啊! 你能不能把NXP公司提供的程序也发给我一份参考参考?yifazhao@163.com,或者留下你的电话我向你请教? |
|
5楼#
发布于:2009-08-12 14:11
路过!学习学习!
|
|
6楼#
发布于:2009-10-15 22:02
路过学习学习
|
|
7楼#
发布于:2019-05-23 18:25
您好,请问ISP1582用什么软件读写里面的驱动啊,NXP官网都没这个型号了,我在百度上搜到了您发的帖子
|
|