简介
本文章为《【单片机嵌入式Arduino实战】手把手做打印机》课程笔记。
开搞
1. 方案化
本次外设方案
-
wifi 芯片做主控
-
电源管理
-
电量检测
-
打印模组
-
USB 转串口 - 下载固件、仿真、日志调试
-
按键、LED 指示灯
常用软硬件接口方案
-
RTOS:实时操作系统
-
LOG:日志
-
GPIO:通用输入输出接口
-
TIMER:定时器
-
QUEUE:队列
-
FS:文件系统
-
NVS:非易失性存储(NVS) 库主要用于在 flash 中存储键值格式的数据
-
UART:通用异步收发器协议是一种简单的串行通信协议,通常用于连接微控制器、传感器和其他设备。UART只有两条信号线(TX和RX),可以使用较慢的波特率进行通信,通常用于短距离通信。
-
I2C:Inter-Integrated Circuit 协议是一种双向串行通信协议,它需要两条信号线(SCL和SDA)来连接主控制器和从设备。I2C通信速度相对较慢,但它可以与多个从设备通信,因此适用于连接多个传感器和其他设备。一般采用一主多从模式,见介绍视频
-
SPI: Serial Peripheral Interface 协议是一种高速全双工串行通信协议,需要至少四条信号线(SCKL、SDI、SDO和CS)来连接主控制器和外部设备。SPI通信速度较快,通常用于连接高速存储器、液晶屏幕和其他需要高速数据传输的设备。见介绍视频
-
HTTP:网络请求协议
-
WIFIAP:WIFI Access Point,将有线转为无线
-
WIFISTA:WIFI Station,客户端
-
Bluetooth:蓝牙
-
UI:可视化界面
2. 外设选型
💡 外设选型应该注意什么?
1、封装(是否好设计?尺寸是否合适?是否好焊接?)
2、方案通用性、稳定性(是否是通用方案?是否方便采购?)
3、电池(容量?充电电流?是否带充放电保护?)
4、主控(主频、RAM、ROM、IO资源是否够?)
主控 WIFI 芯片(ESP32-S)
简介:ESP32-S 是一款通用型 WiFi-BT-BLE MCU 模组,功能强大,用途广泛,可以用于低功耗传感器网 络和要求极高的任务,例如语音编码、音频流和 MP3 解码等。立创商城:https://item.szlcsc.com/265264.html
制造商:Ai-Thinker(安信可)
制造商编号: ESP32-S
封装: SMD
供电范围:供电电压 3.0V ~ 3.6V,供电电流 >500mA
数据手册:
模组内部设计:
·接口定义:
-
EN:高电平:芯片使能;低电平:芯片关闭;注意:不能让 EN 管脚浮空。
-
GPIO:通用输入输出接口
-
ADC: Analog to Digital Converter,模数转换接口
-
DAC: Digital to Analog Converter,数模转换接口
-
RTC_GPIO:Real Time Clock,进入低功耗模式可以使用的 GPIO
USB Type C 接口(20009-UCAF001-X)
立创商城:[https://item.szlcsc.com/3708441.html](https://item.szlcsc.com/3708441.html)制造商:MINTRON(明硕)
制造商编号:20009-UCAF001-X
数据手册:
稳压芯片(XC6210B332MR)
立创商城:[https://item.szlcsc.com/418424.html](https://item.szlcsc.com/418424.html)制造商:TOREX(特瑞仕)
制造商编号:XC6210B332MR
数据手册:
USB 转串口芯片(CH340) - 下载固件、仿真、日志调试
简介:CH340 是一个 USB 总线的转接芯片,实现 USB 转串口或者 USB 转打印口。立创商城:https://item.szlcsc.com/3390257.html
制造商:WCH(南京沁恒)
制造商编号:CH340N
数据手册:
3. 原理图设计
主控与外设对应接口表
💡 ESP32 哪些接口支持 I2C、SPI 可以查看《ESP32 技术规格书》
《ESP32-WROOM-32E、ESP32-WROOM-32UE 技术规格书》

《ESP32 技术规格书》


模块详细设计
主控模块
- 使用了 RC 延时电路,和消抖电路
USB Type C 连接器
- 用于连接电脑,进行充电、下载、调试的接口已跳过 Notion 表格块

电压转换模块
- Type C 端输入电压为 5V,转成 3.3V
USB 转串口模块
防倒灌模块
- USB 向芯片传输消息(防 CH340 有电但 MCU 无电时的外灌)-
USB_TXD 为高电平时,二极管截止,RXD 上拉电阻为高电平
-
USB_TXD 为低电平时,二极管反向导通,RXD 为低低电平
-
芯片向 USB 传输消息(防 CH340 无电但 MCU 有电时的内灌,NMOS 管中 TXD 连 Drain、 USB_RXD 连 Source、 3V3 连 Gate)
-
3V3 为高电平时,MOS 管导通
-
TXD 为高电平时,线路导通,USB_RXD 为 USB 转串口芯片内部上拉电压,为高电平
-
TXD 为低电平时,线路导通,USB_RXD 为低电平
-
如果 3V3 为低电平时,MOS 管关闭,线路关闭,不浪费 CH340 电

Discussion
留言与讨论
想法、补充和不同意见都欢迎。