原创 调试日志: USB在LPC2214上不能枚举问题

2009-4-1 11:23 2832 7 8 分类: MCU/ 嵌入式
调试日志: USB在LPC2214上不能枚举问题
 最近在做移植一个以前做的USB固件程序到LPC2214上,碰到一个奇怪的问题:在得到建立描述符令牌包时,已经输出了描述符,但HOST还是发出三次,然后就进入挂起模式.
 事情是这样的,帮朋友在LPC2214做一个USB设备,电路板是由他提供. 我把以前做的USB程序移植到板子上,因为是挂在LPC2214的BANK2上
跟以前的主控CPU不一样, 我仔细检查了BCFG2的值,先把它的WTS1和WTS2设置为最大值,然后把地址值和其它的IO PORT, 中断做了相应的修改.
插上USB,运行仿真程序. HOST能发现USB的插入,但不能正确识别.这很正常,不可能一下就移植成功的.
 在中断函数中的下断点,能发现有中断进入,再读一下相关的中断状态REGISTER,可以看到不是0的值,可以知道外部总线的读是正确的.在SETUP包的下断点,看了一下HOST的发过来的数据,很熟悉的0X80, 0X06的数据出现了,可以知道建立令牌包是收到了.再看一下发过去的数据包, 这是我担心的问题,难道是写操作出问题了吗?
 我们知道, HOST在检测了总线上有USB插入时, 会以0设备地址对设备访问,首先就是得到设备描述符, 如果不成功的话,会以5秒的间隔重试三次,还不成功的话,会报告设备有问题.
 我想如何来测试写操作了,因为没有SCRATCH寄存器,我找了一个端点FIFO寄存器, 定义了一个常量数组,写上8个数据,然后再读取数据到一个缓冲器,你猜怎么着,数据居然是正确的.又改了一下这个常量数组,结果还是和写进去的一样,我知道:写操作是没问题了.
 是报告的数据不对吗? 根据以往的经验, 看了一下, 设备描述符也有PACKET的标志,还有可能是大小端的数据问题.把串口打印加上,然后把上面的测试程序加进来,在写设备描述符后再加入读出来打印到串口输出, 奇怪了,数据完全OK,这是什么样的问题.
 我敢肯定,HOST是没收到数据,或是收到的数据不正确.但收到的0X86建立包是正确的呀,所有不是总线的问题.但没有USB分析仪,也有没逻辑分析仪,BUSHOND这样的软件在这时候是不起作用的.示波器这时是抓不到数据的.但我想看一下数据的完整性, 因为USB接口有一大堆电阻电容, 找到D+,D-二根差分总线,突然发现有一个471的电阻,怎么有这个电阻呢,不是18~33R的匹配电阻吗?我马上仔细检测了一下电路,发现D-上是一个18R的电阻,但D+上确实是一个471R的电阻,估计是这个电阻的原因了.
 换成18R的电阻,HOST能马上找到设备,提示安装设备的驱动程序了, 测试了一下读写速度, 200K/S的样子,还算可以吧.
 总结一下:这个471的电阻浪费了我大半天的时间, 但设备可以接收到0X86的令牌包, 发送命令出去, HOST却收不到. 在这里分析有差错. 如果有分析仪, 可能不会花这么长的时间. 在这里写出来, 希望有朋友看到作为一个借鉴.
PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

tengjingshu_112148725 2009-4-1 17:40

谢谢博主介绍经验
相关推荐阅读
用户159763 2011-06-04 20:08
还是BUS HOUND 4.0 好用
有几头没有写USB程序了,以前上传了BUS HOUND程序, 现在由于新的项目中用到USB部分,试了一下5.0和6.0版本,多次出现BSD, 印象中4.0不会有这么多麻烦, 网上一般很难找到4.0版本...
用户159763 2011-06-04 20:01
我回来了
我回来了,有二年没有写程序了,发觉大脑慢了很多。是不是真是老了? 好久才把博客的密码试出来才能登录。 又要进入USB的项目开发中,真希望很顺利进行。没有太多的时间在USB这部分。      ...
用户159763 2010-06-01 19:41
基于LM2576的高可靠MCU电源设计
基于LM2576的高可靠MCU电源设计( 应用行业:智能工控 阅读次数:744 ) 【字体:大 中 小】     嵌入式控制系统的MCU一般都需要一个稳定的工作电压才能可靠工作。而设计者多习惯采用线性...
用户159763 2009-06-03 22:17
Protel 99 SE 超强的快捷键大全
整理好 Protel 99 SE 超强的快捷键大全 作者:pcbwang 栏目:PCB技术   整理好 Protel 99 SE 超强的快捷键大全有空的支持一下,把贴顶起来.没空的,也要记得收藏哦! ...
用户159763 2009-06-03 22:10
STM32入门工具篇
STM32入门工具篇<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />介绍一下STM3...
用户159763 2009-04-08 00:13
KEIL C51中的vsprintf不能正确输出
https://static.assets-stash.eet-china.com/album/old-resources/2009/4/7/1adff0a1-c24b-43e9-8883-ffd3a...
EE直播间
更多
我要评论
1
7
关闭 站长推荐上一条 /3 下一条