文章目录
- 概要
- ESP8266模块
- 外形尺寸
- 模块原理图
- 模块引脚功能
- CH340G模块
- 外形及其引脚
- 模块引脚功能
- USB TO TTL引脚
- 程序上传
- 接线
- Arduino IDE 安装ESP8266开发板
- Arduino IDE 开发板
- 上传失败
- 上传成功
- 正常工作
概要
使用USB TO TTL(CH340G)将Arduino将程序上传到ESP8266-01模块
ESP8266模块
外形尺寸
模块原理图
模块引脚功能
引脚序号 | 引脚名称 | 类型 | 引脚说明 |
---|---|---|---|
1 | GND | 电源 | 接地 |
2 | GPIO2 | 输入/输出 | 普通GPIO,用作I/O或LED控制 |
3 | GPIO0 | 输入 | 烧录模式选择,低电平进入烧录模式,高电平正常运行 |
4 | RX(GPIO3) | 输入 | 串口接收(UART RX),连接到USB-TTL(如CH340)模块的TX |
5 | VCC | 电源 | 3.3V供电,不能使用5V,否则可能损坏芯片 |
6 | RST | 输入 | 复位引脚,低电平(接地)时复位,松开后启动 |
7 | CH_PD(EN) | 输入 | 使能引脚,必须连接3.3V,否则芯片不能启动 |
8 | TX(GPIO1) | 输出 | 串口发送(UART TX),连接到USB-TTL(如CH340)模块的RX |
CH340G模块
USB TO TTL
外形及其引脚
模块引脚功能
引脚序号 | 引脚名称 | 类型 | 引脚说明 |
---|---|---|---|
1 | GND | 电源 | 公共接地端,直接连接到USB总线的地线 |
2 | TXD | 输出 | 串行数据输出 |
3 | RXD | 输入 | 串行数据输入 |
4 | V3 | 电源 | 在3.3V电源电压时连接VCC输入外部电源 在5.0V电源电压时外接容量为0.1uF退藕电容 |
5 | UD+ | USB信号 | 直接连接到USB总线的D+数据线 |
6 | UD- | USB信号 | 直接连接到USB总线的D-数据线 |
7 | XI | 输入 | 晶体振荡器的输入,连接到晶体谐振器和负载电容器 |
8 | XO | 输出 | 晶体振荡器的输出,连接到晶体谐振器和负载电容器 |
9 | CTS# | 输入 | MODEM联络输入信号,清除发送,低(高)有效 |
10 | DSR# | 输入 | MODEM联络输入信号,数据装置就绪,低(高)有效 |
11 | RI# | 输入 | MODEM联络输入信号,振铃提示,低(高)有效 |
12 | DCD# | 输入 | MODEM联络输入信号,载波检测,低(高)有效 |
13 | DTR# | 输出 | MODEM联络输入信号,数据终端就绪,低(高)有效 |
14 | RTS# | 输出 | MODEM联络输入信号,请求发送,低(高)有效 |
15 | R232 | 输入 | 辅助RS232使能,高有效,内置下拉 |
16 | VCC | 电源 | 正电源输入端,需外接0.1uF电源退藕电容 |
USB TO TTL引脚
引脚序号 | 引脚名称 | 类型 | 引脚说明 |
---|---|---|---|
1 | 5V | 电源 | 提供5V的电源输出,可以为一些需要5V供电的设备供电 |
2 | VCC | 电源 | 通产也是电源引脚,在一些情况下与5V类似,用于提供电源,但具体电压可能根据模块设计有所不同 |
3 | 3V3 | 电源 | 蹄冻3.3V的电源输出,用于给工作电压为3.3V的芯片或模块供电 |
4 | TXD | 输出 | 数据发送引脚,用于将模块的数据发送出去,在与其他设备通信时,将数据从该模块传向其他设备 |
5 | RXD | 输入 | 数据接收引脚,用于接收来自其他设备的数据 |
6 | GND | 电源 | 接地引脚,作为电路的参考零电位,用于建立电路的电位基准 |
程序上传
USB TO TTL连接到计算机USB接口,在设备管理器中会出现串行端口
接线
引脚序号 | ESP8266 | USB TO TTL | 备注 |
---|---|---|---|
1 | GND | GND | |
2 | GPIO2 | ||
3 | GPIO0 | GND | |
4 | RXD | TX | |
5 | VCC | 3V3 | |
6 | RST | 先接到 **GND** 短暂接触一下(复位设备) 立即断开,使其进入烧录模式 | |
7 | CH_PD | 3V3 | |
8 | TXD | RX |
Arduino IDE 安装ESP8266开发板
- 将https://arduino.esp8266.com/stable/package_esp8266com_index.json复制到Arduino IDE -> 首选项 -> 其他开发板管理器地址 -> 确定
- 在开发板管理中安装
esp8266
开发板 - 有可能因为网络原因导致安装失败,自行解决
Arduino IDE 开发板
需要正确选择ESP8266对应的开发板及其串行端口
上传失败
使用Arduino IDE
编写ESP8266
程序后编译上传,若出现下面错误,可能的情况有
- 接线不正确
没有正确的复位设备,在使用RST短接GND的瞬间会看到ESP8266板子的蓝灯会闪烁
. Variables and constants in RAM (global, static), used 31260 / 80192 bytes (38%)
║ SEGMENT BYTES DESCRIPTION
╠══ DATA 1500 initialized variables
╠══ RODATA 2344 constants
╚══ BSS 27416 zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 61043 / 65536 bytes (93%)
║ SEGMENT BYTES DESCRIPTION
╠══ ICACHE 32768 reserved space for flash instruction cache
╚══ IRAM 28275 code in IRAM
. Code in flash (default, ICACHE_FLASH_ATTR), used 303024 / 1048576 bytes (28%)
║ SEGMENT BYTES DESCRIPTION
╚══ IROM 303024 code in flash
esptool.py v3.0
Serial port COM5
Connecting........_____....._____....._____....._____....._____....._____....._____
A fatal esptool.py error occurred: Failed to connect to ESP8266: Timed out waiting for packet header
上传成功
若没有问题,则会出现下面上传信息
. Variables and constants in RAM (global, static), used 31260 / 80192 bytes (38%)
║ SEGMENT BYTES DESCRIPTION
╠══ DATA 1500 initialized variables
╠══ RODATA 2344 constants
╚══ BSS 27416 zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 61043 / 65536 bytes (93%)
║ SEGMENT BYTES DESCRIPTION
╠══ ICACHE 32768 reserved space for flash instruction cache
╚══ IRAM 28275 code in IRAM
. Code in flash (default, ICACHE_FLASH_ATTR), used 303024 / 1048576 bytes (28%)
║ SEGMENT BYTES DESCRIPTION
╚══ IROM 303024 code in flash
esptool.py v3.0
Serial port COM5
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 48:e7:29:6c:a6:4e
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 1MB
Compressed 339296 bytes to 244489...
Writing at 0x00000000... (6 %)
Writing at 0x00004000... (13 %)
Writing at 0x00008000... (20 %)
Writing at 0x0000c000... (26 %)
Writing at 0x00010000... (33 %)
Writing at 0x00014000... (40 %)
Writing at 0x00018000... (46 %)
Writing at 0x0001c000... (53 %)
Writing at 0x00020000... (60 %)
Writing at 0x00024000... (66 %)
Writing at 0x00028000... (73 %)
Writing at 0x0002c000... (80 %)
Writing at 0x00030000... (86 %)
Writing at 0x00034000... (93 %)
Writing at 0x00038000... (100 %)
Wrote 339296 bytes (244489 compressed) at 0x00000000 in 21.5 seconds (effective 126.2 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
上传程序成功后会如果卡在了Hard resetting via RTS pin...
的解决方案
断开 **GPIO0 → GND** 连接(如果仍然接着)
短接 **RST → GND**(复位),然后松开
正常工作
引脚序号 | 引脚名称 | 类型 | 引脚说明 |
---|---|---|---|
1 | GND | 电源 | 接地 |
5 | VCC | 电源 | 3.3V供电,不能使用5V,否则可能损坏芯片 |
7 | CH_PD(EN) | 输入 | 使能引脚,必须连接3.3V,否则芯片不能启动 |
以上供电选择可以使用USB TO TTL、Arduino UNO R4 Minima或者其他外部3.3V电源均可,连接以上ESP8266引脚,可以使用手机或PC搜索到Arduino程序中写的WiFi名称并进行连接,使用USB TO TTL好像有点问题
初此之外,还可以连接USB TO TTL的TXD、RXD
之后,若上传到ESP8266的程序中有输出到串口监视器中的内容的代码,则可以连接Arduino IDE的串口监视器
可以看到对应的输出信息,需要注意的时波特率需要和程序中的一致