文章目录
一、前言
最早接触到乐鑫是ESP8266,然后乐鑫又推出了ESP32,其后几年也持续关注和了解。直到2020年,经过评估后,在公司的项目上使用了乐鑫ESP32-S2。用下来只能用真香来形容,项目上的使用也越来越多,就包含了今天要介绍的ESP32-C3。
相较于国内其他芯片厂家,乐鑫的开发资料齐全、调试方便、SDK完善。其中最值得一提的就是ESP-IDF,优秀的代码风格和软件架构以及集成了众多开发IoT的库。这极大降低IoT开发门槛,减少软件开发不必要的重复造轮子的过程,加快了产品开发。
虽然开发过程简单了,但是开发入门依然有较高的门槛,特别对于习惯使用STM32这样有简单IDE开发的朋友,安装开发环境不再是一路next,其中可能有一些报错。有些人可能到这个步骤就望而却步了。这个系列文章希望在整理回顾的同时也能帮助大家解决开发环境和相关问题。
二、ESP32常用型号对比
系列 | ESP32 | ESP32-S2 | ESP32-C3 |
---|---|---|---|
发布时间 | 2016 | 2020 | 2020 |
CPU | Xtensa® LX6 32 位双核/单核处理器 | Xtensa® LX7 32 位单核处理器 | RISC-V 32 位单核处理器 |
主频 | 240M | 240M | 160M |
超低功耗协处理器 (ULP) | ULP FSM | PicoRV32 内核, 8 KB SRAM,ULP FSM | N/A |
SRAM | 520KB | 320KB | 400KB |
ROM | 448 KB | 128 KB | 384 KB |
片内Flash | 无/2 MB/4 MB不同规格 | 无/2 MB/4 MB不同规格 | 无/4 MB不同规格 |
外部Flash | 最大支持16MB | 最大支持1GB | 最大支持16MB |
外部PSRAM支持 | 最大支持8MB | 最大支持1GB | N/A |
Wi-Fi | 802.11 b/g/n、2.4 GHz | 802.11 b/g/n、2.4 GHz | 802.11 b/g/n、2.4 GHz |
蓝牙 | Bluetooth v4.2 BR/EDR Bluetooth Low Energy | N/A | Bluetooth 5.0 |
ADC | 2*12-bit SAR ADC, 18 channels | 2*12-bit SAR ADC, 20 channels | 2*12-bit SAR ADC, 6 channels |
DAC | 2*8-bit | 2*8-bit | N/A |
定时器 | 4*64-bit通用定时器 3看门狗定时器 | 4*64-bit通用定时器 3看门狗定时器 | 2*54-bit通用定时器 3看门狗定时器 |
温度传感器 | N/A | 1 | 1 |
触摸传感器 | 10 | 14 | N/A |
霍尔传感器 | 1 | N/A | N/A |
GPIO | 34 | 43 | 22 |
SPI | 4 | 4 | 3 |
UART | 3 | 2 | 2 |
I2C | 2 | 2 | 1 |
I2S | 2 | 1 | 1 |
Camera | 1 | 1 | N/A |
RMT(红外遥控器) | 1*8 channels | 1*4 channels | 1*4 channels |
LED PWM | 1*16 channels | 1*8 channels | 1*6 channels |
MCPWM | 2,提供六个 PWM 输出 | N/A | N/A |
USB OTG | N/A | 1 | N/A |
TWAI | 1 | 1 | 1 |
SD/SDIO/MMC主机 | 1 | N/A | N/A |
SDIO从机 | 1 | N/A | N/A |
以太网MAC | 1 | N/A | N/A |
USB串口 | N/A | N/A | 1 |
这三款芯片或模块的成本:ESP32-C3<ESP32-S2<ESP32
三、ESP32与ESP32-C3
在大部分的IoT项目应用中,我们的外设并不复杂,一般就LED、ADC、sensor、按键、红外。这些上述的ESP32芯片无疑基本都可以满足需求。由于在实际应用中,ESP32和ESP32-S2主要差别在于是否支持蓝牙功能和成本,所以本章节主要对比ESP32和ESP32-C3。
在外设都满足的情况下,这时我们的主要评估指标为连接能力、Flash存储、SRAM大小,下图直观对比关键特性。
ESP32 | ESP32-C3 | |
---|---|---|
CPU | 240M 双核XTensa LX6 | 160M 单核 RISC-V |
SRAM | 520KB | 400KB |
Wi-Fi | 802.11 b/g/n、2.4 GHz | 802.11 b/g/n、2.4 GHz |
蓝牙 | Bluetooth v4.2 BR/EDR Bluetooth Low Energy | Bluetooth 5.0 |
外部PSRAM支持 | 最大支持8MB | 不支持 |
根据上述对比,在内部SRAM明确需要外扩支持的情况下,需使用ESP32,比如一些需要驱动分辨率较高彩屏的应用对内存的消耗较大。如果在内部SRAM基本可以满足需求的时候,ESP32-C3的表现优于ESP32。下面引用乐鑫官方的测试数据。
四、总结
综上,在选型时,首先考虑外设是否满足,较常见的比如是否需要支持蓝牙?是否需要I2C驱动传感器?IO口是否够用等。在都满足的情况下,我们再根据应用评估SRAM是否足够?是否需要片外RAM?片内Flash是否足够?如果是模组还会考虑是否有不同配置引脚兼容的模组?最后我们会综合考虑成本、是否标准供货模组(一般供应商的备料较足,同芯片的模组中也可以做到较低成本)、供货周期来确定型号。