自己画一块ESP32-C3 的开发板(立创EDA)(PCB到手)

记录一下第一次使用立创EDA第一次设计ESP-C3的开发板
..添加立创EDA导入AD库说明,基本完成原理图设计						2021/11/11  
..开始画PCB,更新部分PCB进度										2021/11/14  
..原理图部分调整,完成PCB布线										2021/11/15
..PCB收尾细节处理(重要),设计完成,发出制板						2021/11/16
..PCB到手,简单图示,添加初步测试说明						 		2021/11/22
..原理图 PWMLED 部分说明修改						 				2021/1/18
..文章细节修改					 								2022/8/8

使用了一些市面上现成的封装好的 ESP32-C3 的开发板,感觉不是很满意,所以自己决定自己画一个开发板。原理图当然还是参考乐鑫的官方文件《ESP32-C3系列芯片硬件设计指南》,但是外设部分还是根据自己的需求对应的放置了一些可能使用的模块,芯片,或者传感器。

以前使用的AD有版权问题,不是免费软件,所以选择了立创 EDA,这也是第一次使用立创EDA来设计,记录一下。

一、立创EDA基本操作

1.1 放置元器件

打开立创EDA登录账号,在原理图右键放置元件:

在这里插入图片描述

输入自己想要的元器件的型号,双击选中就好:

在这里插入图片描述

或者通过左边基础库栏目直接放置,然后修改参数:

在这里插入图片描述

选型

这里选用的是ESP32-C3,我计划使用的是下面那款带内置Flash的,封装是一样的:

在这里插入图片描述

1.2 自己画库

点击文件—— 新建 —— 原理图模块绘制原理图:

在这里插入图片描述

1.3 导入库

上面的步骤折腾了一会,现在重新在不熟悉的工具下画原理图库和封装库,简直是浪费时间,还好发现可以导入库,所以使用了以前的工程导入。

但是需要注意的是,导入Altium Designer的原理图和PCB文件,需要将文件保存为 ASCII格式 的原理图和PCB文件,这个没有截图,盗版的 Altium Designer 我已经不使用了! 原理图和PCB都可以选择另存为 ASCII格式,然后导入的时候按照如下步骤:

在这里插入图片描述

可以选择只导入文件,只提取库,我选了最后一个选项看了下:

在这里插入图片描述

最后成功导入,因为导入的本来就是同一个工程文件下的原理图和PCB,所以导入的库也能够自动关联,我需要的无线模块如下:

在这里插入图片描述

1.4 原理图转PCB

在这里插入图片描述

1.5 PCB设计部分说明

最小间隔:

在这里插入图片描述

切换层:
小键盘 + / -

二、原理图设计

2.1 电源

ESP32-C3 系列芯片的管脚 11 和管脚 17 分别为 RTC IO 输入电源管脚和 CPU IO 输入电源管脚,工作电压范围为 3.0 V ~ 3.6 V。

ESP32-C3 系列芯片的管脚 2、管脚 3、管脚 31 和管脚 32 为模拟电源管脚,工作电压范围为 3.0 V ~ 3.6 V。

在这里插入图片描述

2.2 复位

ESP32-C3 系列芯片的复位可使用 CHIP_EN 管脚。当 CHIP_EN 为低电平时复位。

在这里插入图片描述

2.3 外部晶振

ESP32-C3 系列芯片固件仅支持 40 MHz 晶振。

在这里插入图片描述

2.4 天线

其实天线部分是一个核心部分,需要认真对待,但是这个测试板我目的是为了把ESP32-C3当成替代STM32的一种方案,所以天线部分并没有针对性的去计算,预留了 π 型网络,使用 IPEX 接口:

在这里插入图片描述

2.5 USB

USB使用Type-C接口,毕竟可预见的未来都是Type-C:

在这里插入图片描述

在这里插入图片描述

2.6 电源入口

在这里插入图片描述

2.7 下载串口

U0TXD 线上需串联 499 Ω 电阻用于抑制 80 MHz 谐波。

USB转串口芯片,期初是准备用便宜的CH340C,奈何缺货,因为只是测试样板,后来还是选用了CP2102,虽然贵一些,但是在立创贴片居然是基础库,那么这就特别香了!

在这里插入图片描述

在这里插入图片描述

上图我串口0用了一个跳线帽,因为ESP32-C3只有2个串口,我一个串口用来连接我的一个无线模块,一个串口可能留给传感器,所以这里最终可能使用USB下载,然后串口0连接传感器使用。

图中可以看到使用到了GPIO9这个IO,这是因为这个引脚和ESP32-C3 的启动模式有关系,后面会单独讲解一下启动模式。

图中使用的RTS 和 DTR下载电路对应关系如下(RESET 我们给了上拉电阻,IO9 内部有上拉电阻):

DTRRTS–>RESETIO9
11–>11
00–>11
10–>01
01–>10

官方文档也有说明:

在这里插入图片描述

2.8 ESP32-C3的启动模式

为什么要提启动模式,而且标红,这个和画图至关重要,在官方《ESP32­C3技术参考手册》中关于系统启动模式有介绍,复位释放后,GPIO2、GPIO8 和 GPIO9 共同控制 Boot 模式:

在这里插入图片描述

这3个引脚称为 Strapping 管脚,其中 GPIO9 默认连接内部上拉电阻,如需改变 Strapping 管脚的默认值,用户可以应用外部下拉/上拉电阻,或者应用主机 MCU 的 GPIO 来控制ESP32-C3 上电复位时的 Strapping 管脚电平。复位释放后,Strapping 管脚和普通管脚功能相同。

在这里插入图片描述

简单说明了一下,那么我们对于 GPIO2、GPIO8、GPIO9 就得单独处理一下了

GPIO9直接的电平高低直接关系到启动模式,所以给GPIO9接一个按钮,默认高电平,需要的时候按下按钮变成低电平:

在这里插入图片描述

GPIO2,GPIO8 虽然很多开发板上都没有单独处理,而且也会将其用于普通IO,我这里不使用,直接给一个上拉电阻:

在这里插入图片描述

2.9 ESP32-C3 外设部分

除了上面最小系统必须使用的引脚,我们接下来的外设需要使用其他的IO口,那么如何选择合适的IO口呢,这就得先了解一下ESP32-C3 的所有的IO口功能了,先把我们所使用过的和不准备用的 IO 口标注出来:

在这里插入图片描述

不看不知道,一看吓一跳,怎么只剩下4个IO口了……= =!(后面的使用情况并没有按照上图文字所描述,不愿意再回头去做一次图了,因为有些GPIO还是得用起来,要不然以前那种想法完全不够

在这里插入图片描述

在这里插入图片描述

所以在下面外设部分的设计中,使用了跳线端子连接,方便在需要的时候用于其他功能

先从简单的开始分配,看一下ADC采样能够使用的引脚:

在这里插入图片描述

在这里插入图片描述

在ADC采样部分,我们只用GPIO0,使用ADC1采样做测试。

2.9.1 ADC采样

简单点,光敏电阻,GPIO0,ADC1,通道0:

在这里插入图片描述

2.9.2 PWMLED

LED PWM 可以使用任意 GPIO 管脚,六路独立 PWM 通道,如果按照上面的计划,最后只剩下4个能用,没法玩,所以这里还是参考官方的开发板,PWMLED使用了 GPIO8:

在这里插入图片描述

说明(2022/1/18):当初这里的原理图说的是 PWM LED,使用的是SK6812,其实此部分是有问题的

首先,在SK6812说明文档中,那么需要使用5V供电是比较标准的,手册中的参数:

在这里插入图片描述

其实际测试下来,3.3V直接供电,不带限流电阻,发现是可以正常运行的,但是建议还是使用5V带限流电阻来使用:

在这里插入图片描述

再次,学习测试 ESP32-C3 过程中,发现在ESP32-C3的示例中 SK6812 的调光并不是用 PWM 来实现的,而是使用了 ESP32-C3 内部的RMT 红外遥控 (RMT) 来实现。

测试拍了几张图片:

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

具体请参考博文:ESP32-C3 学习测试(五、RMT应用 — SK6812全彩RGB LED灯驱动测试)

当然,PWM能不能实现 SK6812 调光呢?当然是可以的,只是需要自己研究下驱动,对于初学者来说,实现起来可能会比较困难,所以还是等到熟悉了以后再来说明。

2.9.3 串口外设1- U1连接无线模块

是自己需要用到一个868的无线射频模块,Enocean模块,使用第二个串口,这里需要用2个IO口,下面的I2C还需要用2个IO口,真的是不太方便……,所以最后还是需要使用不准备用的几个IO口。

这里使用GPIO4、GPIO5作为与Enocean模块通讯的串口,但是考虑到引脚的复用,使用了跳线帽,防止后期需要用于其他功能,方便飞线:

在这里插入图片描述

2.9.4 串口外设2- U0连接传感器

串口通讯的传感器模块我开始已经想好了,使用的是下载串口 U0TXD,预留了跳线帽,这个后期测试的时候用传感器飞线测试,这里就不把传感器画上去了。

2.9.5 SPI外设

我计划选用的型号是内置Flash的,所以上面设计中并没有按照官方手册放置片外Flash,但是这里我把SPI Flash当做一个外设,来测试 ESP32-C3 的 SPI的应用。这个Flash 和 保存代码的Flash是不一样的,计划使用SPI2。

ESP32-C3 系列共有三个 SPI(SPI0、SPI1 和 SPI2)。SPI0 和 SPI1 只可以配置成 SPI 存储器模式,SPI2 既可

以配置成 SPI 存储器模式又可以配置成通用 SPI 模式。

  • SPI 存储器 (SPI Memory) 模式
    SPI 存储器模式(SPI0,SPI1 和 SPI2)用于连接 SPI 接口的外部存储器。SPI 存储器模式下数据传输长度
    以字节为单位,最高支持四线 STR 读写操作。时钟频率可配置,STR 模式下支持的最高时钟频率为 120
    MHz。
  • SPI2 通用 SPI (GP-SPI) 模式
    SPI2 作为通用 SPI 时,既可以配置成主机模式,又可以配置成从机模式。主机模式和从机模式均支持双
    线全双工和单线、双线或四线半双工通信。通用 SPI 的主机时钟频率可配置;数据传输长度以字节为单
    位;时钟极性 (CPOL) 和相位 (CPHA) 可配置;可连接 GDMA 通道。

但是官方资料中有这么一段:
在这里插入图片描述

所以即便我们使用内部带Flash的芯片,这些IO也和内部的Flash连接上了,不建议用于其他功能

说了一大堆,这样子SPI还用不了了,SPI设备通讯一般至少需要4根线,SCLK, MOSI,MISO,CS,这4根线一用,没位置了( 因为不熟悉复用功能,而且对 ESP32-C3 使用也是不熟悉,在不熟悉的前提下,设计以保险稳定为主,不要一味的贪图功能多,在后期熟悉芯片以后,可以针对性的复用引脚)。

这里我们的SPI外设部分就不占用其他引脚放了,但是我们把 SPI Flash 设计上去,到时候不焊接就可以:

在这里插入图片描述

2.9.6 I2C外设

用常用的HTU21D温室度传感器,ESP32-C3的 I2C 任意 GPIO 管脚 一个 I2C 通道,支持主机或从机模式,我这里选用GPIO3和 GPIO10:

在这里插入图片描述

2.9.7 用户按钮和LED

按钮:GPIO7
LED:GPIO1
(后来设计的时候看到有位置,加了一个电源指示灯。)

在这里插入图片描述

2.9.8 剩余IO

当初还以为有多少剩余IO = =! 我们现在看来没有剩余的IO,但是我还是选用了一些引脚用排针引出来测试,比如:

  • 根据GPIO2、GPIO8、GPIO9观察复位后进入的不同模式。
  • USB口启动后用于其他功能以后会怎样?
  • 串口0先下载以后,再用作其他功能是否可以?
  • SPI Flash使用的引脚想了想,还是不要动了,这几个引脚以后就不用!
  • GPIO4、GPIO5、GPIO6、GPIO7调试接口能不能用起来?

虽然有些地方用了排针,这些个IO还是单独再引出一遍:

在这里插入图片描述

2.10 完成原理图

第一次使用立创,没有太讲究原理图的布局分块,但是还是得夸一下,操作确实挺简单的,放一张全图:

在这里插入图片描述

三、PCB设计

虽然嘉立创现在4层板打样也便宜,但是我这次觉得还是计划画双层板子。理由就是:

如果我画双层板子有信号问题(大多情况下是这种问题),那么我可以根据测试修改;
如果我画4层板子没有问题,不能保证以后应用画双层板没有问题,因为普通应用,四层板成本还是太高了;

3.1 整体布局

PCB设计部分我尽量一部分一部分说明,原理图生成PCB以后,第一得考虑的就是各个部分的大概布局了,我简单移动了几个部分,大概的布局:

在这里插入图片描述

板子的大小长宽根据后期布线的时候需要调整,现在板子88mm * 73mm,太不合适了(不合适的原因就是至少要个整数吧= =!)

整理布局简单介绍一下,ESP32-C3 需要接天线,天线部分尽量不能有元器件,铜皮也尽量不要覆盖,所以选择边缘角落是比较合适的,右边的U6也是无线射频芯片,需要有天线,同理所以也是放边缘角落。

电源入口两个USB口肯定是并排防止在一端,因为两个射频芯片确定了位置,在上端,所以USB放在下面,因为两个USB都是需要和ESP32-C3连接通讯的,所以自然选择靠近ESP32-C3的位置,那就是左边,所以USB放在了左下角,然后3个按钮自然在右下角了(虽然按钮也是需要和ESP32-C3连接的,但是按钮的高低先平信号相对USB的信号,优先级肯定更低了)。

折腾了一会,看了几根线,发现有点问题,主要是看ESP32-C3的IO口和USB口上面那样布局,太远了了,而且双层板过孔太多,USB通讯线路不太完美,换了一个布局:

在这里插入图片描述

3.2 芯片外围

先把芯片附近的天线,晶振,Flash画好:

在这里插入图片描述

3.3 USB接口

然后和芯片通讯的USB接口画好:

整个板子是USB口供电的,供电部分通过D2、D3出来,目前暂时放在那个位置;
CP2102部分还有一个3.3V的电源需要过来;
还有芯片的 GPIO9 和 RESET 引脚需要和 CP2102 上边的2个三极管链接。

在这里插入图片描述

3.4 电源和按钮

画完USB,把按钮和电源入口画一下,3.3V电源出口部分电路后期会根据走线的情况做调整:

在这里插入图片描述

3.5 剩余元件再次布局

完成上述步骤以后,余下的东西不太多了,可以相关的元器件一块一块的摆放,再次进行整体的布局:

在这里插入图片描述

3.6 完成布线

折腾了有一阵子,布线基本完成,除了GND还没有处理(铺铜打孔):

在这里插入图片描述

3.7 细节处理收尾

接下来的步骤就不一步一步贴图说明了,收尾根据自己的习惯完成下列各个步骤

1、元器件丝印摆放好;
2、禁止铺铜区域设置好;
3、需要开孔区域设置好;
4、丝印添加;
5、PCB边框处理;
6、铺铜;
7、根据铺铜情况添加地孔;
8、添加地孔;
9、加泪滴;
10、检查DRC,修改错误;

在这里插入图片描述

最后完成效果图:

在这里插入图片描述

3.8 3D效果图

最后完成的3D效果图,立创本身的元器件都有3D封装,有些元器件自己后来修改的没有3D效果:
可以看到左边还算是比较充实,右边有点空洞,感觉还能再塞一两个模块;

左下角 TX0 和 RX0 排针很扎心,因为排针太靠近天线会影响天线性能,排针本身就相当于小天线;
背面没有放置元器件,能放在一面绝不放两面;

放了个博客二维码,好像扫不出来啊= =!;

简单看看:

在这里插入图片描述在这里插入图片描述

最后检查一遍,然后发出制板,后续等板子到手更新实物图。

至此,自己画的ESP32-C3测试板子全部完成。

四、PCB到手

4.1 PCB实物图

贴片本身贴好了一部分,然后自己焊接了一部分,简单看看:

在这里插入图片描述

在这里插入图片描述

4.2 初步测试结果

一键点亮,板子没有问题,简单测试了几个功能:

1、LED测试正常,串口下载正常,后续的测试会搭建好开发环境一步一步来;

2、USB下载不了,在Arduino下不会设置 = =!

查看资料才知道目前只在 esp-idf master 版本上支持 USB 下载方式。
而且需要软件配置,默认都是使用串口下载,后面我会把开发环境搭建好,使用 ESP-IDF 开发。

3、WIFI 测试正常

测试程序如下:

在这里插入图片描述

测试结果:

在这里插入图片描述

注意! wifi结果是正常的,但是我修改了一个地方,当初设计的时候,天线 π 型网络部分我预留的匹配电容是20pF焊接上去了,但实际上没有计算匹配值根本不能确定大小或者是否需要,不能焊接上去,开始怎么都连接不上,才想起来焊接了匹配电容,去掉后就正常了

在这里插入图片描述

4、蓝牙测试正常

蓝牙测试找了一个扫描 iBeacon 的程序:

在这里插入图片描述

测试结果如下,确实能够正常扫描到周边环境的iBeacon设备:

在这里插入图片描述

测试图:

在这里插入图片描述

推荐阅读:

ESP32-C3 VScode开发环境搭建(基于ESP-IDF—Windows和Ubuntu双环境)

ESP32-C3 应用程序的启动流程

认识 ESP-IDF-v4.3+工程结构(ESP32-C3应用调整示例)

ESP32-C3入门教程 应用 篇(实例一、通过MQTT协议连接 ONENET 平台

  • 100
    点赞
  • 407
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 46
    评论
目前基于图像处理使用市场上监控摄像头二次开发的案例很多,包括海康威视萤石开源摄像头;还有使用自带FIFO的OV7725或者OV7670摄像头模块结合stm32进行图传;还有OPENMV+OV7725的图像处理方案;还有一种使用MIPS架构的路由器芯片例如RT5350加免驱MPJG摄像头方案。每一种方案价格都要达到50块以上,因为除了购买摄像头之外还有购买单片机,成本降不下来。 好消息的是,乐鑫科技推出的ESP32芯片能满足图传的需求,某宝基于该芯片出售的ESP32-cam摄像头模块能满足图传的需求,最低价格26块能买到手,性价比相当高,ESP32的运行速度和wifi速度都比ESP8266高。26块集成了ESP32最小系统板和OV2640摄像头和板载蓝牙wifi天线,买了也不亏,一个好点的USB摄像头都不只这个价格了!为啥很少人使用呢?原因是入门比较麻烦。要是使用乐鑫idf去搭建开发图传,很麻烦,很难成功。 国内某个测评网有详细简介:https://post.smzdm.com/p/amm03d0d/ 模块原理图如下: 模块的全家福如下: 该模块在某宝很多家店铺有售,至于代工厂估计有很多家,但是根据原理图就那么多IO口,资料都是通用的。 经过我自己个人努力,半年时间内掌握了ESP32图传技术,采用的是Arduino开发环境开发,很多情况下使用库函数来快速实现图传的功能。搭建开发环境也花了不少时间,后面根据一个教程搭建成功了。 搭建视频链接:https://pan.baidu.com/s/1_xYw-Mg3LPb5vqMuVgiD2A 提取码:qdl2 搭建软件及素材:链接:https://pan.baidu.com/s/1eIES_hDWNgr5lZD4akP9Jw 提取码:zrwu 最后是我根据搭建环境自带的图传源码修改裁剪后的图传源码(在最后免费下载),该源码是我将三四个源码文件裁剪修改合成一个源码文件,实现了图传功能,代码精简利于阅读和学习,先进行配置和运行的说明: (1)整个工程就是一个9kb的源码,名字叫websocket.ino文件,然后修改热点的名称和密码: (2)找一个CH340的USB转TTL电平的模块,某宝几块钱有卖的,按照下图接上模块: 右边的模块就是USB转TTL模块,主要是用来下载程序和串口调试,左边接ESP32模块,右边接电脑。 个人建议给cam模块供电压5V在第一张原理图左下角的端口供电,免得电源不足,不要接错了! UoR就是RX端 UOT是TX端 这两个端跟CH340的RX、TX交叉连接,如图示 将IO0端口与GND连接上之后就可以马上下载程序了: (3)用Arduino下载程序:(如果下载过程中出现失败,可以尝试按下模块的RST按键) (4)创建一个热点,名称和密码都与(1)的步骤相同,让ESP32的wifi能连上,我就用笔记本电脑创建了一个热点,然后打开串口Arduino监视器或者打开一个串口调试助手,打开电脑与CH340链接的串口,拔掉cam模块中IO0与GND链接的线(第三张图灰色的线,不断开就不能启动程序只能不断下载),再按下一次cam模块的RST按钮松开,如下图: 从图上看出,RST按下时,第一次程序运行不对,第二次运行正确了,打印出IP地址。右下角显示有设备连上热点。多试试几次就能成功的! (5)打开谷歌浏览器,输入网址串口打印的网址:172.25.139.2(个人具体IP看打印为准)就可以看到摄像头采集的视频流,相当流畅,如下图所示:(其他浏览器可能失败) 由于摄像前面的保护膜没有撕掉,所以有点模糊,视频还是很流畅的。 总结:该项目演示了用ESP32作为一个STA模式连上路由器或者笔记本热点,在同一个局域网环境下用浏览器登录ESP32的IP地址就可以收看ESP32摄像头采集下来的图像信息。后期会陆续发布根据此源码升级成视频监控小车、视频监控智能控制摄像头、视频监控系统和手机客户端图传、stm单片机图传接收、机器人视觉人脸签到系统、远程MQTT图传手机app接收、局域网javaweb显示图传、等等项目,敬请期待。
ESP32-S3开发板有多种选择,以下是几款常见的开发板: 1. ESP32-S3-DevKitC-1:这是官方正品开发板,价格较高,但质量有保证,适合入门学习ESP32S3。\[1\] 2. WeAct ESP32-S3核心板:这款开发板价格较低,约为官方开发板的一半,但引脚兼容性较好,性价比较高。\[1\] 3. ESP32-S3-DevKitC-1 ESP32-S3核心板:这款开发板价格与WeAct相同,引脚兼容性也很好,性价比较高。\[1\] 4. ESP32-S3 LVGL 核心板SP 开发板:这款开发板与官方价格相近,但集成了SD卡槽、数字麦克风和一个1.3寸TFT屏幕,性价比较高。作者还提供了不少IDF开发方式的例程和视频,方便学习。\[1\] 5. Freenove ESP32 S3 WROOM开发板:这款开发板与官方价格相近,但集成了SD卡槽和摄像头,并配备了一个1G的SD卡和一个读卡器,性价比较高。适合使用Arduino和Micropython进行开发,对初学者比较友好。\[1\] 以上是一些常见的ESP32-S3开发板选择,具体选择可以根据自己的需求和预算来决定。\[1\] #### 引用[.reference_title] - *1* [第二章 ESP32S3介绍](https://blog.csdn.net/weixin_38476200/article/details/130248490)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [启明智显分享|基于ESP32-S3方案的4寸86盒开发板快速开发及烧录](https://blog.csdn.net/ami82/article/details/126874117)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 46
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

矜辰所致

您们的鼓励是我奋斗的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值