ESP8285调试记录

article/2025/9/26 19:26:21
  1. 引言
    1.1. 目的
    ESP8285模组ESP-IDF(Espressif IoT Development Framework)进行软件开发。包括编译环境搭建,客制化AT,API开发,调试下载等。

  2. ESP-IDF介绍
    2.1. 概述
    ESP8285和ESP8266的代码是兼容的,8285是内置FlashSPI Mode(设置为DOUT模式),8266需要外挂Flash,两款芯片内置超低功耗 Tensilica L106 32 位 RISC 处理器,CPU 时钟速度最高可达 160 MHz,支持实时操作系统 (RTOS) 和 Wi-Fi 协议栈,可将高达 80% 的处理能力留给应用编程和开发。

2.2. 开发环境
开发工具:

编译器:
Linux 64位系统:虚拟机下载地址(供 64 位 windows 虚拟机客户使用):
http://download.espressif.com/esp_share/env/ubuntu1804.ova

交叉编译工具链:
https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz

下载工具:flash_download_tools_v3.6.8.exe

工程获取
乐鑫将代码及文档存放在在Github上,可用Git工具从以下地址获取获取。
https://github.com/espressif/esp-at

3.1资源需求
 RAM:不小于4Kbytes.
 ROM:不小于128Kbytes.
 堆栈:不小于2Kbytes。
 uart:波特率:115200;数据位:8;停止位:1;校验位:无;流控: 无
 UART_RX:串口数据接收
 UART_TX:串口数据发送
 驱动依赖:MCU使用串口与ESP8285进行通讯,因此WIFI模块的驱动部分需要依赖系统的串口设备。

3.2 功能需求
 实现ESP8285相关的AT指令;提供进行热点连接、扫描、TCP及TCP+SSL的数据通讯功能
 AT指令尽量采用异步的处理方式,方便UI操作。

  1. 设计原理
    模块ESP8285
    RAM:128KB
    ROM: 16Mbit内置SPI Flash
    16MHz Tensilica L106 32 位 RISC 处理器

4.1模块框图
 IO:如下表
功能模块名称 引脚描述 资源需求 G500脚位 IO口模式
ESP8285模块 复位(唤醒深度休眠) WIFI_RST GPIO3 I
串口接收 UART_RX G500_TXD I
串口发送 UART_TX G500_RXD O
下载控制 WIFI_FLASH_BOOT GPIO1 I
电源 WIFI_EN 3.3V电源 I

 引脚说明:
 UART:波特率:115200;数据位:8;停止位:1;校验位:无;流控: 无
 WIFI_RST:wifi进入deep_sleep模式,通过拉低reset脚再拉高唤醒模块
 CHIP_EN: 连接3.3V电源,上电复位

4.3软件框图
软件层次上,将MCU WIFI驱动分成了3层,各层的作用为:
 系统设备层,MCU与ESP8285使用串口通讯,故需要使用系统的串口设备
 外设驱动层,实现对ESP8285的驱动,包括:接收AT并解析,打包AT形式的数据并发送等功能
 外设设备层,将驱动的一些细节进行封装,方便上层调用

AT指令交互:

  1. MCU WIFI设备层的发送接口被调用后,待发送数据被放到发送缓冲中;
  2. MCU WIFI驱动层从缓冲中取出数据,打包成ESP AT指令格式,调用串口设备发送接口,将数据通过串口发出
  3. ESP8285的AT task监听串口数据,解析有效AT指令,区分是客制化AT或ESP平台自带AT

4.4软件实现
平台指令集地址https://github.com/espressif/esp-at/blob/master/docs/zh_CN/get-started/ESP_AT_Commands_Set.md

API文档(部分可能未更新):
https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/api-guides/index.html

SSID编码格式
模组扫描到的中文SSID可能是GBK,也可能是UTF-8,转码操作在ESP8285端完成,MCU发过来的SSID默认编码格式GBK(如果是UTF-8,先转成GBK,目前传过来的统一是GBK)。连接热点的时候先用MCU发送来的SSID在之前的扫描列表中进行匹配(先进行扫描再进行连接,如果扫描到则保存到全局数组中,最大30个),未匹配到,则转成相反的编码(UTF-8)扫描,扫描不到则直接用传下来的SSID编码格式连接。
由于热点连接指令目前采用异步的方式,在发送连接指令时热点未打开的情况下,指令执行完返回了OK,模组进入自动连接流程,这时候热点开启,为防止传下来的SSID编码与热点本身的编码不一致,需要在自动连接时交替转码后连接,否则如果编码格式不对,则会导致在没有重新发送连接指令时,模组一直无法连接上此热点的情况。
在这里插入图片描述
SSL证书文件写入
ESP8285目前使用的是wolfSSL,SDK只提供了相关的lib文件,不便于功能扩展,只能使用平台自带的SSL指令,SSL的证书使用和固件一起烧录的方式加载到模组的FLASH当中,如果我们要在使用过程中修改证书,只能通过客制AT指令将保存在FLASH上的证书进行替换。
FLASH上的三个地址位置分别保存了CA、client_crt和client_key三个证书文件,AT指令修改证书的方案需要用到串口的AT模式和数据模式的切换,即在命令模式发送写证书文件的AT,然后进入数据模式,将证书文件的内容传入并保存在Flash的对应位置,保存成功后返回到命令模式。实现方式乐鑫提供了博文地址:https://blog.csdn.net/espressif/article/details/102777084.

  1. 下载及调试
    在linux环境下,可通过make flash命令进行下载(python脚本)。Window下使用flash_download_tools进行下载。下载时使用的串口和AT指令的串口是同一个,ESP8285 共有两组 UART 口,分别为:UART0 和 UART1,其中,UART1 只有TX功能(GPIO2)。所以只能使用 UART0 作为命令输入口. 由于 ESP8285 UART pin 并不能像 ESP32 那样任意映射,只能使用 GPIO15 作为 TX、GPIO13 作为 RX, 或者使用 GPIO1 作为 TX、GPIO3 作为 RX. 默认 LOG UART 为 UART1, TX 为 GPIO2; AT port UART 为 UART0, TX 为 GPIO15, RX 为 GPIO13.

4.1 flash_download_tools
在这里插入图片描述
MCU的Flash不太够,所以需要裁剪ESP8285的bin文件。主要disable掉一些默认的配置。目前我们修改成了一个合适的sdkconfig,每次出版本时,使用这个sdkconfig替换SDK默认的文件即可。
在这里插入图片描述
下载时,首先通过拉高WIFI_FLASH_BOOT脚进入下载模式,然后拉reset脚复位模块,同时上位机发送sync frame,ESP8285收到
指令操作码如下表:
在这里插入图片描述
在这里插入图片描述
在ESP8285 deep sleep模式下,有时reset进入下载,由于flash未唤醒,会造成写flash失败,为了解决此问题,需要操作相关的寄存器release deep power-down


http://chatgpt.dhexx.cn/article/yYQB9mHS.shtml

相关文章

ESP8285开发套件、比ESP8266好,利用率比ESP-01更好

ESP8285 前言本人微信号:you-yu一、ESP8285和ESP8286?比ESP-01S可用GPIO多二、开发工具?下图是一个3D预览图下面是实物图:ESP8285 开发下载板下面是由ESP8285 开发出来的成品:然后再来两张成品图:总结 前言…

计算机网络(三)—— 数据链路层

本文幕布: 文档链接: https://www.mubucm.com/doc/7psaav2QHtm 密码: 9twi 文章目录 第三章 数据链路层3.0 数据链路层1. 数据链路层的信道类型 3.1 使用点对点信道的数据链路层3.1.1 数据链路和帧1. 链路(link)2. 数据链路(data …

OpenHarmony网络应用开发

总目录: 文档链接: https://mubucm.com/doc/2sINVHMg9Pm 密码: mkxb 本文幕布: 文档链接: https://www.mubucm.com/doc/4hviFn1y1nm 密码: q2pe 课程链接: https://www.bilibili.com/video/BV1tv411b7SA?spm_id_from333.999.0.0 文章目录 …

XRHT系列电钢琴实训室配置方案及清单

建设背景 国家教育部为深入贯彻落实中央有关教育信息化的战略部署,完成《国家中长期教育改革和发展规划纲要(2010-2020年)》确定的教育信息化目标任务、全面深入推进“十三五”教育信息化工作,在《关于“十三五”期间全面深入推进…

【云驻共创】 JAVA常用的开发工具有哪些?

前言 俗话说,工欲善其事,必先利其器。工匠想要使他的工作做好,一定要先让工具锋利。比喻要做好一件事,准备工具非常重要。对于我们做程序员的来说也是一样的,想要提高开发效率,也需要选择好自己的开发工具…

taohui.org.cn建站历程

一直以来都在Qzone、CSDN等上面写博客,偶尔有些想法就在Paas平台上搭建服务,新浪和曾经的google上都用过其appengine。可是在别人的平台上写东西,总归有些不方便,有受制于人的感觉。《深入理解Nginx》这本书的在线支持站点&#x…

64位投影机专业测试软件,软件分享 篇十四:利用投影仪提高生活质量 —— 自用软件推荐...

软件分享 篇十四:利用投影仪提高生活质量 —— 自用软件推荐 2019-12-30 21:08:51 8点赞 121收藏 6评论 自从家里购入了投影仪以后,电视就变成摆设了 。。。本篇分享我自己经常用的几个投影软件产品评测 篇七:NAS影片播放神器 —— 新开发版体验测试V19.0KODI这款播放器相信…

强强联手,丝滑办公新体验!IdeaHub+华为云会议实测

目录 1. 前言 2. 软硬结合,天生一对 3. 全方位功能体验 3.1 IdeaHub接入华为云会议 3.2 随时随地一键开会 3.3 天生高清 3.3.1 高清视频 3.3.2 纯净音质 3.3.3 智能导播、智能音幕 3.4 天生融合 3.4.1 开会白板 3.4.2 无线投屏 3.4.3 一键流转 3.4.4 …

密码学(二月最佳)

《主干目录》 第一代加密 隐藏 第二代加密 移位 替代 同音替代 第三代加密 维吉尼亚加密 第四代加密 Enigma(恩尼格玛机) 第五代加密 DES 第六代加密 RSA 第七代加密 量子加密 密码学数千年的发展史,加密与解密不断博弈。 加密解密算法层出不穷,因此抓住…

【数智化案例展】深农集团——守护深圳“菜篮子”,腾讯安全携手深农集团保供稳价格...

腾讯安全案例 本项目由腾讯安全投递并参与“数据猿行业盘点季大型主题策划活动——《2022中国企业数智化转型升级创新服务企业》榜单/奖项”评选。 数据智能产业创新服务媒体 ——聚焦数智 改变商业 深圳全面升级疫情管控措施后,农产品供应商情况如何,相…

MAXHUB会议平板的无线投屏怎么用?

过去,一个功能完备的会议室中,至少要备齐白板、投影仪、幕布、电脑、音响等设备才能保证会议内容能够完整的展现。因此稍微小一点的会议室就会被塞得满当当的。另外,投影仪受光线影响,还会出现投影不清晰的情况,需要把会议室光线调暗,因此开会时总是黑漆漆的。现在,智能…

如何在Ubuntu上安装OnlyOffice Docs 7.1?

如何在Ubuntu上安装OnlyOffice Docs 7.1? 什么是OnlyOffice Docs? OnlyOffice Docs是一套在线办公软件,可以打开阅读并编辑文档、表格和幻灯片文件,完全兼容开放XML格式Office文档:.docx、.pptx、.xlsx,并…

Java常见工具安装及环境配置

目录 1、JDK安装及配置 JDK安装 2、笔记推荐 MarkDown笔记 Typora 云笔记 语雀 印象 幕布 枫叶云笔记 本地笔记 Sublime Text Notepad 3、MySQL安装及可视化工具 3.1、MySQL安装教程:保姆级教程 3.2、可视化管理工具 5、IDE IDEA 新建工程 导入…

阿里云服务器绑定域名、esc绑定域名、域名备案

准备工作: 1、购买阿里云esc服务器(建议学生认证再买,的确是便宜很多很多) 2、购买域名(建议也在阿里云买,操作的时候可能会方便一些,具体不知道) 3、域名备案(这一步有点复杂,我下面…

疫情之下「在家办公模式」开启,你该选择哪些远程协同工具?

作者 | Aholiab 编辑 | 胡巍巍 来源 | CSDN(ID:CSDNnews) 随着抗击新型冠状病毒感染疫情的不断深入,中国的应对举措受到了国际社会的高度关注。周密部署、亲临一线、精诚团结,成了这次疫情战役的关键总结。除了医护人员…

奉劝那些想涨工资的程序员,这些 IT 大神们都在用的网站,你越早知道越好(建议收藏)!!...

点击关注公众号,回复“1024”获取2TB学习资源! 作为一个程序员、码农、新时代的农民工来说,一些必备的网站(如:搜索引擎、代码管理、技术学习、工具查找、技术博客等)是非常必要的。 所以,今天民…

html入门学习笔记(2)(html整理)

最近使用了一款软件"幕布"最新幕布下载,通过点击此链接注册随机获取高级版升级码,制作出了最近所学的HTML知识脑图,分享如下

PPT制作技术收集

1. 两幅图片同时动作 PowerPoint的动画效果比较多,但图片只能一幅一幅地动作。如果你有两幅图片要一左一右或一上一下地向中间同时动作,可就麻烦了。其实办法还是有的,先安置好两幅图片的位置,选中它们,将之组合起来&a…

Java根据模板导出PPT

如何导出PPT Java生成或者导出PPT的问题,都可以归为一类问题:根据模板导出PPT。毕竟这样做,比直接生成PPT要简单。因为工作中,遇到了要生成PPT的需求,所以做了一个根据模板PPT,生成目标PPT的例子&#xff…

LaTex - PPT 换页动态效果(亲测有效)

1 简介 生成的PDF文件默认是全屏打开。 2 源码 \documentclass[table,CJK]{beamer}%支持中文 \usepackage{ctex} %添加动画 \usepackage{animate}%打开即全屏 \hypersetup{backref,pdfpagemodeFullScreen,colorlinkstrue} \usepackage{hyperref} \hypersetup{pdfpagemodeFull…