找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9548|回复: 25
收起左侧

1个三极管实现STC自动下载,上位机代码开源

  [复制链接]
ID:109187 发表于 2017-7-12 11:56 | 显示全部楼层 |阅读模式
看过之前很多STC自动下载方法,这里提供另外一个思路,欢迎指点。


1. 起因
   最近搞了个普中的51学习板研究,如下图。厂家提供了一个自动下载程序,但是支持的芯片型号不多。研究其电路发现,原理是靠串口的DTR端控制单片机复位,和Arduino的原理差不多,不同是STC单片机下载时必须断电完成复位,该电路就是DTR控制断电。
1.jpg



所以为了自动下载又可以用官方STC-ISP程序支持各种型号单片机,考虑做一个外挂,达到下载程序时控制DTR达成断电复位

2. 准备材料

   1个USB转串口的下载器,需要引出DTR的,比如下面那个,或者你可以USB转串口芯片的DTR脚自己引出。
   1个三极管s8050,一个电阻1k
    2.jpg

3. 硬件电路

   原理就是DTR端控制单片机供电,可以用学习板那套电路,以下为山寨供电电路,凑合能用。
    3.jpg

4. 软件说明

   上位机控制串口的DTR端的高低靠以下函数

EscapeCommFunction(h, SETDTR);
EscapeCommFunction(h, CLRDTR);

   软件原理主要是注入代码到STC官方程序中,挂钩打开串口函数CreateFile,在打开串口后执行上面两句控制DTR,完成复位。涉及到部分IATHook知识,有兴趣深入研究的可以看代码,或者百度相关知识。
   本软件相当于STC-ISP的外挂,运行时修改其代码环境,不修改原始文件。代码在下面,Delphi7环境编译。

5. 整体效果

  测试环境用的STC12C2052AD,STC-ISP程序用的6.86,本程序也用于普中学习板
4.jpg

GIF3.gif


上位机.zip (221.07 KB, 下载次数: 127)

评分

参与人数 5黑币 +148 收起 理由
zmc419 + 12 很实用,电路简单。比开关电源方便,比单片.
ycg123 + 1 很给力!
copower + 30 赞一个!
qgcwh + 5 很给力!
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:1 发表于 2017-7-12 20:37 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:263813 发表于 2018-1-3 10:58 | 显示全部楼层
一直在努力学习!
回复

使用道具 举报

ID:269211 发表于 2018-2-8 16:21 | 显示全部楼层

一直在努力学习
回复

使用道具 举报

ID:285258 发表于 2018-3-3 23:43 | 显示全部楼层
本帖最后由 copower 于 2018-3-4 11:01 编辑

谢谢分享
回复

使用道具 举报

ID:26275 发表于 2018-8-15 18:50 | 显示全部楼层
是不是太过复杂了?

如果不用上位机, 就直接用这个三极管,直接改,不行么

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:137736 发表于 2018-8-17 18:40 来自手机 | 显示全部楼层
很好。必须改上位机,因为要改变DTR电平。
回复

使用道具 举报

ID:137736 发表于 2018-8-17 18:48 来自手机 | 显示全部楼层
cqqwing 发表于 2018-8-15 18:50
是不是太过复杂了?

如果不用上位机, 就直接用这个三极管,直接改,不行么

上位机要转换DTR电平
回复

使用道具 举报

ID:137736 发表于 2018-8-21 17:47 | 显示全部楼层
太好了,比纯软件法和外加单片机法都好,电路简单,不占用串口。
回复

使用道具 举报

ID:359281 发表于 2018-8-22 14:17 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:53978 发表于 2018-9-4 16:47 | 显示全部楼层

好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:403089 发表于 2018-9-27 11:31 | 显示全部楼层
看看咯,好像是个好东西
回复

使用道具 举报

ID:137736 发表于 2019-1-14 22:37 | 显示全部楼层
这是我找到的最好方案,比起硬件方案不外加单片机,比起纯软件方案不占用串口和硬件资源。楼主上位机、单片机都精通,赞一个。
回复

使用道具 举报

ID:229361 发表于 2019-1-29 11:16 | 显示全部楼层
好东西

回复

使用道具 举报

ID:448822 发表于 2019-2-6 17:40 | 显示全部楼层
好资料,51黑有你更精彩!!
回复

使用道具 举报

ID:164864 发表于 2019-2-6 18:36 来自手机 | 显示全部楼层
赞一个
回复

使用道具 举报

ID:452731 发表于 2019-2-7 23:12 | 显示全部楼层
非常好的资料
回复

使用道具 举报

ID:45334 发表于 2019-12-3 13:42 | 显示全部楼层
用的是S8050 npn三极管,发射级输出电压会降低0.7V左右,如果目标单片机是3.3V的,不知道行不行。最好改一下上位机软件,三极管用PNP型的就完美了
回复

使用道具 举报

ID:514317 发表于 2019-12-3 14:07 | 显示全部楼层
牛逼。。。。。。。软件注入    软硬件高手
回复

使用道具 举报

ID:742666 发表于 2020-5-2 09:31 | 显示全部楼层

牛逼。。。。。。。软件注入    软硬件高手
回复

使用道具 举报

ID:452539 发表于 2020-5-2 10:07 | 显示全部楼层
厉害学习了
回复

使用道具 举报

ID:32675 发表于 2020-5-2 10:51 来自手机 | 显示全部楼层
好资料,学习了谢谢楼主
回复

使用道具 举报

ID:71618 发表于 2021-11-19 11:03 | 显示全部楼层
用RTS引脚控制三极管基极就不用加上位机代码了
回复

使用道具 举报

ID:343102 发表于 2021-11-20 13:35 | 显示全部楼层
可以搞个tx信号控制的。
回复

使用道具 举报

ID:275111 发表于 2021-12-10 12:08 | 显示全部楼层
MARK一下,但目前看不懂的说。
回复

使用道具 举报

ID:981034 发表于 2021-12-13 21:32 | 显示全部楼层
太好了,比纯软件法和外加单片机法都好,电路简单,不占用串口。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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