切换到宽版
  • 11122阅读
  • 54回复

[C51]自动适应波特率的冷启动模块(开源) [复制链接]

上一主题 下一主题
离线水表君
 

发帖
1252
M币
4052
专家
42
粉丝
81
— 本帖被 青柠 设置为精华,作者+3000M币+5专家(2018-03-05) —
昨晚没事的时候,看看论坛的帖子,忽然看到关于冷启动制作的帖子。不过也说实话,单片机冷启动确实蛋疼,下载一次就要冷启动一次,如果一个大工程,不知道要冷启动多少次,就冷启动都能给你弄烦了。我之前也做过冷启动模块,做了三代,这是第四代。第一代简单粗暴检测TXD为低电平就冷启动一次,这样要是用串口通讯的话很容易误判。第二代是用串口检测到下载指令0x7f就冷启动下载一次。第三代我直接集成到了我的最小系统上,程序判断也更准了,用的是坛友的程序,不过有一个限制,最低波特率要2400才可以。虽然说一般不回去调这个,但是我使用中发现给3.3V单片机使用内部晶振的下载很容易丢失数据。检测不到。就要调节波特率,可是程序已经限制了,没办法只能手动冷启动。。。昨天看完以后也心血来潮了,做一个自动适应波特率的!BUG要少的!5个小时手撸程序+焊接就搞定!目前还没有发现BUG,同样也开源!
这里讲解下冷启动和热启动:(自己理解的意思,如果有不对请谅解,我会修改的)
冷启动:在设备正常工作状态时,你想加个硬件并且想让这个硬件融入到这个系统来就要给整个设备断电,再上电的过程叫冷启动(大概可理解为复位)举个简单的例子:你的电脑如果是台式机,拔掉鼠标和键盘,开机,在电脑工作的状态,你使用PS/2键盘或鼠标插到机箱上是没用的,就要重启一遍电脑,而USB接口的就可以,这就证明USB是热启动。
热启动:在设备工作状态时,想加入硬件给他点反应时间,就可以使用了,不需要重启或复位。
这个制作就是一个模块,当你给单片机下载程序的时候,帮你完成冷启动,你只需要等待程序下载完成就好~
本次采用STC15F104W单片机,此款单片机没有串口,就要用程序来模拟。冷启动我使用MOS管,就是上次烙铁制作不用的MOS管10N60C,这次还行,没掉链子。如果你想仿制的话也可以使用别的,比如三级管,继电器等。但是注意驱动的高低电平,需要 在程序中查看并更改,我这个是高电平打开

电路图


昨晚的想法,今天10点起床撸程序。。。这是在调试程序


基本上程序都搞定了,可以实现效果了,开始制作!


单片机,这是之前第三代的


MOS管,10N60C,当初还傻傻的以为控制VCC准备了两个,后来才想起来这是N沟道的MOS管控制的是GND


裁剪电路板,在一个木板上固定一颗螺丝


电路板放在螺丝前面


然后用刀,划几次。如果电路板小的话可以这么干,螺丝帮你挡住电路板不移动


切割完成!


用锉修整下,还倒个圆


布线,这时候我还傻傻的以为控制两个VCC(一个5V一个3.3V)


单片机和按键,这个按键是手动冷启动的


都焊上,固定


再拿一个5P的排针和排母


把排母的脚弯成90°


放在电路板后面


焊接上


排针也在电路板后面


焊接。90°排针我有,但是我感觉那玩意插杜邦线太松。就这么干了


这时候我才反应过来,控制的是GND,拆掉一个MOS管


拆掉的是新的,不过也挂锡了


楼下继续!
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共9条打赏M币+91专家+1
离线水表君

发帖
1252
M币
4052
专家
42
粉丝
81
只看该作者 1楼 发表于: 03-04
接楼上!
焊接锡接过线


这根GND九曲十八弯啊


锡接过线完成!


开始,飞线


最后四根


因为布线设计的是用单片机IO口输出低电平接按键,最后怕大家在程序中看不懂,就饶了一下接GND了


改过来了,基本没区别


焊接完成!


插上CH340,我从学单片机到现在,一直在用这个下载,很有感情了!


插到USB口,默认指示灯不亮,以前的指示灯是长亮


试验!一次成功!


给一个89C52RC下载


套个热宿管


用烙铁直接烫的,发现好丑


正面,对于我这个强迫症来说很不爽


还是拆开吧,毕竟才用,有BUG也不知道,方便以后维修和升级


画电路图的时候才想起来,按键没有加消抖电容,现在我基本不用软件延时,浪费CPU


楼下继续!
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共5条打赏M币+39专家+1
离线水表君

发帖
1252
M币
4052
专家
42
粉丝
81
只看该作者 2楼 发表于: 03-04
接楼上!——附件楼
单片机的频率是22.1184MHZ这个要注意!


最高波特率,一般不用改


最低波特率,设置,冷启动模块可以自动适应


除了115200外,都可以自动适应


这里说一下原理:其实简单 ,把这些波特率计算后的值存到单片机里面,单片机判断接收数据,如果不是0x7f下载指令,就不断设置串口波特率的值,如果检测到了0x74就计数,10次就冷启动一次
也可以自己计算波特率放到单片机里面,然后就可以适应你计算的波特率(详情见程序)
如同以往,开源:
百度网盘:链接:https://pan.baidu.com/s/1i6p41dr 密码:ywwb
严禁用于商业用途!严禁转载!请尊重原作者!
严禁用于商业用途!严禁转载!请尊重原作者!
严禁用于商业用途!严禁转载!请尊重原作者!
本帖完,欢迎仿制~如果有什么问题或者使用过程中有BUG,跟帖回复或私信我。我会看的!
打这么多字编辑这么长时间,各位看官,给打两个赏~嘿嘿
[ 此帖被水表君在2018-03-04 18:15重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共11条打赏M币+129专家+1
12
离线devcang

发帖
17090
M币
7291
专家
19
粉丝
89
只看该作者 3楼 发表于: 03-04

10N60C  驱动电压、电流是多少的
离线水表君

发帖
1252
M币
4052
专家
42
粉丝
81
只看该作者 4楼 发表于: 03-04
回 devcang 的帖子
devcang:10N60C  驱动电压、电流是多少的 (2018-03-04 18:11) 回 devcang 的帖子

FET 型:MOSFET N 通道,金属氧化物
FET 特点:标准型
漏极至源极电压(Vdss):600V
电流 - 连续漏极(Id) @ 25° C:9.5A
闸电荷(Qg) @ Vgs:57nC @ 10V
在 Vds 时的输入电容(Ciss) :2040pF @ 25V
功率 - 最大:50W
安装类型:通孔
封装/外壳:TO-220-3 全封装(直引线)
包装:管件
来自百度,具体实际情况还要自己测试,我也没测试过
离线jmkl128

发帖
673
M币
1026
专家
5
粉丝
36
只看该作者 5楼 发表于: 03-04
有这么复杂吗?多一个stc15F104,还要模拟一个串口检测,,,CH340G不是已经检测下载指令了吗?
离线大锤子

发帖
241
M币
947
专家
3
粉丝
7
只看该作者 6楼 发表于: 03-04
好东西,这样不要辛苦的插拔VCC了,啥时候买的机械啊,我还在苦逼的用.....
离线nesandsnes

发帖
1367
M币
3044
专家
6
粉丝
40
只看该作者 7楼 发表于: 03-04
STC 下载不用冷启了  
ISP_CONTR = 0x60; //软复位进入ISP下载模式
软件检测到复位串口指令,设置ISP_CONTR 就可以啦  
离线水表君

发帖
1252
M币
4052
专家
42
粉丝
81
只看该作者 8楼 发表于: 03-04
回 jmkl128 的帖子
jmkl128:有这么复杂吗?多一个stc15F104,还要模拟一个串口检测,,,CH340G不是已经检测下载指令了吗? (2018-03-04 18:21) 回 jmkl128 的帖子

可是冷启动的动作他完成不了啊,写一个程序开一个串口,检测0x47然后复位?
离线水表君

发帖
1252
M币
4052
专家
42
粉丝
81
只看该作者 9楼 发表于: 03-04
回 nesandsnes 的帖子
nesandsnes:STC 下载不用冷启了  
ISP_CONTR = 0x60; //软复位进入ISP下载模式
软件检测到复位串口指令,设置ISP_CONTR 就可以啦   (2018-03-04 19:31) 回 nesandsnes 的帖子

我知道这个,但是你总不能写一个程序,就开一个串口检测下载指令然后复位吧。。万一要用串口呢。万一既要串口又要调试几百次的程序,怎么办?冷启动几百次?
快速回复
限80 字节
温馨提示:欢迎交流讨论,请勿发布纯表情、纯引用等灌水帖子;以免被删除
 
上一个 下一个