USB论坛-百合电子工作室USB专题站

标题: 自绘AT89S52与DPIUSBD12器件连接原理图,按图焊接,联机失败!求助!! [打印本页]

作者: caihongxiaozu    时间: 2013-11-3 20:16
标题: 自绘AT89S52与DPIUSBD12器件连接原理图,按图焊接,联机失败!求助!!
如图所示
作者: baiheee    时间: 2013-11-4 10:12
D12的第1脚DATA0~DTAT7为什么都连到Vcc去了?您的画法不对,您这个图是直接把DATA0~DTAT7连到VCC的,没有通过上拉电阻再连到VCC!
作者: caihongxiaozu    时间: 2013-11-4 11:38
本帖最后由 caihongxiaozu 于 2013-11-4 13:13 编辑

可能是我原理图的画法不对,实际是:公共端接VCC,89S52的P0.0~P0.7通过排阻与D12的DATA0~DATA7相连的。排阻的公共引脚该怎么连呢?那不通过排阻,直接将 P0.0~P0.7 与 DATA0~DATA7相连可以吗?
作者: baiheee    时间: 2013-11-4 16:17
89S52的P0.0~P0.7与D12的DATA0~DATA7直接相连的,然后这八个节点再通过排阻连接到VCC
作者: caihongxiaozu    时间: 2013-11-4 20:52
没错,我板子上实际是这样做的,那真郁闷了,其他问题在哪呢?
作者: baiheee    时间: 2013-11-5 12:03
从图上看真不知道哪里有问题,如果非要说的话,D12的27脚,应该再接一个4.7uf以上电容到地,这个电容是为内部3.3V电压滤波用的。另外,板子焊好后,应该仔细测试各个点的电压是否正常。

另外还不知道您是怎么判断板子不能工作的,是否有与此套电路配套的已经验证没有问题的程序呢?
作者: caihongxiaozu    时间: 2013-11-6 14:21
AT89S52烧录程序成功,GL_N端的LED灯也有信号闪烁,可是却提示“无法识别的设备”,然后电脑USB接口就没电了,需要重新启动电脑,USB端才正常,这是怎么回事呢?
作者: baiheee    时间: 2013-11-6 19:59
caihongxiaozu 发表于 2013-11-6 14:21
AT89S52烧录程序成功,GL_N端的LED灯也有信号闪烁,可是却提示“无法识别的设备”,然后电脑USB接口就没电了 ...

出现“无法识别的设备”提示,证明D12与PC的USB端口连接电路应该是正常的,不过USB端口变得不正常,而且要重启电脑后才恢复,这个现象确实很奇怪。

不知道您烧录的是什么样程序,实现的USB是哪个类别?很明显,单片机没有正确驱动D12。量一下D12与单片机所有连接是否正常。另外,还有个通过单片机程序可以判断单片机与D12连接是否正常的方法,如下:


如何快速判断CPU与D12的硬件连接是否正确的方法:
1.使用模式设置命令(0xf3)去改变13脚的输出频率,如果可以改变,证明单片机向D12发送命令正确。
2.使用读取ID命令(0xfd)去读,读回两个字节的内容,第一个字节应为0x12,第二个字节为0x10。如果正确,则表明D12向单片机发送数据没有问题。
以上两项都满足了的话,D12的硬件旧应该没有问题了。

作者: caihongxiaozu    时间: 2013-11-6 20:07
本帖最后由 caihongxiaozu 于 2013-11-6 20:13 编辑

我烧录的是《圈圈玩USB》的自定义HID设备的源代码
我把这个烧录好的芯片拿到圈圈的那个实验板,就可以正常工作的啊!!
作者: baiheee    时间: 2013-11-7 20:01
之前一直没有注意到,D12的28应该有问题,应该要和单片机的IO相连
作者: caihongxiaozu    时间: 2013-11-7 20:29
嗯,图上是这样画的,但实际板子上,我将D12的28脚,即A0连到了89s52的T1端(P3.5),依然是上述状况。
作者: baiheee    时间: 2013-11-8 10:15
caihongxiaozu 发表于 2013-11-7 20:29
嗯,图上是这样画的,但实际板子上,我将D12的28脚,即A0连到了89s52的T1端(P3.5),依然是上述状况。

我看看您的程序中关于89S52 IO口配置部分代码,我看看是否与电路图一致
作者: caihongxiaozu    时间: 2013-11-8 11:35
//PDIUSBD12芯片连接引脚
#define D12_DATA                  P0
#define D12_A0                    P3_5
#define D12_WR                    P3_6
#define D12_RD                    P3_7
#define D12_INT                   P3_2
作者: baiheee    时间: 2013-11-8 13:56
caihongxiaozu 发表于 2013-11-8 11:35
//PDIUSBD12芯片连接引脚
#define D12_DATA                  P0
#define D12_A0                    P3_ ...

看了一下,硬件连接和程序是对应的。还有个想法,是不是USB的D+和D-弄反了呢?
作者: caihongxiaozu    时间: 2013-11-8 14:45
怎么可能??这低级错误!!!!
作者: caihongxiaozu    时间: 2013-11-8 14:49
如图所示
作者: caihongxiaozu    时间: 2013-11-8 14:59
如图所示
作者: baiheee    时间: 2013-11-8 15:40
caihongxiaozu 发表于 2013-11-8 14:45
怎么可能??这低级错误!!!!

板子上的插座呢,仔细对过没。如果硬件电路连线都确认无误,万用表也测试过每条连线,那最后就只有换D12试试
作者: caihongxiaozu    时间: 2013-11-8 20:39

作者: caihongxiaozu    时间: 2013-11-8 21:22
我刚才注意,USB开发板上,89S52由一个单独的22M晶振提供晶振频率,我用Keil uVision2打开了源文件,发现设置里,也是22M晶振,而我的自制板子使用的是6M晶振,而且还是从D12的CLKOUT引出来接到89S52上的,也就是说,源文件设置的晶振频率和实际用到的晶振频率不同,是不是这个原因呢?我刚才把源文件的晶振频率设置为6M了,正准备往芯片烧录呢,可是在线烧录器坏了,真悲催!!版主,您觉得是不是这个原因呢?
作者: baiheee    时间: 2013-11-8 21:27
Keil uVision2里设置的晶振频率只是用来软件仿真时有用,在实际的板子上跑时没有什么影响的。不过6M的晶振和22M的差别还是大,程序里有些地方是有时序要求的,建议要换成22M的晶振
作者: caihongxiaozu    时间: 2013-11-8 21:40
您的意思是说,原因不是这个?
作者: baiheee    时间: 2013-11-8 21:53
caihongxiaozu 发表于 2013-11-8 21:40
您的意思是说,原因不是这个?

与Keil里的晶振频率设置没有关系,但是板子上使用的6M晶振也许不行,要改为22M的,因为您所使用的程序是基于22M晶振的
作者: caihongxiaozu    时间: 2013-11-9 19:41
报告!!接了22M晶振,还是不行!!!!
作者: baiheee    时间: 2013-11-9 22:37
caihongxiaozu 发表于 2013-11-9 19:41
报告!!接了22M晶振,还是不行!!!! ...

D12换过没有?
作者: caihongxiaozu    时间: 2013-11-10 01:26
本帖最后由 caihongxiaozu 于 2013-11-10 01:36 编辑

经过几小时奋战,重新做了个板子,哈哈,可以识别硬件了,GL_N 端的LED灯常亮了,但过了3分钟吧,灯灭了,重新拔插USB,好像板子没有任何反应了,请问这是哪出问题了那?
我把下面的滤波电路给省了,直接USB的 5V接的 D12的 VDD端,就这样 正常了3分钟,再次拔插,没了反应,求解!!!
还有,Vout3.3端,我用的是0.1uP的电容接地的。
作者: baiheee    时间: 2013-11-10 09:30
caihongxiaozu 发表于 2013-11-10 01:26
经过几小时奋战,重新做了个板子,哈哈,可以识别硬件了,GL_N 端的LED灯常亮了,但过了3分钟吧,灯灭了,重 ...

之前在旺旺上我已经给您说了,您的图上将VCC和VDD直接相连了,所以可以不用再区别VCC和VDD了,都直接接5V就可以了,但是滤波电容最好还是不要省的,有极性的电容在焊接时要注意极性。至于过3分钟灯又灭了,可以用bushound抓一下数据,看过3分钟后主机向设备发了什么请求没有
作者: caihongxiaozu    时间: 2013-11-10 09:58
我又换了一个D12,把滤波电路接上了,但却提示无法识别硬件,GL_N的LED也不亮。头大了
作者: caihongxiaozu    时间: 2013-11-10 10:01
尼玛!!!快疯了
作者: baiheee    时间: 2013-11-11 10:13
你可能是自己手工制作的电路板吧,我以前也自己做过,做好后要仔细量所有网络连接结点是否正常,不要偷懒
作者: caihongxiaozu    时间: 2013-11-12 08:41
全部导通,准备上串口,测试过程!!!
作者: baiheee    时间: 2013-11-12 09:28
caihongxiaozu 发表于 2013-11-12 08:41
全部导通,准备上串口,测试过程!!!

恭喜!最后是哪里的问题呢?
作者: caihongxiaozu    时间: 2013-11-14 11:16
问题还没解决,线路全部导通,刚买来max3232芯片,想用串口测试下错误的过程,看看问题出哪
作者: baiheee    时间: 2013-11-14 11:53
caihongxiaozu 发表于 2013-11-14 11:16
问题还没解决,线路全部导通,刚买来max3232芯片,想用串口测试下错误的过程,看看问题出哪

还可以配合BUSHOUND抓一下数据包,不过需要对USB枚举过程以及各种USB描述符比较了解才行
作者: caihongxiaozu    时间: 2013-11-15 08:46
请问CH372芯片性价比如何,是不是比 PDIUSBD12简单呢?
作者: caihongxiaozu    时间: 2013-11-15 16:03
中午测试了,结果那个板子自己又好了,硬件能认了,但是,用串口测试输出的是乱码,我给AT89S52装载的是《圈圈玩USB》的驱动源码,未修改,然后我再用圈圈配套的USB开发板,用同样的串口调试助手,却得到了正确的调试过程。
作者: baiheee    时间: 2013-11-15 17:30
caihongxiaozu 发表于 2013-11-15 08:46
请问CH372芯片性价比如何,是不是比 PDIUSBD12简单呢?

怎么,打算换方案了?CH375比PDIUSBD12稍微便宜一点,也便宜不了多少,说实话,做项目最好用带USB控制器的单片机,这样能省不少成本。用PDIUSBD12来学习USB开发倒不错,因为网上关于这款芯片的例子多,资料也多。
作者: baiheee    时间: 2013-11-15 17:32
caihongxiaozu 发表于 2013-11-15 16:03
中午测试了,结果那个板子自己又好了,硬件能认了,但是,用串口测试输出的是乱码,我给AT89S52装载的是《圈 ...

看看晶振是否与圈圈的一致,另外查看一下232电平转换芯片外围电路里的几个电容,如果容量太大的话,串口通信速率就不能太快。还有,电脑上的串口调试软件对串口设置是否正确:波特率,校验位,停止位等
作者: caihongxiaozu    时间: 2013-11-16 10:51
PDIUSBD12芯片我是在淘宝买的,单价3元/块,我感觉不是电路的问题,也许和自己的实验板有关,因为有时候板子是可以认USB成功的,可有时却无法找到硬件或其他莫名其妙的错误,也许直接上PCB板会好些。
作者: caihongxiaozu    时间: 2013-11-16 10:55
请您推荐几款价格便宜的USB单片机,最好能方便找到实例的,谢谢诶
作者: caihongxiaozu    时间: 2013-11-16 16:39
本帖最后由 caihongxiaozu 于 2013-11-16 16:44 编辑

刚才获得了串口调试数据如下

圈圈原装开发板:
********************************************************************
******       《圈圈教你玩USB》之 用户自定义的USB HID设备      ******
******                      AT89S52 CPU                       ******
******                  建立日期:Nov 16 2008                 ******
******                   建立时间:15:59:54                   ******
******                    作者:电脑圈圈                      ******
******                    欢迎访问作者的                      ******
******           USB专区:http://group.ednchina.com/93/       ******
******      BLOG1:http://www.ednchina.com/blog/computer00    ******
******                BLOG2:http://computer00.21ic.org       ******
******          打开上位机应用软件,然后按K1-K8分别进行测试   ******
********************************************************************
Your D12 chip's ID is: 0x1012. ID is correct! Congratulations!
断开USB连接。
连接USB。
USB总线复位。
USB总线挂起。
USB总线挂起。
USB总线复位。
USB总线挂起。
USB总线挂起。
USB总线复位。
USB端点0输出中断。
读端点0缓冲区8字节。
0x80 0x06 0x00 0x01 0x00 0x00 0x40 0x00
USB标准输入请求:获取描述符——设备描述符。
写端点0缓冲区16字节。
0x12 0x01 0x10 0x01 0x00 0x00 0x00 0x10 0x88 0x88 0x06 0x00 0x00 0x01 0x01 0x02
USB端点0输入中断。
写端点0缓冲区2字节。
0x03 0x01
USB总线复位。
USB端点0输出中断。
读端点0缓冲区8字节。
0x00 0x05 0x01 0x00 0x00 0x00 0x00 0x00
USB标准输出请求:设置地址。地址为:0x01
写端点0缓冲区0字节。
USB端点0输入中断。
USB端点0输出中断。
读端点0缓冲区8字节。
0x80 0x06 0x00 0x01 0x00 0x00 0x12 0x00
USB标准输入请求:获取描述符——设备描述符。
写端点0缓冲区16字节。
0x12 0x01 0x10 0x01 0x00 0x00 0x00 0x10 0x88 0x88 0x06 0x00 0x00 0x01 0x01 0x02
USB端点0输入中断。
写端点0缓冲区2字节。
0x03 0x01
USB端点0输入中断。
USB端点0输出中断。
读端点0缓冲区8字节。
0x80 0x06 0x00 0x02 0x00 0x00 0xFF 0x00
USB标准输入请求:获取描述符——配置描述符。
写端点0缓冲区16字节。
0x09 0x02 0x29 0x00 0x01 0x01 0x00 0x80 0x32 0x09 0x04 0x00 0x00 0x02 0x03 0x00
USB端点0输入中断。
写端点0缓冲区16字节。
0x00 0x00 0x09 0x21 0x10 0x01 0x21 0x01 0x22 0x1B 0x00 0x07 0x05 0x81 0x03 0x10
USB端点0输入中断。
写端点0缓冲区9字节。
0x00 0x0A 0x07 0x05 0x01 0x03 0x10 0x00 0x0A
USB端点0输入中断。
USB端点0输出中断。
读端点0缓冲区8字节。
0x80 0x06 0x03 0x03 0x09 0x04 0xFF 0x00
USB标准输入请求:获取描述符——字符串描述符(产品序列号)。
写端点0缓冲区16字节。
0x16 0x03 0x32 0x00 0x30 0x00 0x30 0x00 0x38 0x00 0x2D 0x00 0x30 0x00 0x37 0x00
USB端点0输入中断。
写端点0缓冲区6字节。
0x2D 0x00 0x31 0x00 0x39 0x00
USB端点0输入中断。
USB端点0输出中断。
读端点0缓冲区8字节。
0x80 0x06 0x00 0x03 0x00 0x00 0xFF 0x00
USB标准输入请求:获取描述符——字符串描述符(语言ID)。
写端点0缓冲区4字节。
0x04 0x03 0x09 0x04
USB端点0输入中断。
USB端点0输出中断。
读端点0缓冲区8字节。
0x80 0x06 0x02 0x03 0x09 0x04 0xFF 0x00
USB标准输入请求:获取描述符——字符串描述符(产品描述)。
写端点0缓冲区16字节。
0x36 0x03 0x0A 0x30 0x08 0x57 0x08 0x57 0x59 0x65 0x60 0x4F 0xA9 0x73 0x55 0x00
USB端点0输入中断。
写端点0缓冲区16字节。
0x53 0x00 0x42 0x00 0x0B 0x30 0x4B 0x4E 0x28 0x75 0x37 0x62 0xEA 0x81 0x9A 0x5B
USB端点0输入中断。
写端点0缓冲区16字节。
0x49 0x4E 0x84 0x76 0x55 0x00 0x53 0x00 0x42 0x00 0x20 0x00 0x48 0x00 0x49 0x00
USB端点0输入中断。
写端点0缓冲区6字节。
0x44 0x00 0xBE 0x8B 0x07 0x59
USB端点0输入中断。
USB端点0输出中断。
读端点0缓冲区8字节。
0x80 0x06 0x00 0x01 0x00 0x00 0x12 0x00
USB标准输入请求:获取描述符——设备描述符。
写端点0缓冲区16字节。
0x12 0x01 0x10 0x01 0x00 0x00 0x00 0x10 0x88 0x88 0x06 0x00 0x00 0x01 0x01 0x02
USB端点0输入中断。
写端点0缓冲区2字节。
0x03 0x01
USB端点0输入中断。
USB端点0输出中断。
读端点0缓冲区8字节。
0x80 0x06 0x00 0x02 0x00 0x00 0x09 0x00
USB标准输入请求:获取描述符——配置描述符。
写端点0缓冲区9字节。
0x09 0x02 0x29 0x00 0x01 0x01 0x00 0x80 0x32
USB端点0输入中断。
USB端点0输出中断。
读端点0缓冲区8字节。
0x80 0x06 0x00 0x02 0x00 0x00 0x29 0x00
USB标准输入请求:获取描述符——配置描述符。
写端点0缓冲区16字节。
0x09 0x02 0x29 0x00 0x01 0x01 0x00 0x80 0x32 0x09 0x04 0x00 0x00 0x02 0x03 0x00
USB端点0输入中断。
写端点0缓冲区16字节。
0x00 0x00 0x09 0x21 0x10 0x01 0x21 0x01 0x22 0x1B 0x00 0x07 0x05 0x81 0x03 0x10
USB端点0输入中断。
写端点0缓冲区9字节。
0x00 0x0A 0x07 0x05 0x01 0x03 0x10 0x00 0x0A
USB端点0输入中断。
USB端点0输出中断。
读端点0缓冲区8字节。
0x00 0x09 0x01 0x00 0x00 0x00 0x00 0x00
USB标准输出请求:设置配置。
写端点0缓冲区0字节。
USB端点0输入中断。
USB端点0输出中断。
读端点0缓冲区8字节。
0x21 0x0A 0x00 0x00 0x00 0x00 0x00 0x00
USB类输出请求:设置空闲。
写端点0缓冲区0字节。
USB端点0输入中断。
USB端点0输出中断。
读端点0缓冲区8字节。
0x81 0x06 0x00 0x22 0x00 0x00 0x5B 0x00
USB标准输入请求:获取描述符——报告描述符。
写端点0缓冲区16字节。
0x05 0x01 0x09 0x00 0xA1 0x01 0x15 0x00 0x25 0xFF 0x19 0x01 0x29 0x08 0x95 0x08
USB端点0输入中断。
写端点0缓冲区11字节。
0x75 0x08 0x81 0x02 0x19 0x01 0x29 0x08 0x91 0x02 0xC0
USB端点0输入中断。
USB端点0输出中断。
读端点0缓冲区0字节。


作者: caihongxiaozu    时间: 2013-11-16 16:45
自制实验板串口获得数据如下:
?*******************************************************************
******       《圈圈教你玩USB》之 用户自定义的USB HID设备      ******
******                      AT89S52 CPU                       ******
******                  建立日期:Nov 16 2008                 ******
******                   建立时间:15:59:54                   ******
******                    作者:电脑圈圈                      ******
******                    欢迎访问作者的                      ******
******           USB专区:http://group.ednchina.com/93/       ******
******      BLOG1:http://www.ednchina.com/blog/computer00    ******
******                BLOG2:http://computer00.21ic.org       ******
******          打开上位机应用软件,然后按K1-K8分别进行测试   ******
********************************************************************
Your D12 chip's ID is: 0x1012. ID is correct! Congratulations!

断开USB连接。
连接USB。
USB总线复位。
USB总线挂起。
USB总线挂起。
USB总线复位。
USB总线挂起。
USB总线挂起。
USB总线复位。
USB端点0输出中断。
读端点0缓冲区8字节。
0x80 0x06 0x00 0x01 0x00 0x00 0x40 0x00
USB标准输入请求:获取描述符——设备描述符。
写端点0缓冲区16字节。
0x12 0x01 0x10 0x01 0x00 0x00 0x00 0x10 0x88 0x88 0x06 0x00 0x00 0x01 0x01 0x02
USB总线挂起。
USB总线复位。
USB端点0输出中断。
读端点0缓冲区8字节。
0x80 0x06 0x00 0x01 0x00 0x00 0x40 0x00
USB标准输入请求:获取描述符——设备描述符。
写端点0缓冲区16字节。
0x12 0x01 0x10 0x01 0x00 0x00 0x00 0x10 0x88 0x88 0x06 0x00 0x00 0x01 0x01 0x02
USB总线挂起。
USB总线挂起。
USB总线挂起。
USB总线挂起。
USB端点2输出中断。
USB端点2输出中断。
USB端点2输出中断。
USB端点2输出中断。
USB端点2输出中断。
USB总线挂起。


作者: caihongxiaozu    时间: 2013-11-16 16:46
请老师根据串口获得的数据给分析下哪里出了问题,谢谢诶
作者: baiheee    时间: 2013-11-16 21:03
caihongxiaozu 发表于 2013-11-16 10:55
请您推荐几款价格便宜的USB单片机,最好能方便找到实例的,谢谢诶

便宜的要台湾生产的,单片要带USB接口的那种,一般都非常便宜,但开发工具不便宜。

比如松翰的Sonix 8系列,单价才两块多,但开发工具要一千多。烧录器也要几百。
还有ET81P304,也是台湾的。
作者: baiheee    时间: 2013-11-16 21:08
caihongxiaozu 发表于 2013-11-16 16:45
自制实验板串口获得数据如下:
?*******************************************************************
...

枚举设备描述符时,最后还有两个字节还没有传给主机,应该固件程序的问题,要不就是芯片有问题。总线挂起后又有几个端点2输出中断,很是奇怪,设备都还没有枚举成功就有非零端点输出,这真是太奇怪了。

作者: caihongxiaozu    时间: 2013-11-16 23:10
本帖最后由 caihongxiaozu 于 2013-11-17 07:22 编辑

您说的固件程序,是指烧录到89S52的程序吧,我觉得应该没问题,程序是用圈圈源代码,而且,把烧录好的89S52替换到圈圈自带的开发板上,测试没有任何问题。从自制实验板几次没有任何改动而突然成功的情况来看,应该是D12芯片的问题,我在淘宝买的,才3元钱一片,难道芯片还能有假货嘛??
我之前用过合泰的HT82M99E芯片,是厂商烧录好的,价格不到3元,因为量不大,不好意思再联系商家了,这个,自主开发太受限制了。我也问过其他厂商,飞凌的芯片有一款才一元多点,但也是需要量才可供货,而且不能自主开发,真是太受限制了。所以自己选择了自己研究USB。
作者: baiheee    时间: 2013-11-17 12:19
caihongxiaozu 发表于 2013-11-16 23:10
您说的固件程序,是指烧录到89S52的程序吧,我觉得应该没问题,程序是用圈圈源代码,而且,把烧录好的89S52 ...

目前市场上的PDIUSBD12,厂商LOGO有四种,如下所示,前两种都是一家的,因为NXP是属于philips公司的,不知道为什么还有其它两种厂家的,前两种我都用过,都一样,不知道你用的是哪种。


作者: caihongxiaozu    时间: 2013-11-18 09:36
老师,我刚咨询了淘宝几个卖IC的,记录如下:

华强电子元件 (08:57:57):
这个原装进口的要7.3
翻新的3.3
翻新的我没有
caihongxiaozu (08:58:29):
翻新的3.3
华强电子元件 (08:59:21):


作者: caihongxiaozu    时间: 2013-11-21 13:31
谢谢百合老师的无私帮助!!真心感谢!




欢迎光临 USB论坛-百合电子工作室USB专题站 (http://usb.baiheee.com/usb_bbs/) Powered by Discuz! X2.5