USB转串口芯片:PL2303HX(E版或F版)
测试环境:win7为主
相信很多人用USB转串口芯片PL2303都会遇到问题,如波特率较低,不能下载之类的,我也是,搞了好久,虽然还是不知其所以然,但是总算可以用了。下面分享下自己的经验吧。不足之处还请大家多多指教。
首先, 我是这么分析的:
1、PL2303电路的发送接收是否正常?这个很容易,直接用串口调试程序查了一下,一般照着网上的电路接,都是没有问题的。
2、PL2303输出电平和STC的电平是否匹配。看了很多资料,PL2303的D版以后的输出电平都是高电平5V,低电平小于0.5V。所以电平是匹配的。网上有人说电平不匹配,最简单的方法是接上拉电阻,我试过了,没有效果。而且低波特率可以下载,说明不是电平问题。
3、串口电路正常了,还不能下载,单片机问题?个人觉得由以下几个可能,单片机的ISP引导程序没有运行或者单片机接收到的下载命令流有误?
所以先看了一下STC下载软件发给单片机的命令流,7F7F7F7F……没有问题。这个命令流还有一个作用,就是给单片机校准波特率的。
那么是ISP的引导程序没有运行?之所以会怀疑,是因为网上很多帖子说STC需要彻底断电才能下载。但是我有个同学,换了一下驱动,就可以下载了。让我惊讶的是,他虽然断开了VCC,但PL2303仍然对STC供电,依然可以下载,波特率达到115200!
好吧,STC比我想象中的强大!我估计,其实冷启动只是给STC一个激励,相当于中断触发沿触发,所以其实STC不完全断电也能够下载的。后面的测试也验证了这个问题。
4、既然电路没问题,单片机没问题。那就是电脑问题了。两个方面,下载软件和驱动问题。
花了一个晚上实验了网上比较盛行的几个驱动和STC下载软件的三个版本,结果如下:
驱动1:ourdev提供,版本日期:2009.11.19,可以下载,波特率小于等于4800;
驱动2:版本日期:2009.1.14,无法下载,蓝屏概率很高,建议不要用;
驱动3:版本日期:2010.3.12,可以下载,波特率小于等于4800;
驱动4:版本日期:2011.4.29,高波特率下载成功,但最低波特率需设置为1200;(记得最低波特率要设置为1200,最高波特率设置为115200,才能实现115200波特率下载。如果还不行,换一下USB口试一下)
而STC的各个版本(V4.80,V4.83,V4.86,V4.88)下载没有太大差异。
网上很多人说要2004以前的版本就可以,可是我没找到,所以就只能试验2009以后的版本。为什么会实验驱动4,PL2303最新驱动呢?我觉得Prolific公司肯定察觉得到PL2303命名之乱和驱动问题,所以一定会尽量使新版本兼容性更好。果然被我碰上了。现在附上我下到的驱动,大家如果能看到这篇文章的话,就帮忙试一下咯。我不知道这个驱动只是个别电脑有用,还是普遍的win7电脑都能用。使用前记得删除原驱动!
PS:该驱动官网声明是可以用于32位/64位的XP系统以及win7系统,但在一台XP系统的电脑Y450试过,最高波特率只能是4800.
还有一个很重要的问题。
如果是使用pl2303供电,若单片机系统中的电容过大,可能会是冷启动受到影响,无法实现冷启动。
如果是使用外部电源,Pl2303单独供电,这时一定要保证PL2303的地线和单片机系统的地线连在一起。否则还是无法下载。
这里提供一个win7可用的PL2303驱动。 http://download.csdn.net/detail/love33521/4530978