4-51单片机WIFI学习(开发板51单片机自动冷启动下载原理)
上一篇链接
http://www.cnblogs.com/yangfengwu/p/8743936.html
这一篇说一下自己板子的51单片机自动冷启动下载原理,我挥舞着键盘和鼠标,发誓要把世界写个明明白白,突然想起来第一行代码的那句话了.
当接上usb线连接到电脑上的时候
看一下RTS引脚的变化,这个信号是连络信号

所以很多用继电器实现的自动下载在接上电的时候会先啪啪啪的动作一下继电器
说一下当点击下载的时候CH340G的RTS和DTR引脚的变化
先说一下平时RTS和DTR都是高电平,正常的串口通信也是高电平,
下载的时候会变化,这样的时候也会变化
不过只有第一次打开使用的时候才会有信号,其余都是高电平

按照上面的接法当点击





咱们就是利用这个信号,其实应该利用两个信号,我是为了简单实用所以只用的RTS信号
我的最初的想法是在RTS来一个下降沿的时候触发一个什么延时电路控制一个三极管或者场效应管(管子为51提供电源),断电,

不知道亲们看没看过我这篇文章
http://www.cnblogs.com/yangfengwu/p/4933033.html
利用74hc123是最好的选择

我把RTS的信号接到123的A引脚上来一个下降沿Q引脚就会输出一个高脉冲,脉冲的时间利用电阻R和电容C控制,然后Q引脚接到PNP三极管
或者P沟道的场效应管上就可以实现,点击一下下载单片机就会断电上电,然后程序就下进去了,自己没有用123是因为123的引脚太多...占空间................
看一下我的原理图

先说NE555的电路

这种接法是NE555的2引脚来一个低电平3脚就会输出一个高脉冲(脉冲时间由C25和R66决定),记住2引脚是来一个低脉冲信号

如果2引脚一直是低电平那么3脚就会一直输出高....
这里就不说大约延时的时间了亲们可以自己去查资料,或者直接示波器去量,因为我也不知道...................
所以我的做法

一开始稳定的时候2脚是高电平,当RTS来一个低电平,由于是突然一下子,电容(可以用一个电容就可以)以为是交流电呢,所以低电平就过来了,2脚是低电平,3脚开始输出高电平,如果RTS保持了低电平一会电容开始充电哈,然后2脚又变成了高电平,这样的话2脚就相当于来了一个低脉冲.3脚会根据延时多少再变回低电平.

不过呢实际的信号



一通电的时候,2引脚是高电平而且电压大于了A2比较器的反向输入端 所以S输出高 S=1;
常理来讲
6引脚和7引脚突然的一上电由于有电容C25(先给电容充电)所以6引脚和7引脚应该是低电平(不是真的低,是不太高的电平)
当然5脚也接了一个电容,但是呢,容值小一点,所以5脚是大于6脚的,所以R也是1......
都是1不定态..........现在就要看不定态输出的数高还是低了
我用示波器看的,测量的3引脚和6引脚,发现都是低电平,当然一上电的时候稍微有一点高的波动(电压不是很高大约0.5V的波动)
所以一上电的时候Q输出的是1
里面的三极管导通
所以6,7引脚输出的都是低电平
现在呢让2引脚来一个低脉冲信号(只要小于1/3的VCC)就会小于比较器的反向输入端,记得哈是低脉冲信号,最后2是高电平,所以S输出0
R咱知道是1,所以 
然后 
经过了一个非门 所以3输出高
当然因为Q是0所以三极管截止,,,开始给C25充电
假设2脚中途没有信号过来了,当充电达到6脚电压大于5脚电压的时候经过比较器,所以R==0

现在3脚就会输出低电平,三极管也会导通,又开始给电容放电......................然后又变成了原来的样子
假设2引脚中途又有低脉冲信号

2引脚先来下降沿的时候,按照上面说的3引脚确实输出1;
现在呢又来了一个上升沿,来上升沿的时候6引脚的电压还没大于5引脚的电压呢,,,因为我放的电容和电阻较大,充电慢些,所以R输出1
R=1,S=1,不定态,,,,,,一看3脚电压输出的是低................................不定态的时候Q输出的是1
所以才会造成了

当然可以前级加一些电路让它只有一个下降沿,我是为了用的芯片最少
注意哈
这个电容最好是用有极性的,我用10UF是因为自己板子上常用10UF的
这个充电的电阻最好大于20K,让单片机有充足的断电时间,单片机的电路可千万别加储能电容哈,,,,要是有的话还要考虑放电
亲们可以根据自己的信号去分析别人的一键下载哈,
还有一个地方要说一下

4引脚接电容然后接5V和接GND,RTS,DTR产生的信号是不一样的,后期用示波器测量后补上,
有时候参考资料只是参考资料,很多东西还是要靠自己动手去实践,实践才出真知.很多人都喜欢用懒来给自己找借口,你自己不做出改变,谁都救不了你,你也别指望谁会救你,你要靠自救.
为什么我接电容然后5V,因为自己测试发现如果接一个电容接地,有时候会出现无法识别设备....
4-51单片机WIFI学习(开发板51单片机自动冷启动下载原理)的更多相关文章
- 2-51单片机WIFI学习(开发板测试远程通信详细介绍)
前一篇链接(最后有APP安装包下载地址) http://www.cnblogs.com/yangfengwu/p/8720148.html 由于自己别的贴片的板子还没到,所以用自己的8266最小系统板 ...
- 1-51单片机WIFI学习(开发板介绍)
源码链接都在后面 前面的都是介绍单独的WIFI,没有和单片机结合起来,因为做项目很少会只用WIFI模块.大多数都是WIFI模块作为中转数据的桥梁,单片机负责 数据采集,控制等等,所以自己准备出一套51 ...
- 3-51单片机WIFI学习(开发板8266底层源码介绍)
上一篇链接 http://www.cnblogs.com/yangfengwu/p/8743502.html 直接上源码:注意源码有两部分,第一部分是一开始的时候写在模块内部的,另一部分是存在手机内 ...
- 2-51单片机ESP8266学习-AT指令(开发板51单片机自动冷启动下载原理)
前言:了解就行,不必深究 上一篇链接 http://www.cnblogs.com/yangfengwu/p/8720148.html 源码链接:https://pan.baidu.com/s/1wT ...
- 如何选择单片机和Android-LInux-ARM开发板?
源: 如何选择单片机和Android-LInux-ARM开发板?
- 【单片机】CH32V103v8t6开发板调试笔记
一.开发板样式和资源 找官网的商务申请了一块开发板,打算试一下串口打印程序测试,发现网上关于这个板子的相关资料特别少,为方便后来人,就顺便记录一下,板子资源如下图所示. 板子芯片的引脚排布图 二.使用 ...
- 嵌入式开发板iTOP4412学习开发板
网站:http://www.topeetboard.com 淘宝:https://item.taobao.com/item.htm?_u=okcahs0f42a&id=38712193806 ...
- 开创学习的四核时代-迅为iTOP4412学习开发板
产品特点: 处理器: Exynos 4412 处理器,Cortex-A9四核,功耗性能俱佳! 性能: 1GB(可选2GB) 双通道 64bit数据总线 DDR3: 4GB(可选16GB)固态硬盘EMM ...
- VIP 视频开发板 上位机 测试软件 下载地址,玩转各自分辨率(V201抢先版)
本上位机最高测试帧率 133fps 目前支持分辨率:更多分辨率支持,敬请期待或给我留言VGA:640*4801.3M:1280*10242M:1600*1200786p:1024*768 格式兼容:1 ...
随机推荐
- 题目1010:A + B
题目描述: 读入两个小于100的正整数A和B,计算A+B. 需要注意的是:A和B的每一位数字由对应的英文单词给出. 输入: 测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B ...
- IDEA设置生成类基本注释信息
在eclipse中我们按一下快捷键就会生成类的基本信息相关的注释,其实在IDEA中也是可以的,需要我们手动设置,之后再创建类的时候就会自动加上这些基本的信息. File-->Setting 在E ...
- c++编码及读写文件
写文件 #include <fstream> #include <iostream> using namespace std; int main() { ofstream ou ...
- MYSQL数据库学习十八 数据库维护和性能提高
18.1 数据备份 可能造成数据损失的原因有: 存储介质故障:保存数据库文件的磁盘设备损坏,用户没有数据库备份导致数据彻底丢失. 用户的错误操作:如误删了某些重要数据,甚至整个数据库. 服务器的彻底瘫 ...
- HDU4310HERO贪心问题
问题描述 When playing DotA with god-like rivals and pig-like team members, you have to face an embarrass ...
- webpack.config.js文件的高级配置
一.多个入口文件之前我们配置的都是 一个入口 var webpack = require('webpack'); var commonsPlugin = new webpack.optimize.Co ...
- webpack学习
// 一个常见的`webpack`配置文件 const webpack = require('webpack'); const HtmlWebpackPlugin = require('html-we ...
- KVM之七:KVM克隆
1.在克隆虚拟机之前,必须先暂停或者停掉kvm 虚拟机.以虚拟机 snale 为例,先暂停虚拟机,如下 [root@kvm ~ ::]#virsh list Id 名称 状态 ------------ ...
- 测试对bug如何分析和定位
如何去区分一个功能测试工程师的水平高和低? 可以从很多个方面去检查,比如测试的思路, 比如测试用例的覆盖度?,比如测试出bug是否能够定位到根因? 上面说的各个方面都很合理,那我们平常如何如更深的定位 ...
- CSS 语法
CSS 语法 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明: 选择器通常是您需要改变样式的 HTML 元素. 每条声明由一个属性和一个值组成. 属性(property)是您希望设置的样 ...