usb鼠标制作调试记录

2010-07-26 20:07:00

制作调试过程
1,串口通信硬件设计。焊接了串口通信电路实验。由于我的usb转串口线是不能配max232的。而是要配一个反向器。于是自己焊接了74ls00。并且把圈圈电路板通过飞线改了下。至此,串口通信硬件完成。
2,串口通信软硬件调试。改了改之前的串口通信程序。并且下载测试。很顺利的通过串口通信测试。
3,做了一些51外围的led及按键的软硬件测试。很顺利的通过了。
4,D12的硬件焊接。东拼西凑的把电路板连接上了,买了TSSOP的D12,开始焊接引脚间距为0.65mm的贴片ic。运用拖拉方法,我成功地焊接了D12。接着从我家的废主板上插了几个电阻焊接了下。还在淘宝买了晶振和配晶振的贴片电容。其他的基本都是用其他板子通过杜邦线相连。能省略元件的就省略。
5,下载D12的测试程序。读D12的id。结果不成功。先检查硬件,原来漏焊了一个电阻。查了一下,这个电阻一定要焊接的。于是焊完电阻后,再次测试,ok。真是兴奋啊。
6,下载usbMouse程序调试。结果不成功,一会就挂起了。那么就开始一段一段调试吧。结果发现,单片机读出的数据和usb主机发送的数据不符。多了很多位。这就奇怪了。为什么会这样呢?
    a,难道数据延时,单片机读的太快了。那么我就延时后再读,可结果一样。与延时没关系。
    b,难道是usb延长线的延时,导致d12多接收了些0x00?于是通过修改程序,不去读前面的哪些个0x00,程序就可以继续运行一点。但是还是有问题,这是我人为的修改程序不读前7位数据,才能使usb和d12在正常通信,但是实际他们的通信是不正常的。print显示D12接收到usb主机的请求,也返回了枚举数据,但是USB主机并没收到,又挂起了。
    c,难道是D12的缓冲区发送接收数据有问题?保险起见,我不连D+和D-,我让单片机发数据到D12的缓冲区,并从缓冲区再读取数据到单片机。问题终于出现了。写入的数据和读出的数据不相符。并且很明显是一条P0.0位的数据线有问题。终于有眉目了。P0.0输出的数据总是为高。那么我先检查硬件原理及连线。硬件没问题。天呢?那么他为什么总是拉不低呢?
    d,用示波器看看此位与其他位的波形吧,终于看出,此位拉低时,电压为1.76v,再也低不了。这就是此位总是显示1的原因。但是为什么电压总是拉不下来,而其它位的电压能拉下来呢?是不是焊接的排阻没焊牢。但是查了下,外围硬件焊接及杜邦线连接都是好的。测了下不运行程序与运行程序时,他们各个引脚连接的电阻阻值。发现,一运行程序,则P0.0连接的电阻的阻值就比其他位要高。但是不运行程序时,阻值则一样。怎么会这样?
    e,突然有种感觉,c51芯片坏了,还好,我上次在淘宝买了2片,换了一片,大功告成。果然是c51芯片引脚有问题。
7,串口调试助手成功的显示了从usb主机发送过来的设备描述符请求。并且d12也有反映,向usb主机返回数据。但是usb主机没收到,挂起了。为什么呢?我怀疑是这根便宜的usb延长线的问题。那该怎么查啊!另外还有就是单片机把数据发给d12,d12再通过usb延长线给usb主机。那么也有可能是单片机数据没写入d12,导致设备没返回给usb主机数据。
8,调试单片机与d12之间的数据收发。根据d12缓冲区的数据格式,第一个字节为保留字,数据为0。第二个字节为数据长度。第三个字节为真正的数据。通过修改程序,多次调试,查看数据变化后,发现。一个字节为保留字,但是单片机不能向它写0x00,否则d12会自己填补第一个字节,并且把0x00作为第二个字节。难道规格书上描述错了。反正我这样改下程序,枚举过程就能读能写了。但是数据还是不稳定。有些位拉不高等问题。
9,接着再调试吧,没想到买的一个usb延长线断了。没办法,买根好点的吧,可能数据传输不稳定的现象就能解决。期待明天的usb线。
10,usb线到了。接着我把之前调试比较成功的hex文件重新烧进c51,结果发现很不稳定,一会好一会不好。尝试了好几次,决定data线不用杜邦线连接,还是把40pin排针插了,然后焊接40pin的ic座,还好上次多买了一个,现在派上用了。如何拆20pin排针?
11,网上查了下,20pin的直插排针,可以把塑料先插下,然后把排针一个个焊下。于是就用这个方法,花了点时间,终于搞定。但是孔都不焊锡堵上了。还要一个个把孔给搞出来吗?
12,尝试了下,好难搞啊,算了,40ic座就直接焊在top面。感谢圈圈板子设计的好,top和bottom都能焊接。顺利焊接完40ic座,接着把晶振和晶振电容也焊上了。查看完其他连接线。连到电脑,按下复位键后,呵呵呵~主机usb识别出了设备。此次调试宣告成功。
 
   很有成就感,不经一番彻骨寒 哪来梅花扑鼻香。
 
   调试总结:
    
   曾经有4个高级工程师和我说过,编编小程序,很快就可以查出问题。这次我用上了自己编写的验证测试程序,发现在调试排查过程中真的很管用,我有潜质去做警方的侦查员,呵呵。

   发现的重大问题就是d12芯片的写缓冲区的第一个字节不能写0,虽然规格书及圈圈的程序上都是写0。而我写0或者说直接烧圈圈的hex文件就是有问题了。 

 

转载于:https://www.cnblogs.com/AppleCai/p/10777881.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
驱动器 D 中的卷没有标签。 卷的序列号是 B837-9C57 D:\download\USB助手 源码 2008-12-30 08:44 . 2008-12-30 08:44 .. 2002-10-07 15:21 1,536 ChildFrm.cpp 2002-10-07 15:21 1,397 ChildFrm.h 2002-10-07 15:21 17,103 DevicesDlg.cpp 2002-10-07 15:21 2,330 DevicesDlg.h 2008-12-30 08:44 18 dir list.bat 2008-12-30 08:44 0 dir.txt 2002-10-07 15:21 5,469 Exporter.cpp 2002-10-07 15:21 2,098 Exporter.h 2002-10-07 15:21 4,947 ExportLogDlg.cpp 2002-10-07 15:21 1,712 ExportLogDlg.h 2002-10-07 15:21 6,135 MainFrm.cpp 2002-10-07 15:21 1,894 MainFrm.h 2002-10-07 15:21 2,954 MyMemFile.cpp 2002-10-07 15:21 1,682 MyMemFile.h 2002-10-07 15:21 1,582 ProgressStatusBar.cpp 2002-10-07 15:21 982 ProgressStatusBar.h 2002-10-07 15:21 4,754 ReadMe.txt 2002-10-07 15:21 2,271 ReadmeDlg.cpp 2002-10-07 15:21 1,264 ReadmeDlg.h 2008-12-30 08:41 Res 2002-10-07 15:21 4,735 Resource.h 2002-10-07 15:21 14,777 SetupDIMgr.cpp 2002-10-07 15:21 1,943 SetupDIMgr.h 2002-10-07 15:21 11,745 SnoopyPro.cpp 2002-10-07 15:21 7,277 SnoopyPro.dsp 2002-10-07 15:21 2,704 SnoopyPro.h 2002-10-07 15:21 23,501 SnoopyPro.rc 2002-10-07 15:21 704 SnoopyPro.reg 2008-12-11 19:15 16,773 SnoopyPro.vcproj 2002-10-07 15:21 211 StdAfx.cpp 2002-10-07 15:21 1,212 StdAfx.h 2002-10-07 15:21 57,986 URB.cpp 2002-10-07 15:21 9,642 URB.h 2002-10-07 15:21 3,613 URBLogListBox.cpp 2002-10-07 15:21 1,454 URBLogListBox.h 2002-10-07 15:21 13,776 URBLogListCtrl.cpp 2002-10-07 15:21 3,209 URBLogListCtrl.h 2002-10-07 15:21 3,192 URLStatic.cpp 2002-10-07 15:21 1,285 URLStatic.h 2002-10-07 15:21 11,998 USBLogDoc.cpp 2002-10-07 15:21 2,929 USBLogDoc.h 2002-10-07 15:21 28,721 USBLogView.cpp 2002-10-07 15:21 3,470 USBLogView.h 42 个文件 286,985 字节 3 个目录 12,592,160,768 可用字节

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值