Jon
Jon
驱动牛犊
驱动牛犊
  • 注册日期2001-07-26
  • 最后登录2008-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2890回复:3

USB开发调试

楼主#
更多 发布于:2001-08-13 00:50
我现在进行USB与PC通信产品的开发,使用的芯片为PDIUSBD12+89C52,在进行Firmware调试时(PC暂时无Driver),开始能收到GetDiscriptor中断(数值为:80,06,00,01,00,00,40),但是我在Mainloop中WriteDriverDiscriptor后(长度为:16),我认为接下来应有中断产生,以便将长度为18的DRIVER_DISCRIPTOR余下的数据送完。请教各位高手,这种现象该如何解决?

最新喜欢:

changjtchangj...
Jonh
nigx
驱动巨牛
驱动巨牛
  • 注册日期2001-04-29
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分14166分
  • 威望71910点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-08-18 19:47
PDIUSBD12芯片全速模式下的枚举调试过程:
1) 单片机上电后立即初始化所有的接口、存储区、定时器和中断服务程序指针,按USB协议要求把PDIUSBD12芯片中的Soft_Connect位寄存器置为“1”,把D+线变为高电平,此时D-为低电平,信号为差分1。设备插入USB集线器后,集线器的状态寄存器发生变化,主机软件查询到变化后,发送一系列请求使能集线器的端口中。
2) 如果PDIUSBD12配置为总线供电方式,则外设一连接到集线器上,端口使能后便被提供100mA 总线电流,外设处于上电状态,芯片所有的寄存器清零并指向默认地址。如果用自供电方式,芯片的EOT_N管脚通过一个上拉电阻接到USB的V_BUS上。
3) 单片机第一次接收到主机的GetDescriptor请求中断响应,主机要求外设发送设备描述符,确定外设缺省管道控制端点的每次数据包大小。单片机程序中通过控制端点回送设备描述符,这次只需要保证设备描述符中前8个字节发送正确。
4) 主机发送SetAddree请求到外设,给USB外设分配唯一的地址。单片机把PDIUSBD12芯片的SetAddressEnable寄存器置为1。这时外设被分配唯一地址,此时设备才是真正的外设,只有这以后的USB设备才能进行数据传送。
5) 外设再一次接收到GetDescriptor请求。单片机再一次向主机传送设备描述符,主机分析描述符的信息。操作系统此时才有足够信息来寻找设备的驱动程序。
6) 操作系统会继续发出GetConfiguration请求,读取设备的配置信息。单片机程序中要把PDIUSBD12芯片的各个端点的配置情形回送到主机中。如果有多个配置信息,有多次请求发生。
7) 在设备能通讯前,主机给PDIUSBD12 一个SetConfiguration请求,主机根据整个系统的USB使用情况确认设备的哪一个配置有效,告诉其怎样工作,设备收到后调整有关信息,使设备能被客户软件利用。
wwffllf
驱动小牛
驱动小牛
  • 注册日期2001-07-14
  • 最后登录2004-11-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-10-16 22:12
你是怎么知道收到GET-DESCRIPTOR数据的?
我告诉你们,我可是身经百战了。见的多了,驱动开发,哪个版我没灌过? 你们要知道,驱动的▲版,那比你们不知道厉害到哪里去了,我在那谈笑风声。 你们有一个好,就是什么话题都灌。但是灌来灌去的问题,都 too simple, sometimes naive! 懂了没有? 所以说灌水啊,关键是要提高自己的知识水平。 哦,你们啊,不要想弄个大坑,re上十大,再羞辱一番?你们啊.... naive !! 改编于《江core发飙》
nigx
驱动巨牛
驱动巨牛
  • 注册日期2001-04-29
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分14166分
  • 威望71910点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-10-17 22:15
当初我调试时可把每一步细细的实验的。本子用了两本。所以我每一步非常熟悉。

下面既然是单片机就可以捕获的.
游客

返回顶部