Espressif, nhà sản xuất chip vi điều khiển nổi tiếng, đã mở rộng dòng sản phẩm ESP32 của mình vượt xa con chip Wi-Fi/Bluetooth lõi kép nguyên bản, vốn là khởi nguồn cho sự phổ biến của các thiết bị IoT giá rẻ. Từ một con chip được sử dụng rộng rãi trong công nghệ nhà thông minh, ESP32 đã phát triển thành một hệ sinh thái toàn diện gồm các vi điều khiển nhỏ, chi phí thấp, cho phép mọi người thực hiện hầu hết mọi dự án. Ngày nay, cái tên “ESP32” bao gồm nhiều “series” silicon không liên quan đến nhau về kiến trúc CPU, bộ trộn không dây, kích thước bộ nhớ và khối ngoại vi, nhưng lại chia sẻ chung bộ công cụ ESP-IDF. Bài viết này sẽ phân tích chi tiết những khác biệt chính giữa chúng, cung cấp kiến thức cần thiết để bạn có thể đưa ra lựa chọn phù hợp nhất khi đầu tư vào một trong những dòng chip ESP32 này cho dự án công nghệ của mình.
ESP32 là gì? Ứng dụng của ESP32 trong lĩnh vực công nghệ
Khái niệm chung về “ESP32”
Về cơ bản, “ESP32” là một thuật ngữ chung dùng để chỉ một họ vi điều khiển đơn chip (single-chip microcontrollers) của Espressif, tích hợp CPU, giao tiếp vô tuyến (radio front-end), phần cứng mã hóa (hardware crypto) và các cổng I/O vào một bảng mạch nhỏ gọn. Tùy thuộc vào dòng chip bạn chọn, khả năng kết nối không dây có thể đa dạng từ Wi-Fi 4 cộng với Bluetooth Classic (như dòng 32-Series gốc), cho đến Wi-Fi 6 băng tần kép với Thread, Zigbee và Bluetooth LE 5.4 (như trong các dòng C và H-series mới hơn), hoặc thậm chí không có kết nối không dây nào như dòng P-series mạnh mẽ.
Một bo mạch ESP32 thường chỉ cần nguồn điện để hoạt động hiệu quả, và một ESP32 “trần” (không có thêm linh kiện phụ) có thể hoạt động rất tốt trong các hệ thống Home Assistant với vai trò là một Bluetooth proxy. Khả năng tích hợp cao đến mức này, cùng với SDK ESP-IDF miễn phí của Espressif và lõi Arduino được cộng đồng duy trì, làm cho các dòng chip này gần như không gặp trở ngại khi thử nghiệm mẫu và có chi phí mua cực kỳ rẻ. Các nhà phát triển có thể nạp firmware qua USB, trong khi các nhà máy có thể lắp ráp các module WROOM hoặc MINI đã được chứng nhận vào nhiều sản phẩm khác nhau, từ đèn thông minh, ổ cắm thông minh, bộ điều nhiệt cho đến máy đọc POS mà không cần qua bất kỳ quy trình chứng nhận lại nào.
Thực tế, nếu bạn đang sở hữu nhiều thiết bị thông minh, rất có thể bạn đã có một biến thể của ESP32 trong nhà mình. Rất nhiều thiết bị thông minh sử dụng chip ESP32 hoặc thậm chí là ESP8266 giá rẻ hơn, điều này cho thấy mức độ phổ biến rộng rãi của những con chip nhỏ bé này.
Hướng dẫn nhận diện các dòng chip ESP32
Quy ước đặt tên có thể gây nhầm lẫn
Hình ảnh một người đang cầm module vi điều khiển ESP32-WROOM-32 trước màn hình máy tính
Trước hết và quan trọng nhất, về mặt kỹ thuật, một dòng ESP32 (ví dụ: ESP32-S3) cụ thể đề cập đến Hệ thống trên Chip, hay SoC (System-on-Chip), và bất kỳ thứ gì được xây dựng xung quanh nó đều được gọi là module ESP32. Để bạn hình dung rõ hơn, ESP32-WROOM-32E là một module chứ không phải một bo mạch hoàn chỉnh. Điều này có nghĩa là nó là con chip ở dạng có thể kết nối vào một bo mạch, và nó bao gồm các thành phần thụ động cần thiết cho SoC, chẳng hạn như bộ dao động thạch anh để định thời gian hoặc ăng-ten. Trong ảnh trên, bạn có thể thấy “ESP32-WROOM-32” được in trên module. Module là thứ mà nhiều người thường nghĩ đến khi mua một ESP32 cho các mục đích tự động hóa nhà ở và thử nghiệm, mặc dù đó vẫn chưa thực sự là thứ bạn mua khi tìm kiếm một “ESP32” hoàn chỉnh.
Thứ bạn thường mua khi tìm một ESP32 thường là một bo mạch đã được cài đặt sẵn module, vì các bo mạch này sẽ đưa các chân I/O từ module ra các chân header, giúp việc giao tiếp trở nên dễ dàng hơn. Ví dụ, một bo mạch có module ESP32 được cài đặt sẵn là ESP32-DevKitC V4 của Espressif, có thể tích hợp nhiều module ESP32 khác nhau, như ESP32-WROOM-32E. Các module này có các dạng sau:
- MINI: Một dạng nhỏ gọn, đúng như tên gọi. Chỉ có sẵn với các kích thước bộ nhớ flash nhỏ hơn, ví dụ 4MB hoặc 8MB.
- WROOM: Một module lớn hơn, có khả năng tích hợp nhiều bộ nhớ flash và bộ nhớ RAM giả tĩnh (PSRAM). Tuy nhiên, “WROOM” khi nhắc đến ESP32 và ESP32-S2 thì không bao gồm PSRAM.
- WROVER (phiên bản cũ): Một module cũ, chỉ được sử dụng cho ESP32 và ESP32-S2, chỉ ra việc bao gồm 8MB PSRAM. Hiện tại không còn được sử dụng vì các module WROOM đã hỗ trợ cả flash và PSRAM.
Giải mã số hiệu linh kiện ESP32
Đối với các số hiệu linh kiện thực tế, đây là nơi bạn có thể dễ dàng bị nhầm lẫn bởi vô số lựa chọn có sẵn. Một “ESP32” không chỉ đề cập đến một SoC duy nhất, mà là cả một họ chip. Đối với các chip như ESP32-D0WDR2-V3, bạn có thể nhận diện các đặc điểm sau:
- D: Dual-core (lõi kép)
- 0: 0MB flash nhúng
- WD: Connection (Kết nối), ám chỉ Wi-Fi và Bluetooth chế độ kép
- R2: 2MB PSRAM tích hợp
- V3: Chip revision (phiên bản chip) 3.0 hoặc mới hơn
Các số hiệu linh kiện ESP32 thường tuân theo cấu trúc này:
ESP32-(family)[F(temp)(flash)][R(psram)][extra]
- Family: Đề cập đến các thiết bị như P4, S3, H6, v.v.
- F: Chỉ ra sự hiện diện của flash trên bo mạch.
- Temp: Nhiệt độ hoạt động được ký hiệu bằng “N” (normal – bình thường) hoặc “H” (high – cao).
- R: Theo sau là dung lượng PSRAM.
- Extra: Chi tiết dành riêng cho từng chip, được tìm thấy trong datasheet.
Ví dụ về tham số “extra”, khi nói đến ESP32-D0WDQ6-V3, “Q6” sẽ thuộc loại “extra” và trong trường hợp này, nó đề cập đến loại đóng gói (packaging type) đang được sử dụng. Cách đặt tên này có thể thay đổi giữa các chip, và luôn khuyến nghị đọc các datasheet chính thức để hiểu rõ về sản phẩm bạn đang mua trước tiên. Các datasheet này có sẵn trên trang web của Espressif. Tuy nhiên, Espressif đã khá tốt trong việc duy trì tính nhất quán sau dòng ESP32 gốc.
Cuối cùng, các quy ước đặt tên này cũng áp dụng cho các module. ESP32-S3-WROOM-1-N16R8 đề cập đến một module ESP32 S3 WROOM có thể hoạt động ở nhiệt độ bình thường, tích hợp 16MB flash và có 8MB PSRAM. Hãy nhớ rằng ROM và RAM nội bộ là nhất quán trên toàn bộ dòng cho mỗi họ SoC, vì vậy chúng không được khai báo trong số hiệu linh kiện mà có thể tìm thấy trong datasheet chính thức.
Ngoài ESP32 gốc, các dòng chip hiện được chia thành bốn series chính:
- C: Các lõi RISC-V tối ưu chi phí với nhiều tùy chọn kết nối.
- S: Các SoC hiệu suất cao với các tính năng bổ sung.
- H: Các SoC tương thích với BLE và 802.15.4 mà không có radio Wi-Fi.
- P: Các SoC hiệu suất cao không có kết nối không dây, hướng đến cả giao diện người-máy (HMI) như màn hình và camera, hoặc các ứng dụng xử lý biên.
Sau tất cả các giải thích trên, chúng ta sẽ đi sâu vào từng module ESP32 chính và nêu bật những ưu điểm chính của mỗi loại.
So sánh chi tiết các loại ESP32 phổ biến
ESP32 (Phiên bản Gốc)
Bo mạch ESP32 được kết nối với cảm biến rung bằng dây dẫn, minh họa ứng dụng trong các dự án IoT và cảm biến
- Wi-Fi
- Bluetooth Classic
- BLE 4.2
- Matter over Wi-Fi
- Dual-core LX6 Xtensa ở 240 MHz
ESP32 gốc thực sự nằm ở phân khúc mạnh mẽ hơn trong số các vi điều khiển này. Nó kết hợp tới hai lõi xử lý LX6 Xtensa 240 MHz với hỗ trợ Wi-Fi 802.11 b/g/n 2.4 GHz, một radio Bluetooth và BLE 4.2 đầy đủ, cùng hỗ trợ Ethernet. “Xtensa” cũng có ISA riêng, vì vậy giống như RISC-V, Arm, x86_64 và các loại khác, Xtensa là một lựa chọn khác trong lĩnh vực này. Đây là một ISA 32-bit có thể tùy chỉnh bởi người dùng, và ISA cơ bản sử dụng các lệnh RISC (Reduced Instruction Set Computer).
Với 520 KB SRAM trên chip và tùy chọn PSRAM ngoài, đây vẫn là thành viên duy nhất có thể truyền phát âm thanh Bluetooth trong khi vẫn duy trì lưu lượng Wi-Fi, điều này làm cho nó phổ biến cho các loa được kết nối, cổng kết nối (gateways) và các dự án FreeRTOS lõi kép. Ví dụ, Squeezelite-esp32 có thể biến ESP32 của bạn thành một máy chủ media có thể truyền phát âm thanh đến loa Bluetooth. Tất cả điều này đều có thể thực hiện được nhờ giao diện QSPI bên ngoài, có thể truyền phát PSRAM ở tốc độ 133 MHz, đủ nhanh để duy trì âm thanh Bluetooth Classic A2DP. Mọi thứ khác là Bluetooth Low Energy, vì vậy đối với Bluetooth “cổ điển”, ESP32 gốc nên là lựa chọn hàng đầu của bạn.
Một khía cạnh đáng yêu khác của ESP32 là DAC của nó, tích hợp hai DAC 8-bit cho phép bạn tạo tín hiệu analog trên hai kênh riêng biệt. ESP32 duy nhất khác có tính năng này là ESP32-S2. Tuy nhiên, đây là một “khó khăn” khá dễ vượt qua, vì bạn có thể tích hợp DAC của riêng mình vào bất kỳ ESP32 nào (ngoại trừ C2) để kích hoạt hỗ trợ âm thanh nhờ Inter-IC Sound, còn gọi là I2S. Nó thậm chí còn hỗ trợ Matter over Wi-Fi.
ESP32-S2
- Wi-Fi
- Không có Bluetooth
- Single-core LX6 Xtensa ở 240 MHz
ESP32-S2 vẫn giữ kiến trúc Xtensa 240 MHz nhưng loại bỏ một trong hai lõi và hoàn toàn bỏ Bluetooth để giảm cả công suất và diện tích chip. Phần silicon được giải phóng được sử dụng cho một USB-OTG PHY tốc độ đầy đủ và một ma trận ADC có kích thước gấp đôi so với ESP32 cổ điển, trong khi SRAM giảm xuống còn 320 KB. Các lệnh Vector FPU được thêm vào ISA giúp cải thiện thông lượng DSP đơn lõi, và khối thiết bị/máy chủ USB-OTG của nó là độc đáo, chỉ được sánh ngang bởi người kế nhiệm S3 và ESP32-P4, mà chúng ta sẽ đề cập sau.
ESP32-S2 là một MCU chỉ có Wi-Fi, có thể hoạt động như một thiết bị HID, CDC hoặc M-SC mà không cần cầu nối bên ngoài, làm cho nó hấp dẫn đối với các thiết bị USB, camera thị trường đại chúng và các nút IoT ngân sách thấp không cần bất kỳ khả năng Bluetooth nào. Đây là một ESP32 tuyệt vời, chi phí thấp, diện tích nhỏ cho các ứng dụng cụ thể. Nó cũng hỗ trợ màn hình RGB, giao diện camera và đầu vào cảm ứng. Nó có 43 chân GPIO.
ESP32-S3
Bo mạch phát triển ESP32-S3 với các chân GPIO và chip trên bo, thể hiện khả năng kết nối đa dạng
- Wi-Fi
- BLE 5.0
- Matter over Wi-Fi
- Hỗ trợ WPA3
- Dual-core LX6 Xtensa ở 240 MHz
Khôi phục khả năng lõi kép và hỗ trợ Bluetooth Low Energy, S3 nâng SRAM trên chip lên 512 KB, bổ sung LP-SRAM, và tích hợp các tiện ích mở rộng vector AI vào kiến trúc Xtensa, mặc dù vẫn giữ tốc độ xung nhịp 240 MHz. Thiết bị này gần giống với ESP32 cổ điển ở nhiều khía cạnh, tích hợp cả Wi-Fi 4 và Bluetooth trở lại, mặc dù chỉ là Bluetooth Low Energy 5.0 chứ không phải Bluetooth Classic. Toàn bộ radio về cơ bản đã được làm mới (dù vẫn ở băng tần 2.4 GHz), với khả năng truyền phát 2 Mbit/s qua Bluetooth cùng các tùy chọn định hướng và tầm xa.
Ngoài ra còn có một vài thay đổi khác, bao gồm hỗ trợ USB, bổ sung hỗ trợ mở rộng AI và FPU, cùng một CPU RISC-V công suất thấp 17.5 MHz mới. Hơn nữa, nó hỗ trợ Matter qua Wi-Fi, và có thêm một vài chân GPIO so với S2, nâng tổng số lên 45 chân.
ESP32-C2
- Wi-Fi
- BLE 5.0
- Matter over Wi-Fi
- Hỗ trợ WPA3
- Single-core RISC-V ở 120 MHz
Là điểm khởi đầu cho dòng C-series tối ưu chi phí, ESP32-C2 được xây dựng xung quanh một CPU RISC-V 32-bit lõi đơn, tốc độ lên tới 120 MHz. Với 272 KB SRAM (nhưng không hỗ trợ PSRAM), nó có đủ dung lượng để chạy một RTOS, một máy chủ web cơ bản hoặc một ngăn xếp cấp phép BLE, đây chính xác là mục đích của con chip này: dành cho các thiết bị có lưu lượng truy cập thấp, số lượng lớn (bóng đèn thông minh, ổ cắm, cảm biến) mà trước đây có thể đã sử dụng ESP8266 nhưng giờ đây cần Matter hoặc tính năng BLE onboarding.
Wi-Fi 4 2.4 GHz và Bluetooth LE 5.0 chia sẻ cùng một radio, và phiên bản 2.0 gần đây của C2 thậm chí còn bổ sung khoảng 20 KB SRAM khi sử dụng với ESP-IDF và thêm khoảng 100KB flash. Tính năng tăng tốc TLS phần cứng (như AES, ECC và SHA) có sẵn, và có 14 chân GPIO khả dụng.
ESP32-C3
Màn hình e-ink 7.5 inch của Seeed Studio XIAO hoạt động với Home Assistant, được cấp nguồn bởi chip ESP32-C3, minh họa ứng dụng hiển thị tiết kiệm năng lượng trong nhà thông minh
- Wi-Fi
- BLE 5.0
- BLE Mesh
- Matter over Wi-Fi
- Hỗ trợ WPA3
- Single-core RISC-V ở 160 MHz
Hãy coi C3 là điểm trung gian giữa dòng SoC C tối ưu giá và dòng P mạnh mẽ hơn. Nó có 400 KB SRAM trên chip, cùng một lõi RISC-V 160 MHz đơn, và bổ sung hỗ trợ chữ ký số RSA cùng với 22 hoặc 16 chân GPIO, tăng so với 14 chân của C2. Đây là mẫu ESP32 cung cấp năng lượng cho màn hình ePaper của Seeed Studio, và ngay cả khi không triển khai chế độ ngủ sâu, nó vẫn có thể hoạt động vài ngày với pin 2000 mAh.
C3 có Wi-Fi 4, Bluetooth LE 5.0 (2 Mbit/s, Long Range, Direction Finding), và đây là một chip lý tưởng cho các cảm biến chạy bằng pin và bộ điều khiển đèn. Với tối đa 22 chân GPIO, nó là một giải pháp thay thế Arduino tuyệt vời với chi phí phải chăng, và hoàn hảo cho các dự án cơ bản hơn. Đặc biệt, bo mạch “ESP32C3 Super Mini” có thể được tìm thấy với giá cực kỳ rẻ, mặc dù bạn sẽ cần cẩn thận khi mua một chiếc.
ESP32-C5 và ESP32-C6
- Wi-Fi băng tần kép (chỉ dành cho C5)
- BLE 5.0
- BLE Mesh
- Matter over Wi-Fi, Thread
- Hỗ trợ Zigbee
- Hỗ trợ WPA3
- CPU RISC-V:
- C5: 240 MHz với CPU công suất thấp 40 MHz
- C6: 160 MHz với CPU công suất thấp 20 MHz
C5 là nơi dòng C chuyển sang băng tần kép, và đây là con chip Espressif đầu tiên (và duy nhất, tại thời điểm viết bài này) xử lý cả 2.4 GHz và 5 GHz, hơn nữa nó còn hỗ trợ Wi-Fi 6. Nó tích hợp một CPU RISC-V lõi đơn 240 MHz cộng với một lõi RISC-V công suất thấp 40 MHz. Wi-Fi 6 băng tần kép có nghĩa là nó hỗ trợ OFDMA uplink/downlink và Target Wake-Time (TWT), với TWT giúp tối ưu hóa khả năng tiết kiệm điện năng.
Tuyệt vời hơn nữa, C5 hỗ trợ cả BLE 5.0 và Zigbee 3.0/Thread 1.4, cho phép bạn tự xây dựng thiết bị hỗ trợ Zigbee hoặc Thread với một trong số chúng. Nó tích hợp 384 KB SRAM công suất cao (HS SRAM), 16 KB SRAM công suất thấp (LS SRAM), và một lõi RISC-V công suất thấp 40 MHz.
Nếu bạn không quan tâm đến hỗ trợ băng tần kép, C6 là một tùy chọn rất tương tự nhưng loại bỏ khả năng 5 GHz. Tốc độ xung nhịp của nó giảm xuống 160 MHz, và lõi phụ công suất thấp của nó giảm xuống 20 MHz, nhưng bù lại bạn có tới 512 KB SRAM (nhưng không hỗ trợ PSRAM).
ESP32-H2 và ESP32-H4
- Không có Wi-Fi
- BLE
- H2: BLE 5.0
- H4: BLE 5.4, LE Audio, Direction Finding
- BLE Mesh
- Matter over Thread
- Hỗ trợ Zigbee
- CPU RISC-V:
- H2: 96 MHz
- H4: Lõi kép 96 MHz
Dòng SoC ESP32 “H” là một dòng sản phẩm đặc biệt thú vị, vì nó hoàn toàn loại bỏ Wi-Fi để ưu tiên Zigbee, Thread và Bluetooth. H2 có một lõi RISC-V 96 MHz đơn, 320 KB SRAM và mức tiêu thụ điện năng cực kỳ thấp. Để dễ hình dung, ở chế độ ngủ sâu (deep sleep), Espressif cho biết mức tiêu thụ điện của chip này chỉ còn 7 µA. Ở chế độ ngủ nhẹ (light sleep), với các thiết bị ngoại vi được bật, nó vẫn chỉ tiêu thụ 85 µA. Với sự tối ưu hóa và pin phù hợp, con chip này có thể hoạt động trong nhiều tháng chỉ với một lần sạc, tùy thuộc vào trường hợp sử dụng của bạn.
H4 nhân đôi nhiều tính năng của H2, tích hợp hai lõi 96 MHz, nâng cấp lên BLE 5.4, hỗ trợ PSRAM và Bluetooth LE Audio. Nó rất tương tự, và mức tiêu thụ điện năng sẽ tăng lên khi sử dụng các tính năng bổ sung đó, nhưng nó vẫn duy trì sự tập trung rõ ràng vào việc trở thành một con chip giá cả phải chăng, tiêu thụ điện năng thấp.
ESP32-P4
- Chỉ Ethernet
- Bộ mã hóa H264
- Dual-core RISC-V ở 400 MHz
Các chip dòng P được thiết kế để đạt hiệu suất cao, và một cái nhìn vào bảng thông số kỹ thuật sẽ cho bạn biết chính xác lý do tại sao. P4 chỉ hỗ trợ Ethernet, nhưng nó mang theo hai lõi RISC-V hiệu suất cao chạy ở tốc độ lên tới 400 MHz với các tiện ích mở rộng Vector/FPU và AI, 768 KB SRAM hiệu suất cao, một MIPI-DSI 2 làn cho màn hình 720p 70 FPS (hoặc màn hình 1080p 40 FPS), và một bộ mã hóa phần cứng H.264 cho các widget camera MJPEG hoặc RTSP.
Ngoài tất cả những điều đó, USB 2.0 HS OTG, ba bộ điều khiển TWAI (Two-Wire Automotive Interface) và 55 chân GPIO làm cho nó giống một micro-SoC hơn là một vi điều khiển. Cùng với khả năng hỗ trợ tới 32 MB PSRAM ngoài, P4 cung cấp năng lượng cho bộ kit thị giác “ESP32-P4-EYE” của Espressif và được định vị cho các ứng dụng chuông cửa video, máy in 3D và giao diện người dùng kiosk.
Tổng kết về các dòng ESP32
Có rất nhiều điều cần tìm hiểu
Màn hình hiển thị màu ESP32-CYD (Cheap Yellow Display) với giao diện người dùng đơn giản, minh họa khả năng của ESP32 trong các dự án HMI và hiển thị thông tin
Thực tế, có rất nhiều điều chi tiết hơn về mỗi dòng chip ESP32 so với những gì tôi đã đề cập ở đây, và bài viết này đóng vai trò là cái nhìn tổng quan cấp cao về những khác biệt chính giữa tất cả chúng. Mỗi dòng chip đều có những điểm mạnh và điểm yếu riêng, và khi tích hợp chúng vào dự án của riêng bạn, bạn sẽ cần cân nhắc cẩn thận khả năng của từng loại để đảm bảo bạn đang có chính xác những gì mình cần. Trang danh sách module trên trang web của Espressif cũng có thể cực kỳ hữu ích, cũng như trang so sánh và tài liệu PDF tổng quan về danh mục sản phẩm. Tôi đã tham khảo các tài liệu này rất nhiều khi cân nhắc cần chip nào cho một dự án, và có khả năng dự án tiếp theo của tôi sẽ là H4 hoặc C6.
Nếu bạn chỉ mới bắt đầu, một ESP32-DevKit V4 là một cách tuyệt vời để khám phá khả năng của những thiết bị nhỏ bé này. Tôi đã sử dụng các bo mạch ESP32 của mình với ESPHome, và đó là một cách tuyệt vời để bắt đầu. Hơn nữa, khi bạn nhận ra khả năng của các thiết bị như Màn hình Vàng Giá Rẻ ESP32 (Cheap Yellow Display), bạn có thể sẽ bị cuốn hút.
Hãy chia sẻ kinh nghiệm hoặc câu hỏi của bạn về việc lựa chọn và sử dụng các dòng ESP32 trong phần bình luận bên dưới!