wzalexander
驱动牛犊
驱动牛犊
  • 注册日期2009-03-22
  • 最后登录2009-05-11
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3099回复:7

[请教]ISP1582枚举编程

楼主#
更多 发布于:2009-03-22 11:00
      我的枚举程序做完了第一步的“主机读取设备描述符”,进行到了“地址分配”阶段,该阶段已经能读到主机发给设备的命令“00 05 02 00 00 00 00 00”,然后我在主函数(mainloop.c)中对ISP1582的地址寄存器设置了0x82的值,之后把EndPoint index 寄存器的值设置为0x00, 把control Function 寄存器的值设置为0x03, 这样,我认为就完成了"地址分配"阶段的工作。但是,程序运行的结果显示是进入不了第二次”取设备描述符“的阶段,就是一直不产生中断 ,程序一直停在主函数,而不在产生中断。
  请问版上的USB高手们这是怎么回事?是不是我们的程序中遗漏了一些关键步骤还是硬件的原因?怎么解决不产生中断的问题?
  就这个问题我已经弄了一周了,但是一直就是不产生中断啊!请知道的帮帮忙啊!谢谢了啊!
   我的MCU是Ti公司的TMS320C6727。
yifazhao
驱动牛犊
驱动牛犊
  • 注册日期2009-03-21
  • 最后登录2009-03-30
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望51点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-03-24 11:10
你比我还好点,我正在用ISP1583开发USB接口,以前我们是用ISP581产品已经应用,但现在碰到问题,就是枚举不成功,具体就是已经能收到PC的第一个设置包,并且我也发送了返回信息,并有发送完成中断,但PC报未知的USB设备,一直搞不定,不知道你能不能给我指点指点。
wzalexander
驱动牛犊
驱动牛犊
  • 注册日期2009-03-22
  • 最后登录2009-05-11
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-03-25 22:49
你是地址分配的setup包没收到吧?
  我是根据NXP公司提供的程序改写的。具体步骤是在收到第一个setup后,在该中断函数中读命令,然后回到主函数发送设备描述符,最后在TX0中断函数中置Endpoint index寄存器的值为0x01,
control function 寄存器的值为0x03,执行完中断后函数会进入RX0中断,但什么都不做,只是进去清掉中断位就可以了。下面就可以收到第二个setup包了
yifazhao
驱动牛犊
驱动牛犊
  • 注册日期2009-03-21
  • 最后登录2009-03-30
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望51点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于: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,或者留下你的电话我向你请教?
zpzp_1983
驱动牛犊
驱动牛犊
  • 注册日期2009-05-30
  • 最后登录2009-11-13
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望71点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2009-07-15 15:47
引用楼主wzalexander于2009-03-22 11:00发表的 [请教]ISP1582枚举编程 :
      我的枚举程序做完了第一步的“主机读取设备描述符”,进行到了“地址分配”阶段,该阶段已经能读到主机发给设备的命令“00 05 02 00 00 00 00 00”,然后我在主函数(mainloop.c)中对ISP1582的地址寄存器设置了0x82的值,之后把EndPoint index 寄存器的值设置为0x00, 把control Function 寄存器的值设置为0x03, 这样,我认为就完成了"地址分配"阶段的工作。但是,程序运行的结果显示是进入不了第二次”取设备描述符“的阶段,就是一直不产生中断 ,程序一直停在主函数,而不在产生中断。
  请问版上的USB高手们这是怎么回事?是不是我们的程序中遗漏了一些关键步骤还是硬件的原因?怎么解决不产生中断的问题?
  就这个问题我已经弄了一周了,但是一直就是不产生中断啊!请知道的帮帮忙啊!谢谢了啊!
   我的MCU是Ti公司的TMS320C6727。

对ISP1582的地址寄存器设置了0x82的值,之后为什么要把EndPoint index 寄存器的值设置为0x00呢?不应该是0x1吗,选择TX,等待IN包,然后发送空包给Host吗?
lang5312
驱动牛犊
驱动牛犊
  • 注册日期2005-10-08
  • 最后登录2009-08-25
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望284点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2009-08-12 14:11
路过!学习学习!
yi0734
驱动牛犊
驱动牛犊
  • 注册日期2009-08-16
  • 最后登录2010-01-14
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望191点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2009-10-15 22:02
路过学习学习
tangguiqiu
驱动牛犊
驱动牛犊
  • 注册日期2019-05-23
  • 最后登录2019-05-23
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2019-05-23 18:25
您好,请问ISP1582用什么软件读写里面的驱动啊,NXP官网都没这个型号了,我在百度上搜到了您发的帖子
游客

返回顶部