阅读:2802回复: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-25 22:49
你是地址分配的setup包没收到吧?
我是根据NXP公司提供的程序改写的。具体步骤是在收到第一个setup后,在该中断函数中读命令,然后回到主函数发送设备描述符,最后在TX0中断函数中置Endpoint index寄存器的值为0x01, control function 寄存器的值为0x03,执行完中断后函数会进入RX0中断,但什么都不做,只是进去清掉中断位就可以了。下面就可以收到第二个setup包了 |
|