
【就是你想要的那种】ESP32S3全功能开发板
简介
方便平时调试学习ESP32S3的开发板,加入了很多"新颖"的功能。便携易扩展易开发,现已有多人复刻成功。
简介:方便平时调试学习ESP32S3的开发板,加入了很多"新颖"的功能。便携易扩展易开发,现已有多人复刻成功。开源协议
:GPL 3.0
(未经作者授权,禁止转载)描述
ESP-POCKET2开发板
个人链接:
- 🎈 GitHub个人主页(本次设计的软件部分在这里)
- 🍤 Gitee个人主页(同步更新GitHub里的内容)
- 📺 b站个人主页(本次设计的视频在这里)
- 🎫 在线BOM(朋友开发,和ibom一样,但是是在线的,并且手机也可以浏览)
本文中除去直接贴出来的器件链接,其它基本都可以很轻易在TB和立创商城搜到买到,文末有BOM。有问题来群里轰炸我
- ①群-735791683🧨
知道大家不喜欢看长篇大论,本文只是着重介绍了一下功能,比如软件功能就不再这里赘述了,可以去GitHub取源码康康(软件的md文档也会抽时间慢慢完善,内容包含涉及到的所有硬件的驱动部分、移植的LVGL框架等等,目前综合的源码只有ESP-IDF,arduino只有各个器件的例程)
概述
她长这样
OK,如果她成功的引起了你的注意,那么就继续往下看叭
写在前面
- 文档鸽🕊️了有好长一段时间了,由于最近忙的抽不开身,索性今天熬夜给他写完了
- 屏幕的板子还会继续优化,加入音频编解码等等功能(现在屏幕板只有屏幕,使用没有任何问题,就是没有额外的组件),大约十月后会开源音频相关的软硬件
- 软件部分过段时间扔到GitHub开源,应该会再写一篇markdown整理一下,综合软硬件的演示视频
- 该设计从初期查阅资料到完成共半年时间。初衷是希望做一个比较全能且称手的开发板用以自己平的学习,并且将我学习的过程完整的展示出来,帮助大家缩短入门时间,降低门槛
- 个人精力不足过程中难免有小错误,请大家积极批评指正与提问,这样我就可以持续完善改进这个文档
- 本项目也将参加2023星火计划,请大家不要吝啬手里的点赞收藏哈!制作不易,非常不易……
设计简述
- 我为什么要做他:
初衷是希望用她系统的学习esp32s3。做他之前我没有接触过esp32s3,也完全不会lvgl,简单的接触过espidf。在完成这个设计之后,不仅完成了软件方面的学习任务,完全熟悉lvgl的编程思路和目录结构,会写cmake,以及如何把arduino库移植到idf,如何写自己的组件等等,还提高了硬件设计能力与整体项目的设计能力,收获颇丰。硬件断断续续花了三个月完成,软件部分从不会到熟练运用花了两个月,希望大家使用这块板子之后都可以和我一样收获满满
- 他有什么亮点:
一些很美妙的小功能,比如电源管理模块可以提供全面的电源信息,包括且不限于各路可调的电压电流,多路ADC电压电流读取,电量库仑计,USB限流,可调的电池充电电压,全方位电池保护,长按开关机等。USB的host与device模式可以随意切换,host模式A口具有独立可控的供电。一颗TI的DRV2605 ERM(偏心转子)&LRA(线性谐振)振动电机驱动芯片,具有多个内置振动效果库,包含上百种效果,轻易就可以实现手机般的人机交互振动触觉。全功能全GPIO引出,可以轻易地衔接自定义模组模块,高自由度,功能全面,免去测试学习时的痛苦。全套资料,软硬件全开源,公开自己的学习过程
- 使用它你将经历与收获什么:
你将一步步入门LVGL的使用(控件设置,学习其文件结构,UI设计,官方界面设计软件源码移植,图像处理等);esp32s3的使用(硬件功能,模组特性,WiFi&蓝牙等);espidf的使用(freertos任务,cmake编写,编写自己的组件,移植arduino库成为组件,c/c++的联合编写) 还有很多,画一个模组就能学会做出一个东西,接上电池随身带在身上玩,想想都兴奋啊……
设计概述
设计框图
组件介绍
- 主板正面
- 主板背面
标号 | 类型 | 组件 | 描述 |
---|---|---|---|
1 | MCU | ESP32S3模组 | 推荐使用ESP32-S3-WROOM-01(N16R8),因为它自带天线,在没有外壳之前不至于老是牵个天线在外面调 |
2 | PMIC | AXP202模组 | 直接使用模块以减少焊接时发生的问题(我主页已经开源过这个了) |
3 | LED | 侧贴LED | 连接电源芯片的IO0引脚,可在程序中控制电源芯片使其开关,可作为系统状态提示灯 |
4 | LED | 侧贴LED | 连接电源芯片的CHGLED引脚,可在程序中控制电源芯片使其由充电检测功能自动控制开关、闪烁(默认)或者手动控制其开关、闪烁 |
5 | 按键 | 侧贴按键 | 连接电源芯片的PWRON引脚,可通过长按控制开关机,短按、长按触发中断等等(开关机按键时长等等都可在程序中设置) |
6 | 连接器 | TYPE-C 16P | USB-POWER输入接口,连接电源芯片的ACIN引脚,用以向设备提供足够的电源,额定输入为5V2A |
7 | 连接器 | 间距:1.25mm 1x2P 卧贴连接座 | 连接电源芯片的BACKUP引脚,该插座用以连接备用RTC电池。电源芯片支持对其进行充电(RTC电池充电电压电流等等都可在程序中设置) |
8 | 连接器 | TYPE-C 16P | USB-DEVICE输入接口,电源部分连接电源芯片的VBUS引脚,用以向设备提供可限流电源(可在程序中设置限流电流,如果不在意影响USB通信可设置为USB直通模式,此时与USB-POWER接口无二)。信号部分通过CH442E芯片连接至MCU(IO19/IO20),上电默认为DEVICE模式,可用于USB下载、模拟U盘等 |
9 | 连接器 | TYPE-A 4P | USB-HOST输出接口,电源部分由电源芯片的IPSOUT引脚升压而来,用以向外部设备提供足够的电源,测试过的最大输出为5V1A(可在程序中通过控制电源芯片的EXTEN引脚控制电源开关)。信号部分通过CH442E芯片连接至MCU(IO19/IO20),IO38高电平时切换该模式,可用于读取外部输入输出设备、键盘鼠标、4G、GNSS等等 |
10 | 卡槽 | TF卡槽 | 与屏幕共用SPI协议,SD_CS为IO14 |
11 | 连接器 | 16P/0.5mm翻盖式下接排线座 | 扩展板连接排线座,用以连接外部模块,引出I2C、SPI协议与两路电源 |
12 | 连接器 | 2.54mm排针 | 扩展板连接排针,用以连接外部模块、面包板测试等等,引出剩余引脚 |
13 | USB模式开关 | CH442E | 通过IO38切换设备USB工作模式,上电默认IO38低电平,设备为DEVICE模式 |
14 | 连接器 | 间距:1.25mm 1x2P 卧贴连接座 | 连接电源芯片的VBAT引脚,该插座用以连接主锂电池,可对电池进行全方位监测(电池当前电压电流、充电电压电流、充放电库仑计、低电压报警等等都可在程序中设置) |
15 | 电机驱动芯片 | DRV2605 | 可以驱动LRA线性振动电机与ERM偏心转子振动电机(该路使用LDO3驱动,限流200mA) |
16 | 线性振动电机 | iphone 6S | iphone 6S上的线性振动电机,也可以用别家的,自己改下封装啥的就好了。之所以用这个是因为以前TB捡的垃圾实在没地方使 |
17 | RTC | BM8563 | 高精度低功耗时钟芯片,其它介绍看器件手册 |
18 | 连接器 | 2.54mm卧贴排针 | 两两一贴,一共八个,用以JTAG调试与TTL下载。只有信号线,没有电源,电源需要经过电源管理模块才可以确保MCU与其通信正常,因此调试时需要务必从USB-POWER口额外供电 |
19 | IMU模块或其它模块 | JY901B模组 | 这里看自己的需求,我这里用的是维特智能的十轴串口模块。相关传感器产品有最低价格二三十的,引脚定义相同,比如正点原子的等等 |
- 屏幕扩展板正面
- 屏幕扩展板背面
标号 | 类型 | 组件 | 描述 |
---|---|---|---|
1 | 引脚 | 跳帽 | 用以将IO3连接至LCD_RST或者释放它 |
2 | 连接器 | 40P/0.5mm抽屉式上接排线座 | 屏幕排线座 |
3 | 连接器 | 6P/0.5mm翻盖式下接排线座 | 触摸板排线座 |
4 | 连接器 | 16P/0.5mm翻盖式下接排线座 | 主板连接排线座 |
5 | 引脚 | 跳帽 | 用以将IO21连接至TP_RST或者释放它 |
备注:屏幕属于扩展模块,类似功能的扩展板可以自己设计,我使用的是下图的屏幕,价格还凑活(屏幕的排线座,卖屏幕的商家会送你两个,很贴心,但是你最好还是提醒一下他)。屏幕支持多种协议,我这里使用的是4线SPI协议。当然,这个屏幕板子以后还会优化添加其他的一些功能
购买链接
功能简介
- 除了普通的esp32s3开发板可以做到的所有例程以外,由于搭配了线性电机驱动器,芯片内置了丰富的振动效果库,只需要简单调用函数就可以达到手机般的交互触觉体验,我也编写了综合测试例程用于体验屏幕触摸与振动反馈。例如可以做体感遥控器,游戏机等等
- 关于lvgl,除了所有基础控件的例程以及官方测试例程以外,我还移植了百问网lvgl的例程(2048,计算器,画板等等)。还提供了例程告诉你如何从官方图形化设计软件squareline移植代码,让他在esp32上跑起来
- 关于电源管理芯片,我使用了自己开源工程中的AXP202模块,虽然详细的讲解了使用的方式,但还是有很多小伙伴不知道怎么集成在自己的项目中,因此这块开发板的原理图也给了大家参考。所以在使学习开发板的过程中同样也可以熟悉电源管理模块的使用
- USB部分使用了一颗WCH的高速差分模拟开关切换host与device模式,由于电源管理芯片可以自主设置USB输入限流,因此省下一颗限流芯片。当esp32s3控制模拟开关使USB引脚通路连接在如下A口上时,设备此时为host模式。电源管理模块的exten引脚控制A口的电源使能,电源来自电源模块Ipsout引脚的电压,被一颗SY7088芯片升压至5V,以满足外部slave设备的供电需求,实测5V1A运行没有问题(下图为通过USB虚拟串口连接移远BG96-4G&GNSS模块进行AT指令测试)
当esp32s3控制模拟开关使USB引脚通路连接在如下c口上时,设备此时为device模式,当前模式下esp32s3作为设备可接入电脑进行USB下载,或者作为模拟U盘等等。该功能′可用于开发无线存储设备,Wi-Fi 网卡,LTE MiFi,多媒体设备,虚拟键鼠等应用
- TF卡与屏幕共用SPI信号线,通过CS引脚切换(可能会导致读写TF时屏幕卡顿。之所以这样设计,是因为作为开发板,设计之初是为了添加尽量多的功能,剩下的引脚需要作为I2S使用)
- RTC芯片使用BM8563,封装小,走时精准。AXP202的LDO1为RTC电源,处于恒开启状态,可以为RTC芯片提供不间断电源,其BACKUP脚上可接纽扣电池等作为备用RTC电源
接口扩展
接口说明:
- 由于希望兼容更多的屏幕类型与扩展更多的模块等,因此屏幕并没有直接贴在主控板的背面,而是独立一块扩展板出来,主控板只引出接口
- 主板上的排线只引出了SPI接口、I2C接口与部分电源,如果需要测试MCU/RGB/QSPI等接口屏幕时,需要使用到预留的2.54mm插针孔
- 为了匹配上下两块板之间的特殊距离,使用加长排针和矮排母,好处是上下都可安装模块,还可以使用加长排针引出测试或者扩展别的功能,一举两得(使用TI开发板时得到的一个灵感)。排针买来需要做一下调整,如下图黑色垫块两端的尺寸:
- 排针排母链接
- 扩展板安装排母
- 主板正面安装排针(排针长的一端)
- 主板背面安装排针(排针短的一端,注意黑色垫块在这一面)
- 主板与扩展板组装时(左为主板,右为扩展板,排针未压入,只是做个示范,这样上下长度刚好可以契合)
扩展定义:
- 2.54mm排针引脚定义如下:
- 16pin 0.5mm fpc翻盖排插引脚定义如下:
- debug调试接口2.54mm插针引脚定义如下(主板背面):
- 自定义串口模块(GPS,九轴等)焊盘定义如下(主板背面):
- 自定义串口模块(GPS,九轴等)扩展焊盘定义如下(主板正面):
复刻与调试
焊接
- 由于两面都有元器件,所以优先焊接元件多的一面,也就是有esp32s3的一面(正面)
- 正面焊接使用中温锡即可,除了摆器件有点费眼睛,其他没什么难度,摆完直接铁板烧或者风枪。排线座多上点焊油用烙铁三百多度拖一下就行了
- 背面焊接时候,一定要固定一下电路板,把正面器件架空。如果你使用风枪把握不住温度,那就用低温锡,以免把正面器件吹化移位了(把握得住就和正面一样就行)
组装
- 有电源模块的一面向下,有震动电机的一面贴电池,屏幕板朝上安装,四周用铜柱固定,中间层厚度为0.8mm
- 上为主板,下为屏幕板
- 左为屏幕板,右为主板,中间可以安装电池
- 电池链接
- 主板排线链接
- 主板排线座链接(屏幕的排线座,卖屏幕的商家会送你两个,很贴心,但是你最好还是提醒一下他)
注意
- ⚠️焊接完务必用万用表测量每一路电源对地是否短路,一定要测啊xdm !!!赌狗赌到最后一无所有
- ⚠️第一次测试的时候一定别接电池 !!!注意安全
调试下载
- 用USB_power口供电后,axp202会直接启动,不需要按键开机,这时候测试一下各路电压是否正常
- 下载方式有两种
- 第一种
USB直接下载调试方式:拔下USB_power口供电,用USB数据线连接USB_device口与PC
- 第二种
USB转ttl&jtag下载调试方式,使用下载器按照引脚标号连接主板的debug接口,之后务必使用USB_power口对设备供电,若接在USB_device口并且当前设备处于device模式时则会抢接口,导致设备反复重连
- 此时电脑就会显示有USB设备接入。使用arduino或者espidf选择好下载方式进行程序的编译烧录即可
- 成功之后,会在串口监视器中得到调试信息,代表复刻成功。如果显示i2c通信不正常,检查单片机与电源模块的接线方式等等
使用注意事项
- 有问题请先仔细阅读文档,若未解决,群中问之,详述原因,必答之
- 电源芯片开机时为默认电压,上电调压成功后若断电,则恢复默认定制电压,请注意,若外接实验模块时电路中存在低于3.3v的器件,务必留意初始电压值
- 没有外壳时,调试小心排线,别被刮断了
- 注意用电安全,别把电脑干坏了
展望预告
- 音频屏幕板
在现在屏幕的基础上,增加音频输入输出部分,后期可以进行语音交互,AI语音对接等等的学习
- 外壳
保护板子用的,闲了就画
实物展示
- 正面
- 反面
相关文档
规格书
- ESP32-S3 技术规格书 (PDF)
- ESP32-S3-WROOM-1 1U 技术规格书(PDF)
硬件设计参考
- AXP202电源管理模块开源文档
- esp-box开发板官方文档
- ESP32-S3-USB-OTG开发板官方文档
- ESP32-S3-LCD-EV-Board开发板官方文档
- 乐鑫开发板预览
- LilyGO T-Watch官方文档
软件参考
写的很匆忙,很多地方没有照顾到,复刻过程遇到问题就在群里问,这里会继续一点点更新。
设计图

BOM


评论