3GO模拟飞行网|3GO Cyber Air Force

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: hbk0401

我的DIY——USB 光电5轴游戏控制器-写在圣诞节(已上图)

[复制链接]
发表于 2011-1-17 20:16:42 | 显示全部楼层
我查查你本子用的什么驱动IC。还有1372的本子型号最好也说一下。另外台式机用的什么主板?
最好多找几部机器试试,这帖里只有两部台式机和两部笔记本,样本空间太小啊。
发表于 2011-1-17 22:32:57 | 显示全部楼层
本子是HP 6530s  --》"无法识别的设备。。"   
加USB HUB可识别 HUB芯片"ALCOR"某个牛粪封装4端口
台式机1:主板 ?? 北桥VIA KT800Pro 南桥VIA VT8237  ---> 后面板可识别 无前面板
台式机2:主板 技嘉MA-78GM-US2H 北桥AMD 780   南桥SB700  --->  前后面板均可识别,但识别成功后三四秒后消失,变成前面带黄色叹号,提示“由于设备有问题,WINDOWS已经停止了它”
。。。。
发表于 2011-1-18 04:00:46 | 显示全部楼层
无疑是物理层的毛病,不用示波器,除了换元件实在很难想出什么好办法。

目前的猜测是两方面:信号时序和信号质量。
信号时序和晶体频率有关,USB的异步信号同步原理不用赘述,但对几百K的通讯速率,十几M的晶体如果有点误差似乎影响不大;
信号质量质量就是上面已经说过的电平幅度和波形畸变方面的问题,和电阻网络的阻抗关系很大。

我能想到的实验方法:
一个是上面说的加大电阻,主要针对LZ的问题。另一个是换IC,如果有M16L的片子,可以考虑用3.3V的1117或稳压二极管给MCU供电,保留D+、D-上串联的33R电阻。如果有PIC、SiliconLabs或Cypress的开发工具,直接抛弃AVR,换个真正支持硬件USB的片子能省去不少麻烦。低速设备我个人推荐Cypress的CY7C63813,全速的PIC18F2550,高速的CY7C68013。我个人用的是ARM,干别的活用的。
发表于 2011-1-18 04:17:22 | 显示全部楼层
对于1372的系统错误提示我想知道是设备一连接就有,还是进行了什么操作才出现的。如果是后者,复现步骤是否可以完整多次重复?如果可以,则有种测试方法可以尝试。

首先把所有模拟轴的值都锁死,比如都输出0x0000。这样一来每帧HID report(DATA IN)都可以通过按一个特定的按钮来精确重复。

然后在正常的电脑和不正常的电脑上分别执行一次下列步骤,确保每步都相同:

用BusHound记录设备插入后的整个枚举过程,按动一个特定的按钮产生一次数据report以便记录。

把抓到的数据保存为txt文件。如果固件的设计是仅在输入有变化时才触发USB通讯,则两份txt大小应该差不多。如果固件是定时触发USB输出,则很容易多出很多输入为空的传输。这也无所谓。

用UltraCompare或WingMerg对两个txt文件进行对比,重点对照枚举段的记录,Report段的只需要对比按下按键后的那几个包。看看差别在哪里。这样可以分析系统警告的原因。

BusHound6.0.1.rar (689.41 KB, 下载次数: 90)
 楼主| 发表于 2011-1-20 23:56:05 | 显示全部楼层
回复 49# RCtech


    报告版主,有新进展了。
    我原来测试时在单位研华工控机上插入不能识别,晚上换了两只100的电阻,在工控机上顺利识别了。
    不过,拿回来本子还是不认,有点失望。
发表于 2011-1-21 00:15:14 | 显示全部楼层
要么通过串并联方式再精调一下电阻,要么上淘宝买几颗比较准的。顺便换个晶体试试。
发表于 2011-1-21 13:22:12 | 显示全部楼层
这部分学数通的弟兄一定不陌生,看见协议头就大
 楼主| 发表于 2011-1-24 21:43:22 | 显示全部楼层
数通是什么?基础课么
 楼主| 发表于 2011-1-24 22:57:55 | 显示全部楼层

好吧!我来总结一下USB信号质量的研究情况

本帖最后由 hbk0401 于 2011-1-24 23:06 编辑

回复 51# RCtech


不能忍了,我找了两只502的3296电位器并联到R1、R2进行了一次从100到0的连续测试。
使用FLUKE189和TEK四通道彩色示波器连续观察。控制器直接插到TEK示波器USB口。
开始为100,可正常识别。信号有很多尖峰;放大了,主机信号上限3V,但设备回复信号达5V(就是看到的尖峰)。ASUS笔记本不能识别。
然后减到82,可正常识别,主机信号上限3V,但设备回复信号达5V。ASUS笔记本仍不能识别。
再减到50,可正常识别,主机信号上限3V,但设备回复信号达5V(D+信号末端有小尖峰)。ASUS笔记本不能识别。
最后减到30,TEK不能识别,主机信号上限3V,但设备回复信号达5V(D+信号质量变差,且末端尖峰较明显,下降缓慢)。
再减小,则根本不能识别,只有主机信号不断重复,上限3V,设备没有回复信号,说明设备没有识别信号。

也就是说从0到100变化中,笔记本始终不能识别。而主机信号和设备信号最明显的差别就是电平不同。

虽说USB规范中没有说输入高电平的上限不能超过3.3V,但我觉得本本是不是用的LVCMOS之类的低电平南桥,电压高了就不认了或保护了之类的。反正我没有在网上找到南桥的DATASHEET。
于是我找来了两只3.3V的稳压二极管焊到D-、D+上进行钳位,电阻还用100,拿回家直接上本本测试。
卧槽!  久围的“发现新硬件”终于出现了! 控制器在本本上顺利识别了!

不多说了,看图吧!四个信号依次为:D-、D+,电阻另一侧AVR端的D-、D+信号
002-100-1usbtotal.jpg 004-100-3usbmed.jpg
006-100-1.jpg 006ar100.jpg
007-devicestart0.jpg 008-devicestart.jpg
100,可正常识别。信号有很多尖峰;放大了主机信号上限3V,但设备回复信号达5V(就是看到的尖峰)。

009-r50 normal.jpg
50,可正常识别,主机信号上限3V,但设备回复信号达5V(D+信号末端有小尖峰)。

010-r30 2.jpg 011-r30 3.jpg
30,TEK不能识别,主机信号上限3V,但设备回复信号达5V(D+信号质量变差,且末端尖峰较明显,下降缓慢)。

012-r30unknow.jpg
10,则根本不能识别,只有主机信号不断重复,上限3V,设备没有回复信号,说明设备没有识别信号。

013-unknow1.jpg
014-devicenoresponse.jpg 015-hoststart.jpg

再减下去就是这样了!


016-3v3diode-all.jpg 017-3v3-diode-region.jpg
换上稳压管后,主机信号(输入)和设备信号(输出)电平都是3V左右,基本一样了。
018-3v3-101-detail.jpg 019-3v3-diode-zoomin.jpg
只有在总线空闲时,电平才会降到2.4V


DSC_8430.jpg
又多了两个二极管,太丑了!
发表于 2011-1-24 23:58:07 | 显示全部楼层
卧槽,我在想是不是有神马类似TVS的东西在里头,除了限幅之外还多管闲事报了错?不过无论如何,原因查出来了就好,还是物理层啊。
发表于 2011-1-25 00:00:30 | 显示全部楼层
话说看NRZI波形真蛋疼啊。从来没想过要去细看一眼这个东东,服了那个第一个拿AVR干这个的家伙,真有工夫把底层那几章全看一遍。
 楼主| 发表于 2011-1-25 23:18:05 | 显示全部楼层
本帖最后由 hbk0401 于 2011-1-25 23:22 编辑

回复 56# RCtech


    当初在动手要造的时候,如果先来坛子里请教一下各位高人就不用走这些个弯路了。搞得自己学“第一个拿AVR干这个的家伙”跟着把硬件层硬肯了一遍。
满眼都是泪啊!

PS:
CY7C63813多好啊,ARM有点浪费了。
如果没搞懂NRZI码,看我这代码估计很困难了!
发表于 2011-1-25 23:23:18 | 显示全部楼层
回复 57# hbk0401


    得弄个CY3217给它编程,然后PC上装PSoC Designer。我这里的最新版本是5.1,不知道后来又更新没,有段时间没用PSoC了。
发表于 2011-2-13 12:46:53 | 显示全部楼层
等待正式版中
发表于 2011-2-13 23:37:14 | 显示全部楼层
厉害啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|3GO模拟飞行网|3GO Cyber Air Force ( 沪ICP备08002287号|沪ICP备14050587号 )

GMT+8, 2024-5-2 13:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表