自己画一块ESP32-C3 的开发板(第一次使用立创EDA)(更新中...)

Posted 矜辰所致

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自己画一块ESP32-C3 的开发板(第一次使用立创EDA)(更新中...)相关的知识,希望对你有一定的参考价值。

记录一下第一次使用立创EDA第一次设计ESP-C3的开发板
..添加立创EDA导入AD库说明,基本完成原理图设计						2021/11/11  
(这几天工作有点忙,稍等)

用了安信可的ESP32-C3的开发板,跑通了第一个程序。后面测试一些其他功能发现连接串口助手的时候经常一连接就进入程序下载模式,程序都不能正常运行很烦:

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

这也是第一次使用立创EDA来设计,记录一下。以前使用的某D有大家都知道的相关问题。

立创EDA基本操作

放置元器件

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

输入自己想要的元器件的型号,双击选中就好,:
或者通过左边基础库栏目直接放置,然后修改参数:

选型

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

自己画库

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

(折腾了一会,不知道保存到哪里了,换一种方式,后续补充)

导入库

上面的步骤折腾了一会,现在重新在不熟悉的工具下画原理图库和封装库,简直是浪费时间,还好发现可以导入库,所以使用了以前的工程导入。
但是需要注意的是,导入Altium Designer的原理图和PCB文件,需要将文件保存为 ASCII格式 的原理图和PCB文件,这个没有截图,盗版的 Altium Designer 我已经不使用了! 原理图和PCB都可以选择另存为 ASCII格式,然后导入的时候按照如下步骤:

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

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

原理图转PCB

原理图设计

电源

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。

复位

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

外部晶振

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

天线

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

USB

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

电源入口

下载串口

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

官方文档也有说明:

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,我这里不使用,直接给一个上拉电阻:

ESP32-C3 外设部分

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

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

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

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


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

ADC采样

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

PWMLED

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

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

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

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

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

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

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 设计上去,到时候不焊接就可以:

I2C外设

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

用户按钮和LED

按钮:GPIO7
LED:GPIO1

剩余IO

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

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

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

完成原理图

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

PCB设计

虽然嘉立创现在4层板打样也便宜,但是我这次觉得还是计划画双层板子。理由就是:
如果我画双层板子有信号问题(大多情况下是这种问题),那么我可以根据测试修改;
如果我画4层板子没有问题,不能保证以后应用画双层板没有问题,因为普通应用,四层板成本还是太高了;

以上是关于自己画一块ESP32-C3 的开发板(第一次使用立创EDA)(更新中...)的主要内容,如果未能解决你的问题,请参考以下文章

ESP32C3学习记录1——搭建开发环境

ESP32C3学习记录1——搭建开发环境

ESP32C3学习记录1——搭建开发环境

ESP32-C3上手笔记 | 01 - ESP32 C3开发环境搭建(ESP-IDF)

ESP32-C3学习笔记:ESP32 C3 开发环境搭建(ESP-IDF)

合宙ESP32C3基于VSCode PIO Arduino开发框架初探教程