M5Stack StickS3 — Tổng quan phần cứng

Mô tả
M5Stack StickS3 là bộ điều khiển lập trình được cỡ bỏ túi, dựng quanh ESP32-S3 với 8 MB Flash và 8 MB PSRAM. Trên thân máy có sẵn màn hình IPS màu, cảm biến chuyển động 6 trục, đường âm thanh hai chiều (micro và loa), thu phát hồng ngoại, pin và mạch sạc.
Điểm khác biệt so với các dòng Stick trước nằm ở quản lý nguồn: thay vì một IC chuyên dụng, StickS3 dùng M5PM1 — một vi điều khiển phụ chạy firmware riêng, giao tiếp với ESP32 qua I2C.
Tính năng
ESP32-S3 lõi kép, Wi-Fi 2.4 GHz và Bluetooth 5 (BLE)
8 MB Flash + 8 MB PSRAM
Màn hình IPS 1.14", 135×240, đèn nền chỉnh được độ sáng
IMU BMI270 6 trục, có bộ nhận dạng chuyển động chạy trên chip
Codec ES8311 + amp class-D + micro MEMS analog
Thu và phát hồng ngoại 38 kHz
Quản lý nguồn bằng MCU phụ với 5 mức nguồn tách rời
Pin tích hợp, sạc qua USB-C
Cổng Grove (HY2.0-4P) và header HAT2 (2×8)
Hỗ trợ Arduino, ESP-IDF, UiFlow2
Ứng dụng
Thiết bị đeo hoặc cầm tay chạy pin
Điều khiển từ xa hồng ngoại
Ghi âm và phát lại giọng nói
Cảm biến chuyển động: đếm bước, phát hiện rung, nhận cử chỉ
Bảng hiển thị mini lấy dữ liệu qua Wi-Fi
Thông số
Thông số | Giá trị |
|---|---|
Vi xử lý | ESP32-S3-PICO-1-N8R8 |
Kiến trúc | Xtensa LX7 lõi kép, tối đa 240 MHz |
Flash | 8 MB |
PSRAM | 8 MB (Octal) |
Không dây | Wi-Fi 802.11 b/g/n 2.4 GHz, Bluetooth 5 (BLE) |
Màn hình | LCD IPS 1.14", 135×240, driver ST7789 |
Giao tiếp màn hình | SPI |
IMU | BMI270 (gia tốc + con quay 6 trục) |
Codec âm thanh | ES8311 |
Khuếch đại | AW8737A class-D |
Micro | MEMS analog, vi sai |
Quản lý nguồn | M5PM1 (PY32L020F15U6), I2C |
IC sạc | LGS4056, dòng sạc 190 mA |
Hồng ngoại | Phát IR928-6C, thu VSOP38338 (38 kHz) |
Nút bấm | Nút nguồn (vào PMIC) + 2 nút lập trình được |
Cổng mở rộng | Grove HY2.0-4P, header HAT2 2×8 |
Cổng nạp | USB-C, USB OTG gốc của ESP32-S3 |
Bảng chân
Màn hình (SPI)
ESP32-S3 | Chức năng |
|---|---|
39 | MOSI |
40 | SCK |
41 | CS |
45 | D/C (RS) |
21 | RST |
38 | Đèn nền |
Âm thanh (I2S)
ESP32-S3 | Chức năng |
|---|---|
18 | MCLK |
17 | BCLK |
15 | LRCK (word select) |
14 | Data out → DAC → loa |
16 | Data in ← ADC ← micro |
Codec ES8311 điều khiển qua I2C, địa chỉ 0x18.
I2C dùng chung
ESP32-S3 | Chức năng |
|---|---|
47 | SDA |
48 | SCL |
Bus này mang ba thiết bị: PMIC (0x6E), IMU BMI270 (0x68) và codec ES8311 (0x18).
Quản lý nguồn
ESP32-S3 | Chức năng |
|---|---|
13 | Ngắt từ PMIC |
47 / 48 | I2C tới PMIC |
Nút nguồn không nối vào ESP32 — nó đi thẳng vào PMIC.
Nút bấm
ESP32-S3 | Chức năng |
|---|---|
11 | KEY1, mức thấp khi nhấn, pull-up 10K |
12 | KEY2, mức thấp khi nhấn, pull-up 10K |
Hồng ngoại
ESP32-S3 | Chức năng |
|---|---|
46 | Phát |
42 | Thu, 38 kHz |
Cổng Grove (HY2.0-4P)
Màu dây | Chân |
|---|---|
Đen | GND |
Đỏ | 5V |
Vàng | G9 |
Trắng | G10 |
G9 và G10 dùng được làm I2C (SCL/SDA), UART hoặc GPIO thường.
Header HAT2 (2×8)
Chân | Trái | Phải | Chân |
|---|---|---|---|
GND | 1 | 2 | G5 |
EXT_5V | 3 | 4 | G4 |
Boot | 5 | 6 | G6 |
G1 | 7 | 8 | G7 |
G8 | 9 | 10 | G43 |
BAT | 11 | 12 | G44 |
3V3_L2 | 13 | 14 | G2 |
5V_IN | 15 | 16 | G3 |
Ngoài 10 chân GPIO tự do (G1–G8, G43, G44), header còn đưa ra bốn đường nguồn: EXT_5V (5 V do board tạo), 5V_IN (5 V từ USB vào), BAT (nối thẳng vào pin) và 3V3_L2 — rail này do PMIC điều khiển, nên nó tắt khi máy vào chế độ ngủ sâu.
G43 và G44 cũng là UART0 dùng để debug.
Tìm hiểu thêm
Năm mức nguồn
Mức | Còn sống | Dùng khi |
|---|---|---|
Shipping | Chỉ PMIC | Cất kho, dòng cỡ µA |
Standby | + IMU | Chờ, đánh thức bằng cử động |
DeepSleep | + ESP32 đang ngủ | Giữ RAM, dậy nhanh |
Core Active | ESP32 chạy đủ | Chạy nền, màn hình tắt |
All Active | + màn hình, âm thanh | Dùng bình thường |
Các mức này tách rời thật sự: tắt được màn hình và âm thanh trong khi Wi-Fi vẫn chạy, hoặc tắt hẳn ESP32 mà vẫn giữ IMU tỉnh.
Lắc để mở máy
Ở mức Standby, PMIC giữ nguồn cho IMU trong khi tắt phần còn lại. BMI270 tự phát hiện chuyển động rồi báo cho PMIC, PMIC cấp điện lại cho ESP32. Kết quả là lắc máy thì máy mở, còn lúc chờ gần như không tốn pin.
Chân bị chiếm
GPIO 26–37 dùng cho Flash và PSRAM nội bộ của module PICO — không được dùng.
Chân strap: GPIO0, GPIO3, GPIO45, GPIO46.
Lưu ý
Muốn bật màn hình phải nói chuyện với PMIC trước. Rail cấp nguồn cho LCD do PMIC điều khiển, không phải một chân GPIO của ESP32. Đây là chỗ hay làm người mới bối rối vì code trông đúng mà màn hình vẫn tối.
Ba thiết bị dùng chung một bus I2C. Nếu tự viết driver, nhớ rằng chúng phải nhường nhau.
Micro là loại analog, không phải PDM — bắt buộc đi qua codec, không cắm thẳng vào ESP32 được.
Nút nguồn không đọc được từ ESP32. Muốn biết người dùng nhấn nút thì phải đọc sự kiện từ PMIC qua I2C.