搜索
bottom↓
回复: 32

PL2303自制“全功能”串口——DB9各个端子,如何进行功能检测? 欢迎高手指教!

[复制链接]

出0入0汤圆

发表于 2008-3-10 22:19:06 | 显示全部楼层 |阅读模式
常常需要通过USB接口,转换为串口的应用场合。

    我使用PL2303(廉价)芯片DIY(或者成品)的转接线,做USB转换串口的单元电路。
    其三线制方式(Rxd/Txd/Gnd),已经在 Easy51串口编程器、高压并口编程器(萧天版)和其他的多种场合,长期可靠地应用。
    最近,想利用该PL2303芯片,自制一个“全功能”的串口转接线——即要求DB9(除了“地”以外的)8个端子,全部都能“功能正常”。

    在PL2303转换“出来”的TTL电平的基础上,使用廉价的MAX232电平转换芯片,只能解决4个输入和3个输出功能端子的电平转换;
    余下的一个“RI”输入功能端子,则准备使用三极管电平转换方式——否则,据本地询价,单片的MAX232系列电平转换芯片,要价38元......差不多要价高一个数量级!

    目前,临时“搭板”连接电路之后(“RI”暂时未加入)的静态电平测试,基本上正常;
    使用几种“串口调试软件”,输出的功能、可以“反映”出来.......

    但是DB9各个端子,如何进行“全功能”检测?
    一直没有找到合适的“检测软件”。

    手头唯一“使用”串口功能端子、多一些的“设备”,就是 Ponyprog 串口下载线(“小马”下载线)了。

    今天白天,使用 PonyProg2000(中文版)软件和自制的简易 Ponyprog 串口下载线,进行了初步的试验......
    1、PonyProg2000(中文版)软件和自制的简易 Ponyprog 串口下载线配合,在电脑的COM1串口,对M8芯片、接近8K的目标吗文件,进行ISP下载——设置串口在 SI Prog API方式、和 SI Prog I/O方式——都能“工作正常”;
    2、使用 PL2303+MAX232*2,在电脑的 设备管理器上面反映,是COM4——配合 PonyProg2000(中文版)软件,只能选择COM4在 SI Prog API方式之下运行——结果是:
      可以运行。
      但是其运行时间,却远远长于使用“正规串口COM1”的运行时间的十倍——差不多是接近20倍!而且有“误码”。
      想不出,为什么会“慢”接近20倍?!

    3、晚上,在笔记本电脑上面,PL2303+MAX232*2,在电脑的 设备管理器上面反映,是COM6——可能是笔记本电脑存在红外线接口的关系—— PonyProg2000软件,无法“使用”COM6!!!
    4、在电脑的 设备管理器里,“强制”把 PL2303的y模拟串口,设置成为COM4之后,几个串口调试软件,可以“认识”、并且可以“控制”其“反应”;
      但是,PonyProg2000软件不能“正常运行”——哪怕是“慢20倍”亦罢!——但是,即使是下载了今年一月份最新的PonyProg2000软件版本......还是不行。

    在下对于电脑的串口,知之甚少!
    仅仅的稍会“使用”,亦是皮毛!!

    渴求有 高手,不吝指教——应该使用什么方法和软件来检测?应该注意什么样的关键所在?
    先谢谢了。

出0入0汤圆

 楼主| 发表于 2008-3-10 22:21:17 | 显示全部楼层
不知道,这样子的帖子,应该放在哪个栏目才比较适合?
建议  阿莫,能否开辟一个“电脑通讯”栏目。

出0入0汤圆

发表于 2008-3-11 13:00:44 | 显示全部楼层
我想你可以把你的usb串口和一个标准串口连起来,你要查一下资料,不是1对1的。然后找一个可以显示和发送控制信号的串口测试软件(肯定有的,我以前见过,但想不起来了)就可以测试了。
google一下吧。

出0入0汤圆

 楼主| 发表于 2008-3-11 18:16:15 | 显示全部楼层
谢谢 【2楼】 dack 。
三线制连接,已经通过......没有问题——按串口调试软件列表的最高波特率256000进行测试,无误码。

出0入0汤圆

 楼主| 发表于 2008-3-12 20:55:27 | 显示全部楼层
今天再次使用以下条件,重新测试【PL2303+MAX232*2——“全功能串口】在PonyProg2000软件之下使用的情况:

    1、在笔记本电脑上面,PL2303+MAX232*2;
    2、在“设备管理器”里,再次“强制”把 PL2303的y模拟串口,设置成为COM4;
    3、下载安装了今年1月份最新版的PonyProg2000软件;
    4、设置串口在 SI Prog API方式——COM4;
    5、烧录一片使用于 usbasp固件的 M8芯片——差不多8K程序......

测试结果:
    差不多进行了一个多小时的运行时间——超长时间,超慢速度——但是,烧录校验成功!

结论:
    1、PL2303组成的、RS-232电平的、“全功能”的USB-UART转换电路,在【小马串口下载线】上面是“可用”的——仅仅就下载功能而言!
    2、但是,如此下载的超慢速度,是没有实用价值的!!
    3、不知道,为什么会发生“如此”超慢速度的“原因所在”!!!

    ——敬请高手指教!!!!!
1
1
1
1

出0入0汤圆

发表于 2008-3-12 21:00:01 | 显示全部楼层
“单片的MAX232系列电平转换芯片,要价38元......”==》》这不可能的,哪会这么贵!
MAX3243我印象中10块钱以内。

出0入0汤圆

 楼主| 发表于 2008-3-12 21:10:01 | 显示全部楼层
【5楼】 zlei 张磊:  谢谢您上面的说明 !

     1、这是我的同事去本地商店购买时,JS的报价——我自己亦觉得是天价;
     2、我想先使用两片MAX232(16DIP)通过电路试验之后,再考虑是否购买“单片的MAX232系列电平转换芯片”;
     3、我想,上面的“速度奇慢”的问题,不应该是电平转换电路(MAX232)芯片的部分罢?

出0入0汤圆

发表于 2008-3-12 21:56:18 | 显示全部楼层
速度慢应该是api模式引起的吧,不过usb转的似乎只能用api模式

出0入50汤圆

发表于 2008-3-12 21:59:06 | 显示全部楼层
你的ponyprog是不是芯艺那本书里的那个图?我做过那个,接在PL2303的芯片后面几乎不工作,接在PC卡转的232后面,是龟速。

所以我感觉应该是转换的232口对这类编程器本身的兼容问题。

出0入0汤圆

 楼主| 发表于 2008-3-13 10:18:48 | 显示全部楼层
谢谢 【8楼】 ilikemcu 我爱单片机

    如果是“转换的232口对这类编程器本身的兼容问题”,好像可以解释得通。
    不知道,转换的232口,对其他类编程器的兼容问题,怎么样?
    就是说:不知道是“普遍性”还是“特殊性”?

    另外顺便请教一下:pchome——电池上面,有一位朋友的ID、好像和您的是一样的?

出0入0汤圆

 楼主| 发表于 2008-3-18 09:51:58 | 显示全部楼层
哪位朋友,有PL2303芯片的详细应用资料可以提供?
先谢谢了!

出0入0汤圆

发表于 2008-4-9 21:45:01 | 显示全部楼层
楼上,我说一点意见供你参考:(俺对usb一知半解,不一定正确)

1.使用三线制串口或使用硬件流控制,usb转串口的速度和标准串口不会有很大差别的,因为可以使用内部buffer,数据可以整块传输,
  如果通信模式不是块传输模式,那usb转串口的还是会比标准串口慢得多的。

2.如果直接控制引脚比如DTR,RTS的电平,则速度会极慢,因为usb1.1一个数据帧最多可以传1K以上数据,但两个帧之间至少要1ms间隔时间,哪怕你每个帧只传一个字节也要间隔1ms。这样直接控制IO脚的速度理论上最快也就是1kbps,实际还要低。而SI Prog好像就是用直接控制IO脚的,所以会有这种现象。

3.我做了德国人搞出来的那个usb转LPT,速度也极慢,估计原因也是这个。因为并口下载器也都是直接控制IO脚电平的。

4.因为这个问题是由USB的通信模式决定的,所以这个问题应该和PL2303芯片无关,所有的USB->串口的芯片应该都有这个问题。

5.唯一有希望解决这个问题的可能就是用微机总线加IO芯片直接产生“真正的”串口。如PCI的 或 PCMCIA的。

6.另外,现在似乎没有几个软件使用类似SI_PROG这种方式使用串口,大多数使用三线制就够用了。

出0入0汤圆

 楼主| 发表于 2008-4-24 20:37:05 | 显示全部楼层
应一位朋友的要求,上传我上面试验的电路图:

点击此处下载 ourdev_259976.pdf(文件大小:18K) (原文件名:2303UART_All_sch.pdf)

出0入0汤圆

发表于 2008-4-24 23:23:17 | 显示全部楼层
记下

出0入0汤圆

发表于 2008-4-25 00:40:26 | 显示全部楼层
谢谢wxfhw  这个好像是PL2303的  我那个是PL2303HX 我照另外一个接的 今天测试也能正常工作 我将21 22 23  25 26脚全部接地的 不知有什么区别吗

出0入0汤圆

发表于 2008-4-25 00:49:45 | 显示全部楼层
PL2303的USB驱动支持MODEM的9线么?

出0入0汤圆

发表于 2008-4-26 01:38:41 | 显示全部楼层
PL2303芯片的资料:点击此处下载 ourdev_260522.pdf(文件大小:49K) (原文件名:armok0157706.pdf)

出0入0汤圆

发表于 2008-7-10 16:33:46 | 显示全部楼层
请教:ARM的全功能串口接口电路。及接口芯片选型?

出0入137汤圆

发表于 2008-7-10 16:39:08 | 显示全部楼层
max3243

出0入0汤圆

发表于 2008-7-11 14:56:22 | 显示全部楼层
上次我见过一个厂专门做这个线的,他有一个测试软件,但是我没有要来,可以给楼主参考一下,原理就是usb直接接电脑的usb,另外一端接一根串口转接头插到电脑的串口上面,再有一个测试软件,一边发送数据一边接收,如果全部ok就pass,否则ng。这个是人家厂家量产的测试模式。

出0入0汤圆

 楼主| 发表于 2008-7-11 17:44:31 | 显示全部楼层
【19楼】 xiaojian :谢谢了!

  可惜,在下不会编软件。

出0入0汤圆

发表于 2008-7-12 14:19:49 | 显示全部楼层
什么是全功能?是否是指 DTR、RTS 之类都具有的意思?如果是的话,直接操作 DTR、RTS 的电平,响应消息不就能知道了吗。

要对串口编程,在 .net 下还是很简单的,首先添加对串口的引用
Imports System.IO.Ports
然后定义一个串口对象
Shared fSPort As New System.IO.Ports.SerialPort()
然后就可以用
fSPort.DtrEnable、fSPort.RtsEnable 操作 DTR、RTS 电平了,我曾经写过一个程序,用串口的 DTR、RTS 和 Break 作为 IO,向 74164 上的数码管发送 7 段码。


    Public Shared Function ShowLED(ByVal ShowWord As String) As Long
        Dim tmpCode() As String
        Dim tShowWord() As String
        Dim i, j As Long
        tShowWord = Split(ShowWord, ",", -1)

        For i = 0 To 3
            tmpCode = Split(NumberCode(CInt(tShowWord(i))), ",", -1)
            For j = 0 To 7
                If CInt(tmpCode(j)) = 1 Then fSPort.DtrEnable = True Else fSPort.DtrEnable = False ' 根据预定的数据,如果此位 LED 显示字符则设定为低电平,否则设定为高电平,因为是共阳显示器。此电平输入到 74164 的数据输入端
                fSPort.BreakState = True
                fSPort.BreakState = False ' 此两句代码制造一个时钟脉冲,将数据输入 74LS164 串入并出移位寄存器
            Next j
        Next i

        ShowLED = 0
    End Function

出0入0汤圆

发表于 2009-4-8 10:14:44 | 显示全部楼层
那个波特率怎么控制的

出0入0汤圆

发表于 2009-6-21 19:44:55 | 显示全部楼层
波特率跟USB芯片有关


没有最新的消息了吗?

出0入0汤圆

发表于 2010-4-19 11:52:14 | 显示全部楼层
我用笔记本下1K程序,ponyprog要2个小时

出0入0汤圆

发表于 2010-4-19 11:52:33 | 显示全部楼层
我用笔记本下1K程序,ponyprog要2个小时

出0入0汤圆

发表于 2010-4-19 12:11:12 | 显示全部楼层
估计根  2303  驱动有关系

出0入0汤圆

发表于 2010-4-19 12:11:38 | 显示全部楼层
可个应该可以做  430  BSL   可以试试看

出0入0汤圆

发表于 2010-9-12 17:40:24 | 显示全部楼层
回复【27楼】johu
-----------------------------------------------------------------------

我用2303做的串口刷中9机子的那个线为什么那么快呢??

出0入0汤圆

 楼主| 发表于 2011-1-27 17:18:08 | 显示全部楼层
回复【28楼】lzdyfsyd
-----------------------------------------------------------------------
我用2303做的串口刷中9机子的那个线为什么那么快呢??
-----------------------------------------------------------------------

请问:
  您的“2303做的串口刷中9机子的那个线”使用了那些端子?
  可以提供电路资料,以便于我有可能亦试试吗?
  谢谢先!

出0入0汤圆

发表于 2011-1-27 18:32:15 | 显示全部楼层
估计是误码率太高了吧,传1K的程序如果正常花10秒,误码率99%,实际花的时间应该是10/(1-99%)=1000秒

出0入0汤圆

发表于 2011-1-27 18:33:31 | 显示全部楼层
用FT232做的USB串口兼容性非常好!

出0入0汤圆

发表于 2012-8-29 10:14:56 | 显示全部楼层
pl2303 源代码?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-5 09:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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