任务介绍
本设计是使用ESP32-S3-WROOM-1-N16模组设计一款物联网通信底板,实现联网和MQTT数据上传。底板中需包含稳压、下载电路和UART、SPI、I2C等外设接口。
方案介绍
方案里使用ESP32-S3-WROOM-1-N16模组作为核心元件、配以CH340KUSB转串口设计为串口自动下载电路。使用TO-252-2封装的AMS1117CD-3.3作为LDO 稳压器为ESP32-S3-WROOM-1-N16模组和相关的电路提供3.3V直流电源。底板中引出的引脚中,基本上涵盖了ESP32-S3-WROOM-1-N16模组的所有GPIO功能引脚,方便开发者灵活配置IO口为各种外设、模组提供接口。

模块介绍
根据本次任务要求,我选用ESP32-S3-WROOM-1-N16模组设计一款物联网通信底板,作为物联网开发、学习使用。该通信底板集成了Wi-Fi 和蓝牙功能。为了方便下载程序,使用CH340K的DTR信号和RTS信号,与少量三极管8050和电阻组成自动下载电路。为了方便外界OLED、TFT显示屏,底板提供了专用的I2C接口和SPI接口,同时I2C接口也可以供其他I2C元件、模块使用。
I2C接口说明:
Pin1 - 地
Pin2 - 3V3,由AMS1117CD-3.3提供
Pin3 - SCL,为I2C接口的时钟线,接ESP32-S3-WROOM-1-N16模组的GPIO4
Pin4 - SDA,为I2C接口的数据线,接ESP32-S3-WROOM-1-N16模组的GPIO3
SPI接口说明:
Pin1 - 地
Pin2 - 3V3,由AMS1117CD-3.3提供
Pin3 - SCK,为SPI接口的时钟线,接ESP32-S3-WROOM-1-N16模组的GPIO36
Pin4 - SDO,为SPI接口的数据线,由ESP32-S3-WROOM-1-N16模组输出给外部设备,接ESP32-S3-WROOM-1-N16模组的GPIO35
Pin5 - RESET,复位外部设备,接ESP32-S3-WROOM-1-N16模组的GPIO41
Pin6 - DC,命令寄存器/数据寄存器选择先,接ESP32-S3-WROOM-1-N16模组的GPIO40
Pin7 - CS,外部设备选择允许信号,接ESP32-S3-WROOM-1-N16模组的GPIO42
Pin8 - BLK,接TFT显示屏时,控制显示屏背景灯的控制线,接ESP32-S3-WROOM-1-N16模组的GPIO45
为了方便做最简单的点灯测试,使用ESP32-S3-WROOM-1-N16模组的GPIO8接了电阻和LED,GPIO8低电平时,点亮LED。还有一个LED用于3V3电源的指示灯。底板上还提供了两个按钮,一个是复位按钮,一个是BOOT按钮。
ESP32-S3-WROOM-1-N16模组的DeyDigi连接:
https://www.digikey.cn/zh/products/detail/espressif-systems/ESP32-S3-WROOM-1-N16/16162647
原理图和PCB介绍

原理图
PCB图
3D效果图
两个USB接口使用Micro USB器件,引脚少,方便布线。两个USB的数据线和VBus线上都加了TVS保护。
I2C和SPI接口使用排母,可以直接接插OLED显示屏和SPI接口的TFT显示屏。
ESP32-S3-WROOM-1-N16模组的设计上,没有使用净空方式,而是专门将天线部分悬空处理。
模块主要性能指标和管脚定义
类型 | WiFi物联网通信底板 |
核心 | ESP32-S3-WROOM-1-N16模组 |
内核 | 双核32位LX7处理器 |
时钟频率 | 主频高达 240 MHz |
SRAM | 512K |
Flash | 16MB SPI Flash |
IO数量 | 34 |
板卡尺寸 | 65mm x 45mm |
供电电压 | 4.5V ~ 5.5V |
I2C专用接口 | 提供 |
SPI 接口TFT显示屏接口 | 提供 |
管脚定义
管脚属性 | 管脚名 | 编号 | 编号 | 管脚名 | 管脚属性 |
GND | 地 | 1 | 48 | 地 | GND |
3V3 | 3V3 | 2 | 47 | 3V3 | 3V3 |
I/O | GPIO1 | 3 | 46 | GPIO19 | I/O |
I/O | GPIO2 | 4 | 45 | GPIO20 | I/O |
I/O | GPIO3 | 5 | 44 | GPIO21 | I/O |
I/O | GPIO4 | 6 | 43 | TX0 |
|
I/O | GPIO5 | 7 | 42 | RX0 |
|
I/O | GPIO6 | 8 | 41 | GPIO35 | I/O |
I/O | GPIO7 | 9 | 40 | GPIO36 | I/O |
I/O | GPIO8 | 10 | 39 | GPIO37 | I/O |
I/O | GPIO9 | 11 | 38 | GPIO38 | I/O |
I/O | GPIO10 | 12 | 37 | GPIO0(BOOT) | I/O |
GND | 地 | 13 | 36 | 地 | GND |
3V3 | 3V3 | 14 | 35 | 3V3 | 3V3 |
I/O | GPIO11 | 15 | 34 | GPIO39 | I/O |
I/O | GPIO12 | 16 | 33 | GPIO40 | I/O |
I/O | GPIO13 | 17 | 32 | GPIO41 | I/O |
I/O | GPIO14 | 18 | 31 | GPIO42 | I/O |
I/O | GPIO15 | 19 | 30 | GPIO45 | I/O |
I/O | GPIO16 | 20 | 29 | GPIO46 | I/O |
I/O | GPIO17 | 21 | 28 | GPIO47 | I/O |
I/O | GPIO18 | 22 | 27 | GPIO48 | I/O |
5V0 | VBUS | 23 | 26 | VBUS | 5V0 |
GND | 地 | 24 | 25 | 地 | GND |
板上设置及标识
标记 | 名称 | 默认状态 | 描述 |
LED1 | 3.3V电源指示灯 | 亮 | 上电状态下,常亮 |
LED2 | Blink测试LED | 灭 | Blink测试LED,需要编程 |
SW1 | BOOT按钮 | 常开 | BOOT时使用 |
SW2 | 复位按钮 | 常开 | 复位时使用 |
USB1 | 串口下载用USB |
| 转串口,下载程序用 |
USB2 | 专用USB |
| 底板使用USB键盘、鼠标用接口 |
心得体会
最开始设计USB转串口的时候,选择的是CH340N,因为用习惯了。查资料时,发现CH340N只有RTS,没有DTR。这样的话,在使用Arduino、MPY开发时,是没法实现自动下载的。而诸如ESP32-S3-DevKitC-1这样的开发板使用的是CP2102这样的芯片,不方便自己焊接。而CH340G这样的引脚太多占地方。选来选去选择了CH340K,引脚少,但关键引脚都有。
考虑到这个底板是要自己焊接的,所以选件上基本选择的是尺寸比较大器件,尤其是LED。如果不考虑成本的话,可以考虑让PCB制造厂家帮着焊接贴片件,也就意味着可以选择更小尺寸的贴片件,让其能够底板设计得更小一些。