看过之前很多STC自动下载方法,这里提供另外一个思路,欢迎指点。
1. 起因
最近搞了个普中的51学习板研究,如下图。厂家提供了一个自动下载程序,但是支持的芯片型号不多。研究其电路发现,原理是靠串口的DTR端控制单片机复位,和Arduino的原理差不多,不同是STC单片机下载时必须断电完成复位,该电路就是DTR控制断电。
所以为了自动下载又可以用官方STC-ISP程序支持各种型号单片机,考虑做一个外挂,达到下载程序时控制DTR达成断电复位
2. 准备材料
1个USB转串口的下载器,需要引出DTR的,比如下面那个,或者你可以USB转串口芯片的DTR脚自己引出。
1个三极管s8050,一个电阻1k
3. 硬件电路
原理就是DTR端控制单片机供电,可以用学习板那套电路,以下为山寨供电电路,凑合能用。
4. 软件说明
上位机控制串口的DTR端的高低靠以下函数
EscapeCommFunction(h, SETDTR);
EscapeCommFunction(h, CLRDTR);
软件原理主要是注入代码到STC官方程序中,挂钩打开串口函数CreateFile,在打开串口后执行上面两句控制DTR,完成复位。涉及到部分IATHook知识,有兴趣深入研究的可以看代码,或者百度相关知识。
本软件相当于STC-ISP的外挂,运行时修改其代码环境,不修改原始文件。代码在下面,Delphi7环境编译。
5. 整体效果
测试环境用的STC12C2052AD,STC-ISP程序用的6.86,本程序也用于普中学习板
上位机.zip
(221.07 KB, 下载次数: 128)
|