发作品签到
专业版

【就是你想要的那种】ESP32S3全功能开发板

工程标签

2.1w
0
0
40

简介

方便平时调试学习ESP32S3的开发板,加入了很多"新颖"的功能。便携易扩展易开发,现已有多人复刻成功。

简介:方便平时调试学习ESP32S3的开发板,加入了很多"新颖"的功能。便携易扩展易开发,现已有多人复刻成功。
星火计划2023

开源协议

GPL 3.0

(未经作者授权,禁止转载)
创建时间:2023-07-27 16:16:21更新时间:2024-05-10 01:18:44

描述

ESP-POCKET2开发板

个人链接:

本文中除去直接贴出来的器件链接,其它基本都可以很轻易在TB和立创商城搜到买到,文末有BOM。有问题来群里轰炸我

  • ①群-735791683🧨

知道大家不喜欢看长篇大论,本文只是着重介绍了一下功能,比如软件功能就不再这里赘述了,可以去GitHub取源码康康(软件的md文档也会抽时间慢慢完善,内容包含涉及到的所有硬件的驱动部分、移植的LVGL框架等等,目前综合的源码只有ESP-IDF,arduino只有各个器件的例程)
image.png

概述

她长这样

  • IMG_20230605_010226.jpg

  • 1A95F929584244D867E003AA67D77BFF.jpg

  • B3B7175000A4E6A72CA752E77A02895A.jpg

  • 52607C65058A15FF6A7E0B9CF1CA7E1A.jpg

  • IMG_20230606_210645.jpg

  • IMG_20230608_011656.jpg

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++的联合编写) 还有很多,画一个模组就能学会做出一个东西,接上电池随身带在身上玩,想想都兴奋啊……

设计概述

设计框图

image.png

组件介绍

  • 主板正面
    QQ图片20231005223220.png
  • 主板背面
    QQ图片20231005223409.png
标号类型组件描述
1MCUESP32S3模组推荐使用ESP32-S3-WROOM-01(N16R8),因为它自带天线,在没有外壳之前不至于老是牵个天线在外面调
2PMICAXP202模组直接使用模块以减少焊接时发生的问题(我主页已经开源过这个了)
3LED侧贴LED连接电源芯片的IO0引脚,可在程序中控制电源芯片使其开关,可作为系统状态提示灯
4LED侧贴LED连接电源芯片的CHGLED引脚,可在程序中控制电源芯片使其由充电检测功能自动控制开关、闪烁(默认)或者手动控制其开关、闪烁
5按键侧贴按键连接电源芯片的PWRON引脚,可通过长按控制开关机,短按、长按触发中断等等(开关机按键时长等等都可在程序中设置)
6连接器TYPE-C 16PUSB-POWER输入接口,连接电源芯片的ACIN引脚,用以向设备提供足够的电源,额定输入为5V2A
7连接器间距:1.25mm 1x2P 卧贴连接座连接电源芯片的BACKUP引脚,该插座用以连接备用RTC电池。电源芯片支持对其进行充电(RTC电池充电电压电流等等都可在程序中设置)
8连接器TYPE-C 16PUSB-DEVICE输入接口,电源部分连接电源芯片的VBUS引脚,用以向设备提供可限流电源(可在程序中设置限流电流,如果不在意影响USB通信可设置为USB直通模式,此时与USB-POWER接口无二)。信号部分通过CH442E芯片连接至MCU(IO19/IO20),上电默认为DEVICE模式,可用于USB下载、模拟U盘等
9连接器TYPE-A 4PUSB-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排针扩展板连接排针,用以连接外部模块、面包板测试等等,引出剩余引脚
13USB模式开关CH442E通过IO38切换设备USB工作模式,上电默认IO38低电平,设备为DEVICE模式
14连接器间距:1.25mm 1x2P 卧贴连接座连接电源芯片的VBAT引脚,该插座用以连接主锂电池,可对电池进行全方位监测(电池当前电压电流、充电电压电流、充放电库仑计、低电压报警等等都可在程序中设置)
15电机驱动芯片DRV2605可以驱动LRA线性振动电机与ERM偏心转子振动电机(该路使用LDO3驱动,限流200mA)
16线性振动电机iphone 6Siphone 6S上的线性振动电机,也可以用别家的,自己改下封装啥的就好了。之所以用这个是因为以前TB捡的垃圾实在没地方使
17RTCBM8563高精度低功耗时钟芯片,其它介绍看器件手册
18连接器2.54mm卧贴排针两两一贴,一共八个,用以JTAG调试与TTL下载。只有信号线,没有电源,电源需要经过电源管理模块才可以确保MCU与其通信正常,因此调试时需要务必从USB-POWER口额外供电
19IMU模块或其它模块JY901B模组这里看自己的需求,我这里用的是维特智能的十轴串口模块。相关传感器产品有最低价格二三十的,引脚定义相同,比如正点原子的等等
  • 屏幕扩展板正面
    39dbd8e116915a237f7981a90d1645bb.png
  • 屏幕扩展板背面
    0bc22a9d5d19b6605051df4451b2d687.png
标号类型组件描述
1引脚跳帽用以将IO3连接至LCD_RST或者释放它
2连接器40P/0.5mm抽屉式上接排线座屏幕排线座
3连接器6P/0.5mm翻盖式下接排线座触摸板排线座
4连接器16P/0.5mm翻盖式下接排线座主板连接排线座
5引脚跳帽用以将IO21连接至TP_RST或者释放它

备注:屏幕属于扩展模块,类似功能的扩展板可以自己设计,我使用的是下图的屏幕,价格还凑活(屏幕的排线座,卖屏幕的商家会送你两个,很贴心,但是你最好还是提醒一下他)。屏幕支持多种协议,我这里使用的是4线SPI协议。当然,这个屏幕板子以后还会优化添加其他的一些功能
a561ee48551a60872689248b3825982c.png
购买链接
f9234cdbe87c0a953436aaf449ba9cb3.png

功能简介

  • 除了普通的esp32s3开发板可以做到的所有例程以外,由于搭配了线性电机驱动器,芯片内置了丰富的振动效果库,只需要简单调用函数就可以达到手机般的交互触觉体验,我也编写了综合测试例程用于体验屏幕触摸与振动反馈。例如可以做体感遥控器,游戏机等等
    300c0133d41456037d669f32c6288cd9.png
  • 关于lvgl,除了所有基础控件的例程以及官方测试例程以外,我还移植了百问网lvgl的例程(2048,计算器,画板等等)。还提供了例程告诉你如何从官方图形化设计软件squareline移植代码,让他在esp32上跑起来
  • 关于电源管理芯片,我使用了自己开源工程中的AXP202模块,虽然详细的讲解了使用的方式,但还是有很多小伙伴不知道怎么集成在自己的项目中,因此这块开发板的原理图也给了大家参考。所以在使学习开发板的过程中同样也可以熟悉电源管理模块的使用
    2685f5047d8f49aefc551f1436faf7c4.png
  • USB部分使用了一颗WCH的高速差分模拟开关切换host与device模式,由于电源管理芯片可以自主设置USB输入限流,因此省下一颗限流芯片。当esp32s3控制模拟开关使USB引脚通路连接在如下A口上时,设备此时为host模式。电源管理模块的exten引脚控制A口的电源使能,电源来自电源模块Ipsout引脚的电压,被一颗SY7088芯片升压至5V,以满足外部slave设备的供电需求,实测5V1A运行没有问题(下图为通过USB虚拟串口连接移远BG96-4G&GNSS模块进行AT指令测试)
    3D69ECDDFAF59136AEC162F4F9D902A0.jpg
    当esp32s3控制模拟开关使USB引脚通路连接在如下c口上时,设备此时为device模式,当前模式下esp32s3作为设备可接入电脑进行USB下载,或者作为模拟U盘等等。该功能′可用于开发无线存储设备,Wi-Fi 网卡,LTE MiFi,多媒体设备,虚拟键鼠等应用
    12c5a2b390873d841849f1bbf3065315.png
  • TF卡与屏幕共用SPI信号线,通过CS引脚切换(可能会导致读写TF时屏幕卡顿。之所以这样设计,是因为作为开发板,设计之初是为了添加尽量多的功能,剩下的引脚需要作为I2S使用)
    24b1b47f2f176d70f6712d31c1b4aa5a.png
  • RTC芯片使用BM8563,封装小,走时精准。AXP202的LDO1为RTC电源,处于恒开启状态,可以为RTC芯片提供不间断电源,其BACKUP脚上可接纽扣电池等作为备用RTC电源
    9879a6b9cff64f6b90847e5dcd0eb8fb.png

接口扩展

接口说明:

  • 由于希望兼容更多的屏幕类型与扩展更多的模块等,因此屏幕并没有直接贴在主控板的背面,而是独立一块扩展板出来,主控板只引出接口
  • 主板上的排线只引出了SPI接口、I2C接口与部分电源,如果需要测试MCU/RGB/QSPI等接口屏幕时,需要使用到预留的2.54mm插针孔
  • 为了匹配上下两块板之间的特殊距离,使用加长排针和矮排母,好处是上下都可安装模块,还可以使用加长排针引出测试或者扩展别的功能,一举两得(使用TI开发板时得到的一个灵感)。排针买来需要做一下调整,如下图黑色垫块两端的尺寸:
    A61D293C36E7789A12FC97C39F7E795F.jpg
    E4050334CE9869B1EB95B4CC919C17DF.jpg
  • 排针排母链接
    9a02c25838de27e783f50705eae20a64.png
  • 扩展板安装排母
    7712f68515823506ceca7ec5211a9c63.png
  • 主板正面安装排针(排针长的一端)
    2f9433b77986832d269225033a12bce6.png
  • 主板背面安装排针(排针短的一端,注意黑色垫块在这一面)
    9914ff6d913c61e2b707e575e782c301.png
  • 主板与扩展板组装时(左为主板,右为扩展板,排针未压入,只是做个示范,这样上下长度刚好可以契合)
    f942481c5200b95b6c18ef7f64d60945.png

扩展定义:

  • 2.54mm排针引脚定义如下:
    dd2a59a3f766bf67a54944a194dc7bee.png
  • 16pin 0.5mm fpc翻盖排插引脚定义如下:
    6210125c1ace73707e1391cf55ddb92b.png
  • debug调试接口2.54mm插针引脚定义如下(主板背面):
    d0e875b3edf2db910151845e4103a2de.png
  • 自定义串口模块(GPS,九轴等)焊盘定义如下(主板背面):
    3e8ec5e534582b5aa3aa06407de1ba3b.png
  • 自定义串口模块(GPS,九轴等)扩展焊盘定义如下(主板正面):
    784af7abbbe36d26a5d61a20c3851775.png

复刻与调试

焊接

  • 由于两面都有元器件,所以优先焊接元件多的一面,也就是有esp32s3的一面(正面)
  • 正面焊接使用中温锡即可,除了摆器件有点费眼睛,其他没什么难度,摆完直接铁板烧或者风枪。排线座多上点焊油用烙铁三百多度拖一下就行了
  • 背面焊接时候,一定要固定一下电路板,把正面器件架空。如果你使用风枪把握不住温度,那就用低温锡,以免把正面器件吹化移位了(把握得住就和正面一样就行)

组装

  • 有电源模块的一面向下,有震动电机的一面贴电池,屏幕板朝上安装,四周用铜柱固定,中间层厚度为0.8mm
  • 上为主板,下为屏幕板
    3C1DB66513468D5AF4AD1D55F35BBD88.jpg
  • 左为屏幕板,右为主板,中间可以安装电池
    57C320992AFC6F2D2D366ED291A5FE7D.jpg
  • 电池链接
    b400bb501cb2847e64cf42fee5de7593.png
  • 主板排线链接
    f1d2ecfdab6ca665f86cd2808c09bc6d.png
  • 主板排线座链接(屏幕的排线座,卖屏幕的商家会送你两个,很贴心,但是你最好还是提醒一下他)
    864749a112c2a4390fdc24ec79b5214c.png

注意

  • ⚠️焊接完务必用万用表测量每一路电源对地是否短路,一定要测啊xdm !!!赌狗赌到最后一无所有
  • ⚠️第一次测试的时候一定别接电池 !!!注意安全

调试下载

  • 用USB_power口供电后,axp202会直接启动,不需要按键开机,这时候测试一下各路电压是否正常
  • 下载方式有两种
  • 第一种
    USB直接下载调试方式:拔下USB_power口供电,用USB数据线连接USB_device口与PC

75A269623D82FA541E6C86488F6E1549.jpg

  • 第二种
    USB转ttl&jtag下载调试方式,使用下载器按照引脚标号连接主板的debug接口,之后务必使用USB_power口对设备供电,若接在USB_device口并且当前设备处于device模式时则会抢接口,导致设备反复重连

22A540B8C042C5E568153D409C1A2EA2.jpg

  • 此时电脑就会显示有USB设备接入。使用arduino或者espidf选择好下载方式进行程序的编译烧录即可
  • 成功之后,会在串口监视器中得到调试信息,代表复刻成功。如果显示i2c通信不正常,检查单片机与电源模块的接线方式等等

使用注意事项

  • 有问题请先仔细阅读文档,若未解决,群中问之,详述原因,必答之
  • 电源芯片开机时为默认电压,上电调压成功后若断电,则恢复默认定制电压,请注意,若外接实验模块时电路中存在低于3.3v的器件,务必留意初始电压值
  • 没有外壳时,调试小心排线,别被刮断了
  • 注意用电安全,别把电脑干坏了

展望预告

  • 音频屏幕板

在现在屏幕的基础上,增加音频输入输出部分,后期可以进行语音交互,AI语音对接等等的学习

  • 外壳

保护板子用的,闲了就画

实物展示

  • 正面
    CEF49E5DFC36DC08A325B464BF7B203B.jpg
  • 反面
    8798D2CF9957BDFC03E47E550CFAF3EE.jpg

相关文档

规格书
硬件设计参考
软件参考

写的很匆忙,很多地方没有照顾到,复刻过程遇到问题就在群里问,这里会继续一点点更新。


设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
BOM_PCB_屏幕板(屏幕插针)_2023-05-29.xlsx
116
2
BOM_PCB_主控板(屏幕插针)_2023-05-29.xlsx
113
3
QQ视频20231207045512.mp4
273
4
software.rar
806
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航