ESP32-C3 | ESP32-S2 | ESP32 | ESP8266 | |
Release Date | 2020 | 2019 | 2016 | 2014 |
CPU | RISC-V 32-bit Single-Core @ 160 MHz | Tensilica Xtensa LX7 32 bit Single-Core @ 240Mhz | Tensilica Xtensa LX6 32 bit Dual-Core @ 160 / 240Mhz | Tensilica LX106 32 bit @ 80 MHz (up to 160 MHz) |
Coprocessor | ULP (RISC-V) | ULP | ||
RAM | 400 KB | 320 KB | 520 KB | 160 KB (36 KB available to user) |
UART | 2 | 2 | 3 | 2 |
SPI | 3 | 4 (OSPI) | 4 | 2 |
Wi-Fi | 802.11b/g/n | 802.11b/g/n | 802.11b/g/n | 802.11b/g/n |
Bluetooth® | 5.0 + BLE | 4.2 BR/EDR + BLE | ||
USB Host | Yes | |||
Ethernet (LAN) | 10/100Mbps | |||
RTC Memory | 8kB | 16kB | 16kB | |
External SPIRAM | No | Up to 128MB | Up to 16MB | Up to 16 MB |
External Flash | Up to 1GB | |||
CAN | Yes | 2.0B | ||
GPIO | Up to 22 | 43 | Up to 32 | Up to 17 |
Temperature Sensor | Yes | |||
Touch sensor | 14 | 10 | ||
I2C | Up to 1 | Up to 2 | Up to 2 | Up to 1 |
I2S | 1 | 1 | 2 | 2 |
ADC | 2 x 12-bit SAR ADCs, up to 6 channels | 12-bit SAR ADC up to 20 channels | 12-bit SAR ADC up to 18 channels | 10-bit 1 channel |
DAC | 8-bit up to 2 channels | 8-bit up to 2 channels | ||
PWM | Up to 6 | 8 | Up to 8 | Only software by timer |
ADMMC | Yes | |||
RMT (Remote Control) | Yes | Yes | ||
LCD Interface | Yes | |||
Camera Interface | Yes | |||
Secure flash | 4096-bit OTP | 4096-bit OTP secure boot | 1024-bit OTP | |
Cryptography support | AES-128/256, RSA Accelerator, SHA Accelerator, Random Number Generator (RNG), HMAC | AES-128/192/256, SHA-2, RSA, RNG, HMAC, Digital Signature | AES, SHA-2, RSA, ECC, RNG |
1. Wi-Fi SoC ESP8266
Đây là dòng Wi-Fi SoC của ESPRESSIF được phát hành năm 2014. Với ưu điểm thời điểm ra mắt là hỗ trợ bộ nhớ flash lớn (lên tới 16MB), RAM nhiều (160kB) đồng thời tốc độ CPU cao và giá thành tốt. Vì vậy dòng SoC này nhanh chóng được nhiều người sử dụng trong các ứng dụng IoT cũng như điều khiển cơ bản.
Tuy nhiên dòng ESP8266 này đã có một số nhược điểm khi các ứng dụng IoT đòi hỏi nhiều hơn:
- Số chân GPIO hạn chế: Mặc dù được giới thiệu có nhiều chân (17 GPIO) tuy nhiên, nhiều chân đã bị sử dụng bởi SPI flash, nên số chân dùng được bị hạn chế
- ADC hạn chế: Bộ ADC chỉ sử dụng được 1 chân, đồng thời chỉ 10 bit và tốc độ hạn chế, đây là nhược điểm mà ESP8266 không thể sử dụng trong các ứng dụng đo lường.
- PWM: dòng MCU này không hỗ trợ hardware PWM, vì vậy cần dùng timer tạo software PWM với rất nhiều hạn chế.
- UART: Mặc dù được quảng cáo là có thể sử dụng 2 bộ UART, tuy nhiên 1 bộ UART đã được sử dụng để flash firmware. Bộ còn lại chỉ được sử dụng chân Tx. Vì vậy khó sử dụng UART để giao tiếp với các module khác cũng như debug.
- RAM: Mặc dù hỗ trợ RAM tới 160kB. Tuy nhiên với các ứng dụng IoT cần bảo mật cao sử dụng TLS/SSL cần khá nhiều RAM thì ESP8266 sẽ khó phát triển.
- Tốc độ xử lý khi sử dụng các kết nối TLS/SSL: Với ứng dụng IoT giao tiếp MQTTS, HTTPS thì việc kết nối của ESP8266 rất chậm vì phải sử dụng các thuật toán ECC, RSA bằng software.
- Bảo mật code: Đây cũng là một trong những nhược điểm mà các dòng MCU đều đã hỗ trợ.
2. Wi-Fi – BLE SoC ESP32-S2/ESP32
Đây là dòng SoC Wi-Fi BLE được ESPRESSIF ra mắt vào năm 2016. Với mục đích khắc phục những nhược điểm tồn tại trên dòng ESP8266. Với số chân nhiều hơn, ADC, PWM, UART mạnh hơn. Bên cạnh đó RAM cũng đã được nâng cấp nhiều hơn, dư dả cho các ứng dụng IoT đòi hỏi phức tạp hơn. Và một thứ quan trọng nhất yêu cầu cho các ứng dụng IoT cần bảo mật chính là hỗ trợ các thuật toán mã hoá như AES-128/192/256, SHA-2, RSA, HMAC, làm tăng tính đơn giản, bảo mật cũng như tốc độ phát triển.
Đồng thời dòng SoC này cũng hỗ trợ BLE, tăng được các ứng dụng hỗ trợ IoT. BLE cũng được sử dụng như 1 giao thức để provision thông tin cho thiết bị (register).
Có thể nói đây là dòng SoC Wi-Fi lý tưởng cho các ứng dụng IoT với tốc độ tốt, khả năng xử lý cao. Với những ứng dụng không cần nhiều tài nguyên như GPIO, ADC, PWM, … thì việc cân đối giữa hiệu năng và giá thành là rất cần thiết.
3. Wi-Fi – BLE SoC ESP32-C3
Đây là dòng SoC Wi-Fi BLE mới nhất hiện nay của ESPRESSIF, được ra mắt vào cuối năm 2020. ESP32-C3 là sử dụng CPU RISC-V (open source – miễn phí) cộng đồng bắt đầu lớn mạnh. Đồng thời với RF hỗ trợ BLE 5 đây là điểm cộng khi so sánh với ESP32/ESP32-S2.
Dòng ESP32-C3 được xem là dòng low cost (giá rẻ) của ESPRESSIF tuy nhiên đây có thể được xem là dòng SoC phổ biến trong thời gian tới với những ưu điểm sau:
- Ngoại vi hỗ trợ mạnh: Bộ ADC, UART, I2C, SPI, … linh động, có thể mapping tới bất kì GPIO nào. Đồng thời số chân GPIO cũng nhiều hơn ESP8266 phù hợp với các ứng dụng cần nhiều GPIO.
- Hỗ trợ BLE 5.0 long range: Đây là một trong những điểm cộng, vì nó có thể dùng trong các ứng dụng kết nối BLE cần khoảng cách xa (thu thập dữ liệu sensor) với chi phí thấp.
- Hỗ trợ thuật mã hoá phần cứng (cho TLS/SSL): AES-128/AES-256 (FIPS PUB 197), ECB/CBC/OFB/CFB/CTR (NIST SP 800-38A), SHA1/SHA224/SHA256 (FIPS PUB 180-4), RSA3072, and ECC. Đây là một trong những thuật toán cơ bản cho kết nối MQTTS, HTTPS cũng như giao tiếp peer to peer.
- Bộ nhớ RAM phù hợp cho các ứng dụng IoT
Qua so sánh cũng như phân tính, ta thấy ESP32-C3 là một trong những dòng SoC Wi-Fi BLE phù hợp cho các ứng dụng IoT, cũng như là dòng MCU thay thế cho các dòng MCU có giá quá cao như hiện nay.
4. Tài liệu
5. Link mua hàng:
ESP8266
ESP32/ESP32S
ESP32 Ethernet LAN8720A Module
ESP32-C3
Kit ESP32-C3 Dual USB Type C JTAG và Serial