关于基于ESP8266的自制适配器的简短说明,可让您将固件下载到安装了UART引导加载程序或Arduino的微控制器。最近,在AVR微控制器上设计设备时,为了进行编程,我只为FTDI适配器输出一个6针连接器(不是ISP)。它允许您下载固件并在固件之后调试UART。那正是Arduino所做的,这个想法是从那里借来的。这很方便。同时,我不得不处理一次以上的情况,即您需要将固件下载到微控制器,但是这种情况已经不适合工作场所/位于夹层楼/位于另一个城市/被围在墙上。在这种情况下,由于USB电缆短,FTDI适配器不适用,必须使用笔记本电脑来躲避。考虑无线编程器。ESP8266在这里最适合,因为它具有UART,并且在任何版本中均具有至少一个GPIO,适用于重启控制器并进入编程模式。在网络上找到有关该主题的以下材料:- 使用ESP8266通过WiFi对Arduino进行编程 -将ESP-01类型的模块连接到Arduino pro mini的接线上,然后使用python脚本下载固件
- Arduino远程编程和ESP8266编程 -据我了解,此处不做详细介绍,其中一个Arduino GPIO连接到RESET。首先,指示微控制器自行重启,然后开始下载固件
- ESP8266-transparent- bridge-用于ESP8266的固件,通过模块进行透明Wi-Fi-UART桥,支持用于控制GPIO2的AT命令。作者建议按Arduino上的Reset(重置)按钮,然后使用-c avrisp和-P net:xxxx:23个选项运行avrdude,但这可以使AT自动运行。我以此为基础的固件
适配器功能如下:- 六针连接器,带引出线,如FTDI适配器
- 工作在具有3.3V或5V微控制器电源电压的电路中,可由跳线选择
- 稳定运行,最高转速可达57600
- 使用AT命令重启微控制器以进入编程模式
性能在经过测试的中国Arduino pro mini(带有标准引导加载程序)和ATmega8(安装了optboot)上进行了测试,速度为9600、19200和57600。在默认速度(115200)下,控制器拒绝闪烁。对于那些不想焊接和收费的人
如果应用在3.3V电源电路中,只需将esp-01模块连接到Arduino接线就足够了(VCC-> VCC,GND ---> GND,RX-> TX,TX ---> RX,GPIO2 ---> DTR)。该电路板易于连接,并且能够在电压为5V的微控制器的电路中工作。电路图和电路板
使用esp-02类型的模块,但也可以使用普通的esp-01,仅需要稍微重定向板子即可。跳线选择操作模式3.3 / 5V。U1-必要时,稳定器将5V转换为3.3V。R2和R3是分压器,也适用于5V模式。组装后,您需要安装RPOG跳线,并使用相同的FTDI或任何其他UART适配器加载ESP8266-transparent-bridge。单面电路板模板(SVG矢量):
如果需要负极,只需使用文本编辑器将其打开,然后将#000000替换为#FFFFFF,反之亦然。GitHub上的KiCad格式微控制器固件
通常,要下载固件,必须重新启动微控制器。FTDI适配器使这成为DTR腿上的脉冲(连接器中的第一个),它通过电容连接到RESET微控制器的脚。在我们的情况下,显示GPIO2代替DTR(请参见UPD)。要重启微控制器,请使用AT指令“ +++ AT GPIO2 1”,然后使用“ +++ AT GPIO2 0”,将其级别更改为ESP8266 GPIO2。一滴就足以重启控制器。重新引导后,引导程序会立即工作一段时间,并等待通过UART的固件映像,可以使用avrdude实用程序进行传输。以下是控制器闪烁的脚本:#!/bin/bash
HEXILE="firmware.hex"
ADDRESS=x.x.x.x
BAUD=57600
echo "+++AT BAUD $BAUD" | nc $(ADDRESS) 23
echo "+++AT GPIO2 1" | nc $(ADDRESS) 23
echo "+++AT GPIO2 0" | nc $(ADDRESS) 23
avrdude -P net:$(ADDRESS):23 -F -U flash:w:$(HEXILE):i
这些命令可以包含在Makefile中。也可以通过安装nc和avrdude实用程序在Windows中打开无线固件。演示中国Arduino pro mini示例工作的视频
UPD:sav13建议使用esp-link作为ESP8266的固件,它与当前的适配器电路兼容。与ESP8266透明网桥相比,该固件具有多个优势,包括 使用WEB界面进行配置,无需使用AT命令,其他功能在此处进行了详细介绍。