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

=== Lưu trữ tích hợp ===
ESP32 bao gồm bộ nhớ tích hợp sau:
== 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

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