5204|14

57

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教PDIUSBD12 枚举问题 [复制链接]

请教大家一个问题!
我现在在用PDIUSBD12,通过SoftConnect连接到主机,主机显示了“无法识别的USB设备”,然后在单片机的程序内收到了一个复位信号,接下来就没反应了!(接下来应该会收到主机发送的设备描述符请求才对呀)。不知道有没有人知道这是什么原因呢?谢谢!

最新回复

楼主怎么不解帖呢,点击“结帖”就可以了,然后在每个回答你的网友那里给分,使总分值等于你给出的可用分就可以了。。。  详情 回复 发表于 2010-6-22 15:24
点赞 关注

回复
举报

77

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
这个问题比较复杂地。主机发送设备描述符请求是有一些前提条件的。你需要用USB逻辑分析仪,或者用Bushound分析一下USB总线上到底发生了什么。

 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
枚举问题,重新核对枚举,用软件抓一下就知道那里出问题了
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

4
 
谢谢您的回复!
请问主机发送设备描述符要求有哪些前提?
还有我用BusBound看到了一些数据,可否帮我分析一下?谢谢!

Device  Phase  Data                      Description       Cmd.Phase.Ofs(rep)
------  -----  ------------------------  ----------------  ------------------
  10.0  CTL    a3 00 00 00  01 00 04 00  GET STATUS               1.1.0(2)     
  10.0  DI     01 03 01 00               ....                     1.2.0        
  10.0  CTL    23 01 10 00  01 00 00 00  CLEAR FEATURE            3.1.0        
  10.0  CTL    a3 00 00 00  01 00 04 00  GET STATUS               4.1.0(2)     
  10.0  DI     01 03 00 00               ....                     4.2.0        
  10.0  CTL    23 03 04 00  01 00 00 00  SET FEATURE              6.1.0        
  10.0  CTL    a3 00 00 00  01 00 04 00  GET STATUS               7.1.0        
  10.0  DI     03 03 10 00               ....                     7.2.0        
  10.0  CTL    23 01 14 00  01 00 00 00  CLEAR FEATURE            8.1.0        
  10.0  CTL    a3 00 00 00  01 00 04 00  GET STATUS               9.1.0(2)     
  10.0  DI     03 03 00 00               ....                     9.2.0        
  10.0  CTL    23 03 04 00  01 00 00 00  SET FEATURE             11.1.0        
  10.0  CTL    a3 00 00 00  01 00 04 00  GET STATUS              12.1.0        
  10.0  DI     03 03 10 00               ....                    12.2.0        
  10.0  CTL    23 01 14 00  01 00 00 00  CLEAR FEATURE           13.1.0        
  10.0  CTL    a3 00 00 00  01 00 04 00  GET STATUS              14.1.0(2)     
  10.0  DI     03 03 00 00               ....                    14.2.0        
  10.0  CTL    23 03 04 00  01 00 00 00  SET FEATURE             16.1.0        
  10.0  CTL    a3 00 00 00  01 00 04 00  GET STATUS              17.1.0        
  10.0  DI     03 03 10 00               ....                    17.2.0        
  10.0  CTL    23 01 14 00  01 00 00 00  CLEAR FEATURE           18.1.0        
  10.0  CTL    a3 00 00 00  01 00 04 00  GET STATUS              19.1.0        
  10.0  DI     03 03 00 00               ....                    19.2.0        
  10.0  CTL    23 01 01 00  01 00 00 00  CLEAR FEATURE           20.1.0        
  10.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS              21.1.0        
  10.0  DI     00 01 00 00               ....                    21.2.0        
  10.0  CTL    80 00 00 00  00 00 02 00  GET STATUS              22.1.0(2)     
  10.0  DI     01 00                     ..                      22.2.0      
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

5
 
俺对Bushound不熟悉。不知道你贴的Log的意思。
建议你结合USB Spec看看每条命令什么意思好了。

BTW,日志里面SET_FEATRURE/GET_STATUS/CREAR_FEATURE/GET_STATUS重复循环进行,可能是Set_Port_Feature/Get_Port_Status不成功。
建议参考:
http://hi.baidu.com/doyanger/blog/item/41fdb7512babb45b1138c260.html
http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f7643c9786027fa3c215cc790b1f1a33fecd7064435f8dd27b1361d95e5c9d80682f621427c3da92d00d9cf9c57b388f5334751d805612a443e9941831847dd00ce6e858b7adf043c4f2958c8814008c08582697f0fa1b5752dd6e80033697b19838410843fcaa7032&p=882a9645ce985df90be29536114a&user=baidu
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

6
 
要说USB,你去一个网站应该比这儿火,http://group.ednchina.com/93/
推荐一本书:圈圈教你玩USB  北航出版的
这本书基于51单片机,使用PDIUSBD12,讲的很基础很好,可以看一下。。。
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(中级)

7
 
谢谢您的回复!
我看了你发的链接和这个链接(http://hi.baidu.com/%B2%A9%D2%BB%B5%E7%D7%D3/blog/item/b2a9e27d284a760428388a90.html),我觉得SET_FEATRURE/GET_STATUS可能是Set_Port_Feature/Get_Port_Status的不同称呼,其实是一样的!USB Spec中说的也不是很具体!
我现在在固件程序里可以收到主机发的复位信号,但就是收不到主机发的请求设备描述符命令,不知道是不是我的PDIUSBD12初始化有问题还是硬件链接有问题?
看了很久也找不出问题所在!我的程序是参考《周立功固件编程与驱动开发》的。
硬件链接:
D0~7接数据线(单片机I/O)
CS_N和A0接地址线(单片机I/O)
RD_N、WR_N、INT_N、RESET_N、suspend接单片机I/O
D+、D-直接接USB接口
EOT_N、DMACK_N通过电阻接3.3V
ALE接地
DMREQ悬空

 
 
 

回复

194

帖子

0

TA的资源

一粒金砂(中级)

8
 
我倒是觉得可能是你固件或你电路的问题,如果没问题主机肯定会发读描述符的命令的,我刚做了一个,一开始也是不行,后来把固件好好的修改了一下,主要是保证控制器发送的命令PDIUSBD12能接到,D12速度较慢,有时单片机发的命令在线上时间太短!
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

9
 
我在读写总线的时候,都加了点延时:
//向PDIUSBD12发送命令或数据
void outportb(uint16_t Addr, uint8_t Data)
{       
        _delay_us(1);
        *((volatile uint8_t *)Addr) = Data;
}

//从PDIUSBD12器件读取数据
uint8_t inportb(uint16_t Addr)
{
        _delay_us(1);
        return *((volatile uint8_t *)Addr);
}
现在读D12_ReadChipID()是0x1012,设置模式时也能设置成功,不知道哪里可能出问题,楼上的固件主要修改了那块呀?
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

10
 
就是你上面这一块,我的延时比你稍长,我当时还在硬件改了一下,当时我的D+ D-都接了1M的电阻(接地和电源),后来就去掉了,
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

11
 
不知道延时多长时间合适,延时了1us后读芯片ID(D12_ReadChipID)第一次是0000,以后就一直是0x1012,不知道这样会不会影响到后面的操作!
还有D+和D-,我现在直接和USB接口的D+和D-连接的,中间没有加电阻,我看到很多人都加了18欧姆的电阻,不知道这样会不会影响?
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

12
 
0x1012  是对的 ,  都加18欧姆的电阻, 周理工的程序 看着头大,但是标准, 单步跟踪看看吧,

有的时候 要把枚举换成 定值就好了,周理工的是超飞利浦芯片厂家的代码,

我以前买过一个原厂飞利浦的d12板子,

检查硬件,然后就是调整软件了,
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

13
 
谢谢,那我先去买18欧姆的电阻,先焊上试试吧。最近高的头都大了!枚举换成定值是怎么换的?
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

14
 
我的问题终于解决了,原来是D+、D-接反了。谢谢大家这几天的帮忙。不知道怎么给分?
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

15
 
楼主怎么不解帖呢,点击“结帖”就可以了,然后在每个回答你的网友那里给分,使总分值等于你给出的可用分就可以了。。。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表