STC自动高速下载线

本文介绍了一种改进的STC单片机下载方案,解决了PL2303SA芯片导致的下载波特率异常问题,并实现了更高速率的串口通信。通过更换为PL2303GL及加入MAX3232芯片,覆盖了2400至115200波特率,最高可达460800波特率,显著提升了大容量程序的下载速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

前面有两款对STC单片机的全自动下载版设计:

  1. 全自动STC下载电路设计
  2. STC单片机下载实验
  3. STC单片机自动下载调试器设计

但其中存在着两方面的缺点:

缺点1:最低下载波特率异常

在博文“STC单片机下载实验”中,发现使用“Prolific PL2303SA 调试”对于不同的STC单片机,所能够使用的最低下载频率各不相同。特别是19200的波特率能够适应于大多数的单片机,但这一点在与STC公司的与 STC公司技术人员讨论之后,所得能够得到的结论居然是 PL2303SA 这款USB转串口的芯片设计存在BUG。也就是该款芯片在不同的波特率输出的波特率有较大的误差,这是使得STC单片机无法下载的主要原因。

使用最近新的改进版本PL2303GL可以解决这个问题。但是经过更改PL2303GL之后,也会发现所有大有19200 的波特率无法使用。只能使用2400~14400之间的频率。

缺点2:无法实现单片机与PC之间更大速率串口通信

由于PL2303缺省的情况下,只能使用115200波特率进行通信。现在对此还没有别的资料可以对PL2303修改它的波特率。在Prolific 官方网站上,可以找到PL2303的数据手册,其中说明PL2303支持多种的数据格式和波特率,但问题是如何来对SOP封装的PL2303来设置?

▲ PL2303所支持的数据格式和波特率

▲ PL2303所支持的数据格式和波特率

解决这个问题的思路就是使用已知可以设置高速可靠的USB转串口电缆,来替代PL2303芯片即可。这类USB转串口线还是非常多的。

▲ USB转串口线

▲ USB转串口线

这需要额外在增加一个RS232转TTL电平的芯片。支持高速串口线的芯片可以选用MAX3232这款芯片。

电路设计

工程文件:

D:\zhuoqing\AltiumDesigner\STC\Tools\Download\UARTDLAUTO.PcbDoc *

1. SCH

▲ 原理图设计

▲ 原理图设计

电路图中,使用了MAX3232作为RS232转串口TTL电平的芯片。而普通的MAX202虽然适合在5V下工作,但它的最高速率无法超过115200。

其中对于STC下载脉冲检测方案采用了与“STC单片机自动下载调试器设计”相同的单片机。

2. PCB

▲ PCB 设计

▲ PCB 设计

实验结论

通过上述方法设计制作,顺利的可以发现这款ISP可以很轻松的实现最低波特率范围从2400 一直到115200的全覆盖。对于最高频率也可以达到460800波特率。对于开发大容量单片机程序,加速下载过程非常明显。

该方案中的继电器可以使用在“通过WiFi对STC单片机程序下载和调试”相同的MOS管方案来替代。这里可以巧妙的应用MAX3232中没有应用到的一路RS232的转换通道,利用它的输出电压范围可以达到 ± 10 V \pm 10V ±10V的范围,来驱动MOS在高端导通。

本文介绍的是带电压电流表的多功能STC免冷启动自动下载器,功能如下: 由于常用的STC自动下载器没有电流检测功能,没法判断实验板的工作电流大小,怕电流过大,不方便,所以自己动手DIY个带电压电流表的下载器。主要功能有自动下载、各接口的电压、输出的工作电流、及4路电压表。4路电压表用于实验板特定点的电压监测,充分利用单片机的资源,不浪费。对于自动下载器的原理网上有,就是监测串口是否连续输出0X7F的值,有就说明要断电重启下载数据,本下载器支持1200-115200b的常用波特率,程序是采用每0.1S改变一下串口的波特率(由于采用先判断收到不是7F值就改变波特率的方法会出现有时不响应。所以改为这种方式。),然后检查是否有7F的值,如有就停止改变波特率,如连接接收到7F值,就关电0.4S再开电。 STC自动下载器制作器件清单: 这个制作电压检测最大为25V,电流最大为2A,它的受控输出接有1A的保险的,所以采控电流不能过大,它的输出接口有专门USB供电的直出口,可以利用这个接口外接USB座,可以把这东东变身成USB电压电流表。 工作界面如下,分2页显示,下图为第一页,显示有输出5V的电压值及输出的3.3V的值、输出电流值、外接输入的值、单片机的供电,如当USB电压电流表时,跳线短接USB供电,CPU的电压为USB输出电压。 PCB截图: 说明:由于上图PCB制作是没找到表贴LED的封装,用二极管的封装,所以尺寸大了,而且有一线布不过去,用跳线跳过的,如下图右上角接口那条红线,它是连接两个焊盘。电路板设计是采用表贴47U电容,实际使用中出现向外供电时,单片机出现重启的情况,加表贴电容的方法也解决不了问题,后来只加个普通的100U的电解就解决了,这个有可能是表贴电容性能有问题,所以电路板上多了2个电解电容。 以下是装上元件的图,焊工一般,能用。 接口的图,由于内部单片机及输出有多个输入源可选择,所以有跳线,分别选择USB供电,外接5V供电,外接12V转5V供电,由于板过小,三端稳压散热位小,所以如用12V转5V稳压供电时,电流不能过大,会出现过热的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卓晴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值