STC51单片机实现无线下载,理论上别的支持串口下载的单片机,都支持此方案

STC51单片机实现无线下载,理论上别的支持串口下载的单片机,都支持此方案

需求分析

1、需要实现有TXD,RXD两根线来下载程序,因为STC51单片机只能通过串口下载,所以无线方案中,需要有串口输出功能,也就是说接收到无线信号后,要能发送到串口1

2、需要复位电路,也就是让单片机复位的东西,或者采用自定义下载,前导符方案下载等

3、最理想的下载方案,外面通过笔记本的或电脑,通过接入的无线或蓝牙或wifi,与51的设备连通,点击下载按钮,进度条后下载成功。能搜索到多个无线,想下哪个下哪个,还能显示搜到的名字,版本是否最新,多人同时下载,不会冲突

4、市面上的无线通信方案有好几种,NRF24L01,蓝牙,wifi
同时又有433Mh,2.4G等

5、价格,一定要便宜,每设备增加成本在5元左右可以接受

6、接口,最好只有VCC,GND,TXD,RXD这4个接口,这样可以插在下载口上进行扩展,不用改变现有的卡

触个分析:

NRF24L01无线方案:

此方案需要有单片机才能使用,因为它提供的是spi接口与单片机相连,不考虑

顺舟无线串口:应该也可以,只不过要用前导符下载程序,或者按键下载,因为只想重启单片机不能断电顺舟

实测下来,顺舟是不行的,测试的时候,开始调节频率,就得不到单片机的回应了,然后就超时了,
    1.与用MAX232芯片无关,因为我电脑端插了USB-TTL也一样
    2.用自己的程序,与用STC-ISP程序是一样的问题
    3.两个顺舟模块,都改了even偶校验,也不行,但两个改校验的是可以相互通讯的
    换有线连接,立马就下载了
分析原因:
    因为顺舟不会因为有1个字节就立马发送,而是要等多一点数据,再1次发送多字节数据,那么就有个组包时间,
     比如发送7F时,单片机收到7F,则重启进入下载模式,返回一串数据,ISP收到这串数据,发送调频包,此时会在调频包前面多发一些7F,导致失败
     事实上,前面多发7F没有任何关系,而是发送FE的时间,间隔不能太长,比如我调成110ms定时发送,则不行,因为单片机那边有超时检测
     事实上,我调成100ms,都不行,看来要调成小于100ms,比如调成50ms,则用我自己写的程序,插有线可以直接下载,但改成顺舟,则在发FE的时候
             每个包一般发了7节字,但是要命的是,第一个FE包与第二个FE包,相隔400ms多,所以单片机那边超时了,目前这个问题无解

wifi:应该也可以,因为wifi输出的也可以是RX,TX信号,但wifi比蓝牙贵

实测下来不行,用的有人wifi模块215,我搭了一个环境,有人模块做为AP,电脑插无线网卡,连入这个wifi,然后打开网络调试助手以20ms的速度不停的发FF
   但结果就是,每秒只有4个数据包发送到了串口,每个包有12~13个FF,问题就在于这个1秒钟最多只发4个包给串口,即使改了AT+UARTTE=20也不行
   改UDP也不行,改UDP后,反而每秒只有1~3个包传到了串口中,看来有人wifi无解

   用esp-12f试了一下,如果用TCP的透传模式,大概1秒钟也只能收到4个包到串口,但用UDP模式,则感觉是实时发送,就是不知道中间是否丢包,可以一试
   但是,UDP通讯,实测下来,我开始了UDP模式的透传模式,电脑这边用网络调试助手20ms循环发送FF,但esp12f转发到串口的数据是400多ms发一长串数据,
     9600与115200波特率都试了,不行,所以wifi实时下载无解

蓝牙:可以

网上有成功按例,有蓝牙模块的笔记本(联想Y系笔记本),HC-05蓝牙模块
       先用USB转串口模块,与蓝牙模块相连,接入笔记本,笔记本与蓝牙配对成功,其中要输入密码1234,则多出一个COM28口
       USB转串口的串口号是COM5,波特率38400,用AT指令改HC-05的参数,9600,8,E,1,也就是数据位8,停止位1,偶校验
       然后HC-05连入单片机中,就可以实现蓝牙下载了,https://blog.csdn.net/czhnja/article/details/9748279

我买的蓝牙

测试了一款最便宜的串口蓝牙透传模块JDY-31,发现当蓝牙连通后,自动进入透传模式,发送1个字节的速度,比如发送FE与下一个FE,完全是10ms
可是即使是这样,依然不能当下载器使用,因为这个模块没法调奇偶校验位,只能调波特率9600,19200,38400,…,128000
当然,下载失败还有可能是别的原因,http://www.360doc.com/content/15/0817/23/9200790_492488989.shtml

又买了一款JDY-33模块(比HC-05便宜),测试确实可以下载,

但第一次,需要单片机断电,一断电,蓝牙也断了,所以第一次得插下载线,把程序写好,后面就不需要断电即可下载了
于是乎,在旧电话手表上拆了一个锂电池,752728两线电池,用一个充电保护板https://item.taobao.com/item.htm?spm=a1z09.2.0.0.37352e8dLiJL3d&id=528123800922&_u=25k2k411514,B+ B-接电池,OUT+ OUT-上接AMS1117,然后再接蓝牙模块
设计了一个外壳,303020,3D打印出来,引4根线出来,一条接个端子,正好接控制卡的下载口,另两根接IN+ IN-,两根接蓝牙模块上,完美解决了无线下载问题
不过蓝牙模块需要改成115200,8,E,1,这样在下载的时候最低波特率选115200即可,当然,要带蓝牙的笔记本,或是插个USB接口的蓝牙设备,大概20元1个

到此,问题完美解决,别的单片机波特率可以调再高些,比如460800,这样下载速度快很多

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值