硬件连接
ESP系列主要有两种模式,运行模式和下载模式,两种模式由IO0的高低电平控制。
ESP32
ESP32的GPIO2连接模组内部flash,如果其他引脚连接正确但是模组没有正常启动,可能就是GPIO2引脚电平不对。
具体可以查阅乐鑫官方ESP32规格书的引脚说明。
模式 | GPIO0 | GPIO2 |
---|---|---|
下载模式 | 低 | 低 |
运行模式 | 高 | 低 |
ESP8266
ESP8266的GPIO15是MTDO引脚,模组启动时GPIO15的电平状态会影响ESP8266的正常启动。如果模组串口打印出现下图信息,那应该是GPIO15的电平不对。
模式 | GPIO0 | GPIO15 |
---|---|---|
下载模式 | 低 | 低 |
运行模式 | 高 | 低 |
ESP32的GPIO2、ESP8266的GPIO15需不需要外部拉低具体要看模组的内置设计,并不是所有的模组都需要外部拉低。
固件烧录
固件烧录方式用得比较多的有如下3种
官方开发环境烧录
安装好开发环境后可以使用命令进行编译和烧录,一般用于开发测试时的烧录。(以ESP32为例,ESP8266类似)
具体的开发环境安装可以参考以下链接
ESP32官方开发环境配置教程
ESP8266官方开发环境配置教程
项目编译好后会输出烧录的固件以及固件的烧录地址(可用于批量烧录),运行make flash命令后即可自动烧录到模组(前提是配置好串口)。
一般会生成3个文件,BootLoader、用户程序固件以及分区表,3个文件都需要烧录才能正常运行。
Arduino IDE烧录
在Arduino的工具栏配置好后点击上传一键编译、烧录,方便快捷,一般用于Arduino开发测试烧录固件。
官方Flash下载工具烧录
这是最常用的烧录方式,用这个工具可以烧录上面两个方式生成的固件。
附下载地址官方Flash下载工具
具体的工具说明压缩包里有,这里就只简述一下过程。
解压运行后需要先选择要烧录的芯片。
然后添加固件、填写烧录地址、选择烧录配置(烧录配置不清楚的话可以直接点DoNotChgBin),最后选择串口,点击烧录,等待烧录完成即可。
上面用官方编译环境生成的固件,把对应的固件以及地址填写正确后即可用工具进行烧录。
填写好固件和对应的烧录地址后,也可以点击工具的CombineBin将固件合成一个,合成的固件一般用0x0地址烧录即可。
用官方工具烧录Arduino固件
值得注意的是,用Arduino IDE生成的固件只有用户程序固件,如果用Flash下载工具烧录这个固件会无法运行正常,因为烧录的固件不完整。
从上面Arduino IDE编译烧录的log我们可以看到一共烧录了4个文件,烧录的地址分别是0xe000、0x1000、0x10000以及0x8000。
根据官方的编译环境编译后生成的文件可以推测出剩下的文件应该是BootLoader、分区表。最后一个是叫app的文件(暂时不知道作用)。
而这些文件都可以从乐鑫官方的github仓库中下载,地址如下
esp-arduino github链接
下载完成后可以分别从tools/partitions/以及tools/sdk/bin下找到这三个文件,然后用Flash工具正确填写地址即可烧录成功。
此为个人学习记录,有错欢迎指出,转载请标明出处。