ESP32

ESP32 là một series các vi điều khiển trên một vi mạch giá rẻ, năng lượng thấp có hỗ trợ WiFi và dual-mode Bluetooth (tạm dịch: Bluetooth chế độ kép). Dòng ESP32 sử dụng bộ vi xử lý Tensilica Xtensa LX6 ở cả hai biến thể lõi kép và lõi đơn, và bao gồm các công tắc antenna tích hợp, RF balun, bộ khuếch đại công suất, bộ khuếch đại thu nhiễu thấp, bộ lọc và module quản lý năng lượng. ESP32 được chế tạo và phát triển bởi Espressif Systems, một công ty Trung Quốc có trụ sở tại Thượng Hải, và được sản xuất bởi TSMC bằng cách sử dụng công nghệ 40 nm. ESP32 là sản phẩm kế thừa từ vi điều khiển ESP8266.

Tính năng 

Các tính năng của ESP32 bao gồm:

 Bộ xử lý:
 CPU: Bộ vi xử lý Xtensa lõi kép (hoặc lõi đơn) 32-bit LX6, hoạt động ở tần số 240 MHz (160 MHz cho ESP32-S0WD và ESP32-U4WDH) và hoạt động ở tối đa 600 MIPS (200 MIPS với ESP32-S0WD/ESP32-U4WDH)
 Bộ đồng xử lý (co-processor) công suất cực thấp (Ultra low power, viết tắt: ULP) hỗ trợ việc đọc ADC và các ngoại vi khi bộ xử lý chính (main processor) vào chế độ deep sleep.
Hệ thống xung nhịp: CPU Clock, RTC Clock và Audio PLL Clock
 Bộ nhớ nội: 
 448 KB bộ nhớ ROM cho việc booting và các tính năng lõi
 520 KB bộ nhớ SRAM trên chip cho dữ liệu và tập lệnh
 Kết nối không dây:
 Wi-Fi: 802.11 b/g/n
 Bluetooth: v4.2 BR/EDR và BLE (chia sẻ sóng vô tuyến với Wi-Fi)
 34 GPIO pad vật lý với các ngoại vi: 
 ADC SAR 12 bit, 18 kênh
 DAC 2 × 8-bit
 10 cảm biến cảm ứng (touch sensor) (GPIO cảm ứng điện dung)
 3 SPI (SPI, HSPI và VSPI) hoạt động ở cả 2 chế độ master/slave. Module ESP32 hỗ trợ 4 ngoại vi  SPI với SPI0 và SPI1 kết nối đến bộ nhớ flash của ESP32 còn SPI2 và SPI3 tương ứng với HSPI và VSPI. Các GPIO đều có thể được dùng để triển khai HSPI và VSPI.
 2 I²S
 2 I²C, hoạt động được ở cả chế độ master và slave, với chế độ Standard mode (100 Kbit/s) và Fast mode (400 Kbit/s). Hỗ trợ 2 chế độ định địa chỉ là 7-bit và 10-bit. Các GPIO đều có thể được dùng để triển khai I²C.
 3 UART (UART0, UART1, UART2) với tốc độ lên đến 5 Mbps
 SD/SDIO/CE-ATA/MMC/eMMC host controller
 SDIO/SPI slave controller
 Ethernet MAC interface cho DMA và IEEE 1588 Precision Time Protocol (tạm dịch: Giao thức thời gian chính xác IEEE 1588)
 CAN bus 2.0
 Bộ điều khiển hồng ngoại từ xa (TX/RX, lên đến 8 kênh)
 PWM cho điều khiển động cơ
 LED PWM (lên đến 16 kênh)
 Cảm biến hiệu ứng Hall
 Bộ tiền khuếch đại analog công suất cực thấp (Ultra low power analog pre-amplifier)
 Bảo mật:
 Hỗ trợ tất cả các tính năng bảo mật chuẩn IEEE 802.11, bao gồm WFA, WPA/WPA2 và WAPI.
 Secure boot (tạm dịch: khởi động an toàn)
 Mã hóa flash
 1024-bit OTP, lên đến 768-bit cho khách hàng
 Tăng tốc mã hóa phần cứng: AES, SHA-2, RSA, elliptic curve cryptography (ECC, tạm dịch: mật mã đường cong ellip), random number generator (viết tắt: RNG, tạm dịch: trình tạo số ngẫu nhiên)
 Quản lý năng lượng:
 Hỗ trợ 5 chế độ hoạt động với mức tiêu thụ năng lượng khác nhau: Active, Modem­-sleep, Light-­sleep, Deep-­sleep và Hibernation
 Bộ ổn áp nội với điện áp rơi thấp (internal low-dropout regulator)
 Individual power domain (tạm dịch: Miền nguồn riêng) cho RTC
 Trở lại hoạt động từ ngắt GPIO, timer, đo ADC, ngắt với cảm ứng điện dung

Chip và module đóng gói QFN 
ESP32 được đặt trong các gói QFN (quad-flat no-leads, tạm dịch: các gói phẳng bốn góc, không có dây dẫn) có kích thước khác nhau với 49 pad. Cụ thể, 48 pad kết nối dọc theo hai bên và một pad nhiệt lớn (nối đất) ở phía dưới.

Chip 
Hệ thống một vi mạch ESP32 được đóng gói trong cả kích thước 6 mm × 6 mm và 5 mm × 5 mm gói QFN.
Vào năm 2020, chip ESP32-D0WDQ6 và ESP32-D0WD cũng có phiên bản V3 (ESP32 ECO V3), với một số lỗi đã được sửa và có thêm các cải tiến so với các phiên bản trước.

Module 
Module hệ thống đóng gói ESP32-PICO-D4  bao gồm chip silicon ESP32, bộ dao động thạch anh, chip nhớ flash, tụ lọc và RF matching link, tất cả đều nằm trong một gói QFN có kích thước 7 mm × 7 mm.

Board mạch in

Module dạng chip dán 
Module bảng mạch in trên bề mặt ESP32 chứa trực tiếp SoC ESP32 và được thiết kế để có thể dễ dàng tích hợp vào các bảng mạch khác. Các thiết kế antenna F đảo ngược có chiều được sử dụng cho các antenna bằng đường mạch trên PCB trên các module được liệt kê bên dưới. Ngoài bộ nhớ flash, một số module bao gồm RAM giả (pseudostatic RAM, viết tắt pSRAM).

Board phát triển và các loại board khác 
Các loại board phát triển và các phiên bản board break-out mở rộng hệ thống nối dây dây điện cùng một số chức năng khác, thường xây dựng dựa trên board module ESP32 khiến chúng dễ dàng sử dụng hơn cho các mục đích phát triển phần mềm (đặc biệt là các thao tác cắm dây trên breadboards).
† SoC ESP32 được tích hợp trực tiếp vào board phát triển; không có board module được sử dụng.

Lập trình 
Espressif hỗ trợ Espressif IoT Development Framework (IDF) (viết tắt là ESP-IDF), framework chính thức cho ESP32.

Ngoài ra, các ngôn ngữ lập trình, framework, platform và môi trường lập trình khác được sử dụng để lập trình ESP32 bao gồm:

 Arduino IDE với ESP32 Arduino Core
 MicroPython: Phiên bản triển khai gọn của Python 3 cho vi điều khiển
 Espressif Mesh Development Framework: Framework hỗ trợ phát triển mạng Bluetooth mesh trên ESP32.
 Espruino: JavaScript SDK và firmware mô phỏng giống với Node.js
 Lua RTOS dành cho ESP32
 Moddable SDK: bao gồm ngôn ngữ JavaScript và hỗ trợ thư viện cho ESP32
 Mongoose OS: hệ điều hành dành cho các sản phẩm kết nối trên vi điều khiển, có thể lập trình bằng JavaScript hoặc C. Mongoose OS là một nền tảng được đề xuất bởi Espressif Systems, AWS IoT, và Google Cloud IoT.
 mruby cho ESP32
 .NET nanoFramework: Lập trình bằng.NET C #, triển khai và gỡ lỗi bằng Visual Studio.
 NodeMCU: Firmware dựa trên Lua
 Hệ sinh thái PlatformIO và IDE
 Pymakr IDE : IDE được thiết kế để sử dụng với các thiết bị Pycom; xử lý các nâng cấp firmware và bao gồm bảng điều khiển MicroPython REPL
 Nền tảng lập trình nhúng Simba
 IDb E wea trên khối hệ sinh thái Whitecat
 Zerynth: Python cho IoT và vi điều khiển, bao gồm cả ESP32
 AtomVM: Erlang/Elixir Abstract machine (BEAM) cho ESP32

Tiếp nhận và sử dụng 
Các ứng dụng của ESP32 cho mục đích thương mại và công nghiệp bao gồm:

Sử dụng trong các thiết bị thương mại 

 Dây đeo tay IoT LED của Alibaba Group, được sử dụng bởi những người tham gia tại cuộc họp thường niên năm 2017 của tập đoàn. Mỗi vòng đeo tay hoạt động như một "pixel", nhận lệnh để điều khiển ánh sáng của đèn LED, từ đó có thể hình thành "màn hình trực tiếp và không dây".
 DingTalk's M1, hệ thống theo dõi sinh trắc học.
 LIFX Mini, series các đèn LED có thể điều khiển từ xa.
 Pium, dùng trong việc tạo hương thơm trong hộ gia đình.
 HardKernel's Odroid Go, một bộ thiết bị chơi game cầm tay dựa trên ESP32 được sản xuất để kỷ niệm 10 năm thành lập Odroid.
 Play-date, thiết bị chơi game cầm tay do Panic Inc. và Teenage Engineering cùng phát triển.

Sử dụng trong các thiết bị công nghiệp 

 Module Moduino X series X1 và X2 của TECHBASE là máy tính dựa trên ESP32-WROVER/ESP32-WROVER-B sử dụng trong tự động hóa và giám sát công nghiệp, hỗ trợ đầu vào/đầu ra kỹ thuật số, đầu vào với tín hiệu tương tự (analog) và hỗ trợ nhiều giao diện mạng máy tính khác nhau.
 Thiết bị công nghiệp NORVI IIOT với ESP32-WROVER/ESP32-WROVER-B SOC để tự động hóa và giám sát công nghiệp với đầu vào kỹ thuật số, đầu vào tương tự, đầu ra relay và nhiều giao diện truyền thông. Hỗ trợ LoRa và Nb-IoT dưới dạng module mở rộng.

Các chip khác trong họ ESP32 
Vào năm 2019, Espressif đã giới thiệu ESP32-S2, một chip mới dựa trên một CPU lõi Xtensa LX7 duy nhất với tốc độ xung nhịp lên đến 240 MHz. Nó có khả năng 64 FLOPS mỗi chu kỳ và bao gồm 320 kB SRAM, 128 kB ROM và 16 kB bộ nhớ RTC.

Vào năm 2020, Espressif đã công bố ESP32-C3, một chip mới dựa trên lõi đơn CPU RISC-V 32-bit với tốc độ xung nhịp lên đến 160 MHz. Nó bao gồm 400 kB SRAM và 384 kB không gian lưu trữ ROM được tích hợp sẵn.

Vào ngày 1 tháng 12 năm 2020, Espressif công bố ESP32-S3, một bộ vi điều khiển mới có CPU Xtensa LX7 lõi kép với tốc độ xung nhịp lên đến 240 MHz, 384 KB RAM và thêm 384 KB SRAM. Lõi LX7 có các phần mở rộng mới cho tập lệnh LX7 nhằm cải thiện hiệu suất của các ứng dụng Trí tuệ nhân tạo trên nền tảng Espressif. Dòng S3 tích hợp bảo mật cấp phần cứng được cải thiện của dòng S2, cũng như các tính năng khác của ESP32-S2 bao gồm hỗ trợ USB On-The-Go và triển khai cảm biến touchpad được cải tiến. ESP32-S3 cũng có tới 44 GPIO có thể lập trình được. Nó cũng mang đến một số tính năng của loạt vi điều khiển ESP32 ban đầu, đáng chú ý nhất là hỗ trợ Bluetooth 5 và Bluetooth LE, bộ điều khiển máy chủ SD/MMC và ngoại vi "World Controller" cung cấp môi trường thực thi hoàn toàn biệt lập cho các ứng dụng quan trọng về bảo mật.

Xem thêm 

 ESP8266

Tài liệu tham khảo

Chú thích

Liên kết ngoài 
 Espressif ESP32 Overview
 Espressif ESP32 Resources
 Espressif ESP-IDF Programming Guide
 Espressif ESP32 Forums 

Vi điều khiển
Vi xử lý sản xuất tại Trung Quốc