Thiết kế nguồn pin cho ESP32: Từ USB-C, mạch sạc đến rail 3.3V
Phân tích đường nguồn ESP32-S3 từ USB-C, TP4056 và pin Li-ion đến bảo vệ, power-path, LDO 3,3 V, tụ lọc và ngân sách tải.
Chia sẻ

Một board ESP32 chạy được từ USB chưa chắc đã chạy ổn bằng pin. Khi thêm màn hình, microphone và loa, đường nguồn phải giải quyết đồng thời nhiều việc: nhận 5 V từ USB-C, sạc cell Li-ion đúng dòng, không nạp ngược về cổng USB, bảo vệ pin, tạo rail 3,3 V sạch và chịu được các xung tải do Wi-Fi hoặc audio gây ra.
Mạch trong bài viết sử dụng các linh kiện như: USB-C power-only, TP4056, đầu nối pin một cell, cặp DW01A + 8205A, MOSFET AO3407A, LDO ME6211C33M5G và các test pad cho 5V, BAT, 3V3, GND.
Quan sát toàn bộ sơ đồ cấu trúc trước khi chọn linh kiện

Đường nguồn tổng quát của board mẫu; phần power-path cần được kiểm tra riêng ở cấp schematic.
Kiến trúc trong ảnh đi theo chuỗi:
USB-C 5 V → charger → cell 1S → protection → regulator 3.3 V → tải
Tải cuối gồm ESP32-S3, màn hình, microphone, amplifier và sensor. Cách chia khối này hợp lý để bắt đầu, nhưng cần thêm hai câu hỏi:
- Khi vừa có cổng USB vừa có pin, tải lấy điện từ đâu?
- Khi pin giảm từ 4,2 V xuống gần 3,0 V, rail 3,3 V còn giữ regulation hay không?
Hai câu hỏi này quyết định power-path và loại regulator. Nếu bỏ qua, board vẫn có thể sáng LED ở bàn lab nhưng reset khi Wi-Fi phát, âm lượng tăng hoặc cáp USB bị rút ra.
USB-C 5 V: power-only vẫn cần làm đúng CC

Sạc pin và cấp nguồn cho tải là hai bài toán liên quan nhưng không hoàn toàn giống nhau.
Schematic dùng receptacle USB-C nhưng không nối D+ và D-; đây là cổng cấp nguồn, không phải USB data. CC1 và CC2 đều có điện trở 5,1 kΩ kéo xuống GND, báo cho phía source rằng board là một sink. Cả hai chân CC đều cần điện trở riêng vì đầu cắm Type-C có thể đảo chiều.
Thiết kế này chỉ cần 5 V cơ bản, không cần USB Power Delivery để hoạt động. Tuy vậy, không nên mặc định rằng mọi nguồn USB-C sẽ cấp dòng tùy ý. Nếu sản phẩm cần công suất lớn hơn mức nguồn đang quảng bá, hoặc cần 9 V/12 V, phải đọc trạng thái CC hoặc dùng PD controller phù hợp thay vì chỉ cắm VBUS vào charger.
Ở đầu vào, schematic còn thể hiện:
- Ferrite bead
L1ghi 600 Ω @ 100 MHz để giảm nhiễu cao tần. C1 = 10 µFlàm tụ bulk vàC2 = 100 nFxử lý thành phần nhanh hơn.- TVS
SMF5.0Akẹp xung trên VBUS. - Shield connector nối GND.
TVS phải được chọn theo điện áp làm việc, điện dung và mức surge thực tế. Với sản phẩm thương mại, nên đặt ESD protection sát connector, giữ đường xả về ground ngắn và tránh để xung ESD chạy qua vùng RF hoặc ground return của ESP32-S3.
Chọn dòng sạc: bắt đầu từ pin, không bắt đầu từ charger
Khối sạc trong schematic dùng TP4056 và một điện trở RPROG 2 kΩ. Tùy biến thể datasheet, giá trị này thường được đặt cho dòng sạc ở khoảng 0,5 đến 0,58 A. Không nên chọn 500 mA chỉ vì IC có thể cung cấp mức đó. Dòng cuối cùng phải là giá trị nhỏ nhất trong bốn giới hạn:
Icharge ≤ min(
dòng sạc cho phép của cell,
ngân sách dòng USB-C trừ tải hệ thống,
giới hạn nhiệt của charger và PCB,
giới hạn connector / protection path
)
TP4056 là charger tuyến tính. Khi pin ở 3,2 V và dòng sạc là 0,5 A, công suất gần đúng mà IC phải tiêu tán là:
Pcharger ≈ (5.0 V - 3.2 V) × 0.5 A = 0.9 W
0,9 W là đáng kể với package nhỏ. IC có thể tự giảm dòng khi nóng, vì vậy dòng đo thực tế sẽ thấp hơn dòng do RPROG đặt nếu copper area không đủ để tản nhiệt. Cần kiểm tra nhiệt độ ở pin cạn, điện áp USB cao nhất cho phép và nhiệt độ môi trường xấu nhất.
Hai LED CHG và STBY/PG hữu ích trong bring-up, nhưng cũng tiêu thụ dòng. Nếu sản phẩm cần sleep lâu, hãy tính cả LED hoặc cho phép không lắp chúng.
Power-path: TP4056 không tự giải quyết việc vừa sạc vừa chạy
Ảnh overview mô tả charger vừa sạc pin vừa cấp system rail. Đây là hành vi mong muốn, nhưng bản thân TP4056 chỉ là charger một cell; nó không có chân system output với power-path độc lập như một power-management IC chuyên dụng.
Trong schematic case study, BAT_OUT 5 V và node VBAT được ghép qua Q2 AO3407A trước khi vào LDO. Ý tưởng là chuyển nguồn tự động và hạn chế backfeed. Tuy nhiên, trước khi dùng lại cần kiểm tra kỹ:
- Source, drain và body diode của Q2 có đúng chiều cho cả cắm và rút USB không?
- 5 V có thể đi ngược về cell, protection circuit hoặc chân BAT của charger hay không?
- Tải hệ thống có làm dòng pin không giảm xuống ngưỡng termination, khiến charger không kết thúc, đúng không.
- Khi USB vừa được cắm hoặc rút, node
VBATcó sụt đủ lâu để ESP32 reset không? - Dòng tải cộng dòng sạc có vượt ngân sách VBUS hoặc giới hạn nhiệt không?
Một true power-path tốt thường ưu tiên đầu vào USB cho tải, dành phần dòng còn lại để sạc và chuyển sang pin, không làm rail sụt mạnh. Nếu sản phẩm phải vừa chạy vừa sạc thường xuyên, dùng charger có load sharing/power-path tích hợp sẽ dễ kiểm chứng hơn một mạch ghép MOSFET tự thiết kế.
| Trạng thái | Nguồn cấp tải mong muốn | Điều cần đo |
|---|---|---|
| Chỉ USB, chưa gắn pin | USB → system rail | Điện áp rail và hành vi charger khi không có cell |
| Chỉ pin | Pin bảo vệ → regulator | Dropout, brownout và dòng sleep |
| USB + pin đang sạc | USB ưu tiên tải, phần dư sạc pin | Dòng VBUS, dòng pin, nhiệt charger |
| Rút USB khi đang chạy | Pin tiếp quản | Độ sụt rail và ESP32 có reset không |
| Pin đầy, tải vẫn chạy | USB cấp tải | Charger có terminate/recharge đúng không |
Bảo vệ pin không đồng nghĩa với quản lý pin hoàn chỉnh

Checklist trong ảnh là mục tiêu hệ thống; cần đối chiếu từng chức năng với linh kiện thực tế.
Board dùng DW01A với dual MOSFET 8205A. Cặp linh kiện này thường xử lý overcharge, over-discharge, over-current và short-circuit bằng cách ngắt đường pin. Đây là lớp bảo vệ cuối, không phải thuật toán sạc và cũng không nên được dùng làm ngưỡng tắt máy thường xuyên.
Hình safety còn liệt kê thermal protection và polarity protection. Cần đọc mục này như mục tiêu cấp hệ thống, không mặc định mọi chức năng đều có sẵn trong cặp DW01A + 8205A:
- DW01A không đo nhiệt độ cell. Nếu muốn bảo vệ nhiệt độ pin, cần NTC và charger/BMS có đầu vào nhiệt phù hợp. Trong schematic mẫu, phải xác minh chân
TEMPcủa TP4056 có thực sự nối với cảm biến hay đang bị vô hiệu hóa. - Reverse-polarity protection phụ thuộc vào connector, MOSFET và cách mắc cụ thể. Đầu JST hai chân không tự ngăn người dùng cắm một pack đi dây ngược cực.
- Ngưỡng OVP/UVP/OCP thay đổi theo mã linh kiện. Phải đối chiếu datasheet của đúng vendor và đo cut-off trên prototype.
- Protection MOSFET mang toàn bộ dòng sạc và dòng tải; trace
BAT-/BAT_OUTcần ngắn, rộng và có đường hồi rõ ràng.
Firmware nên theo dõi điện áp pin và tắt tải có kiểm soát trước khi protection IC cắt cứng. Việc này bảo vệ filesystem, tránh âm thanh “bụp” và cho phép UI báo pin yếu.
Rail 3,3 V: LDO 500 mA không có nghĩa là hệ thống còn dư 500 mA

Tụ đúng giá trị nhưng đặt xa chân nguồn vẫn không xử lý tốt xung dòng nhanh.
U3 trong schematic là ME6211C33M5G, LDO 3,3 V được ghi 500 mA. Trong khi đó, hướng dẫn phần cứng ESP32-S3 khuyến nghị nguồn 3,3 V có khả năng cấp ít nhất 500 mA cho chip. Nếu cùng LDO còn nuôi display, microphone, amplifier và sensor, thiết kế đã dùng hết biên dòng trên giấy trước khi xét tải đỉnh.
Một cell Li-ion 1S thay đổi từ khoảng 4,2 V khi đầy xuống vùng 3,0 V khi gần cạn. LDO 3,3 V chỉ giữ được đầu ra khi:
Vbattery > 3.3 V + Vdropout
Khi pin thấp hơn ngưỡng đó, rail sẽ đi theo pin trừ sụt áp nội bộ. ESP32-S3 yêu cầu các rail chính trong khoảng 3,0–3,6 V, nên hệ thống có thể brownout trước khi protection IC chạm ngưỡng over-discharge. Đây không hẳn là lỗi nếu sản phẩm chủ động tắt sớm, nhưng dung lượng dùng được sẽ thấp hơn phép tính chỉ dựa trên mAh.
Ba hướng xử lý thường gặp:
- Giữ LDO nếu tải nhỏ, chấp nhận vùng pin cuối không dùng hết và đã đo được brownout sạch.
- Tách amplifier/backlight sang rail khác để 3,3 V chỉ nuôi ESP32 và logic.
- Dùng buck-boost 3,3 V nếu cần tận dụng phần lớn dải 4,2–3,0 V và giữ rail ổn định.
Không nên cấp loa công suất trực tiếp từ rail nhạy nếu amplifier tạo xung dòng lớn. Tải audio, motor hoặc backlight PWM nên có tụ cục bộ, đường nguồn đủ rộng và đường hồi không đi xuyên qua vùng RF/analog của ESP32.
Tụ lọc: giá trị chỉ là một nửa câu chuyện
Schematic đặt C4 10 µF + C5 100 nF ở đầu vào LDO và C6 10 µF + C7 100 nF ở đầu ra. Gần module ESP32-S3 còn có C9 10 µF cùng C10–C14 100 nF. Cấu trúc bulk + decoupling này đi đúng hướng với khuyến nghị của Espressif: có ít nhất 10 µF tại power entrance và 0,1 µF gần các chân nguồn số; rail analog cần thêm khả năng giữ áp khi dòng RF tăng đột ngột.
Khi layout, ưu tiên:
- Tụ 100 nF sát pin nguồn tương ứng, vòng
VDD → capacitor → GNDnhỏ nhất có thể. - Tụ 10 µF gần điểm vào rail và gần cụm ESP32-S3 nếu hai vị trí cách xa nhau.
- Ground plane liên tục dưới module và regulator.
- Không dùng trace mảnh, dài để nối tụ rồi mới quay về IC.
- Kiểm tra yêu cầu ESR và dải điện dung ổn định của đúng LDO; MLCC mất điện dung khi có DC bias.
Tụ bulk hỗ trợ xung tải ở tần số thấp hơn, còn tụ 100 nF xử lý cạnh nhanh. Thêm rất nhiều tụ ở sai vị trí không hiệu quả bằng một tụ vừa đủ đặt đúng chỗ.
Ước tính công suất khi Wi-Fi, màn hình và loa cùng chạy

Kết quả 6,25 giờ là phép tính lý tưởng trước khi trừ tổn hao, dung lượng khả dụng và tải đỉnh.
Ảnh budget đưa ra ví dụ:
| Tải | Dòng trung bình trong ảnh |
|---|---|
| ESP32-S3 active | 120 mA |
| Wi-Fi active | 80 mA |
| Backlight trung bình | 60 mA |
| Audio amplifier | 50 mA |
| LED và tải khác | 10 mA |
| Tổng | 320 mA |
Với pin 2.000 mAh, phép chia lý tưởng là 2000 / 320 = 6,25 giờ. Con số này hữu ích để kiểm tra bậc lớn, nhưng chưa phải là cam kết runtime.
Trước hết, cần xác định 120 mA của ESP32-S3 đã bao gồm Wi-Fi hay chưa. Nếu đó là số đo toàn module khi Wi-Fi connected, cộng thêm 80 mA sẽ tính radio hai lần. Cách đúng là đo từng mode toàn hệ thống tại đầu pin: idle, listening, Wi-Fi transmit, display sáng, talking và deep sleep.
Tiếp theo, nhân thêm các hệ số thực tế:
Runtime ≈ Capacity_rated × usable_fraction × aging_factor
/ average_battery_current
Với usable_fraction khoảng 0,75–0,9 tùy cutoff, tải và nhiệt độ, 6,25 giờ lý tưởng có thể còn khoảng 4,7–5,6 giờ trước khi xét lão hóa. Đây chỉ là dải ước tính; số cuối phải lấy từ discharge test của đúng cell.
Ngoài dòng trung bình, regulator còn phải chịu dòng đỉnh. Wi-Fi transmit và audio có thể trùng nhau trong vài mili giây. Nếu LDO 500 mA bị kéo sát giới hạn, rail có thể sụt dù đồng hồ đo trung bình chỉ báo 320 mA. Hãy đo bằng oscilloscope ngay tại 3V3 và GND của module, trigger vào lúc phát Wi-Fi hoặc bắt đầu playback.
Khi vừa chạy vừa sạc, nếu USB cho 500 mA và hệ thống dùng 320 mA, không thể giả định pin vẫn được sạc 500 mA. Trước tổn hao và thermal limiting, phần dòng còn lại chỉ quanh 180 mA. Nếu charger không có power-path đúng, phép chia dòng và termination còn phức tạp hơn.
Đọc schematic case study theo dòng năng lượng

Schematic case study được chia thành 11 khối để review đường nguồn, bảo vệ, reset, decoupling và test point.
Schematic chia thành 11 khối. Khi review, nên đi theo dòng năng lượng thay vì đọc theo số thứ tự linh kiện:
- USB-C input: CC1/CC2 5,1 kΩ, ferrite, TVS và tụ đầu vào.
- Charger: TP4056, RPROG, LED charge/standby và chân TEMP.
- Battery connector: kiểm tra cực tính, pitch, dòng định mức và khóa cơ khí.
- Protection: DW01A + 8205A, ngưỡng cắt và đường dòng lớn.
- Power path/regulator: AO3407A, node
VBAT, ME6211 3,3 V và khả năng backfeed. - ESP32-S3 module: toàn bộ chân nguồn phải lên đồng thời và nằm trong dải cho phép.
- EN/reset: schematic dùng R6 100 kΩ và C8 1 µF; cần đối chiếu timing với khuyến nghị của module thực tế.
- Status LED: cộng dòng LED vào sleep budget hoặc bỏ lắp khi cần.
- Decoupling: kiểm tra không chỉ giá trị mà còn placement trên PCB.
- Headers: Tránh để rail
5V,BATvà3V3dễ bị nối nhầm. - Test pads:
5V,BAT,3V3,GND,ENlà tối thiểu hợp lý cho bring-up.
Schematic trong ảnh là một ví dụ hoàn chỉnh về mặt trình bày, không phải bằng chứng board đã được kiểm chứng điện. Trước khi tái sử dụng, hãy mô phỏng hoặc đo riêng từng mode nguồn, kiểm tra pinout package và đọc datasheet của đúng mã linh kiện mua được.
Từ schematic sang PCB có thể đo được

Đây là render của board tham chiếu, chưa phải ảnh PCB đã gia công; silkscreen chia khối để chuẩn bị cho bring-up.
Góc nhìn trên cho thấy các khối được tách bằng silkscreen: USB-C, charger, BAT, protection, 3V3 LDO và ESP32-S3. Test pad nằm ở mép board, khá thuận tiện cho oscilloscope và electronic load. Đây là cách tổ chức tốt cho prototype vì lỗi nguồn thường cần đo nhiều điểm cùng lúc.

Khi layout thật, đường dòng lớn và vòng dòng hồi quan trọng hơn khoảng cách nhìn trên render.
Render phối cảnh giúp nhìn placement, nhưng không cho biết chiều rộng copper, via stitching, lớp ground hay thermal pad. Với board thật, cần ưu tiên:
- Đường VBUS, BAT, BAT_OUT và 3V3 đủ rộng cho dòng đỉnh.
- Copper tản nhiệt dưới charger theo datasheet package.
- Protection MOSFET gần connector pin và vòng dòng nhỏ.
- LDO cùng tụ input/output được đặt thành một cụm ngắn.
- Antenna ESP32-S3 không bị copper, pin hoặc dây nguồn che vùng keepout.
- Ground return của amplifier không đi chung đoạn hẹp với ground của ESP32.
Khi có PCB thật, mode vừa cắm USB-C vừa nối pin Li-ion là tình huống cần test lâu nhất vì charger, tải và pin tương tác với nhau. Nên ghi lại tối thiểu VBUS, VBAT, 3V3, dòng vào USB, dòng pin và nhiệt độ TP4056 trong ba tình huống: pin cạn, pin gần đầy và audio + Wi-Fi cùng hoạt động.
Checklist trước khi đặt PCB
- Xác nhận profile sạc và dòng sạc tối đa từ datasheet của cell.
- Xác nhận USB-C sink resistors và ngân sách dòng không dựa vào giả định PD.
- Review hướng MOSFET, body diode và mọi đường có thể backfeed.
- Đo hoặc mô phỏng chuyển nguồn khi cắm/rút USB.
- Kiểm tra LDO/buck-boost theo dòng đỉnh, dropout, nhiệt và stability capacitor.
- Tách tải nhiễu khỏi rail nhạy khi cần; giữ ground return có chủ đích.
- Dùng firmware shutdown trước ngưỡng protection cut-off.
- Đặt test point cho 5 V, pin, system rail, 3,3 V, GND và EN.
- Test short, reverse pack, hot-plug và thermal trong điều kiện có kiểm soát.
- Không dùng ảnh render hay schematic minh họa thay cho validation trên prototype.
Kết luận
Một thiết kế nguồn pin tốt cho ESP32-S3 không dừng ở việc chọn charger và LDO. Bạn cần nhìn toàn bộ chuỗi USB-C, cell, protection, power-path, regulator, tụ và layout như một hệ thống. Board case study trong bài cho mình một bản đồ khá rõ để bắt đầu, đồng thời chỉ ra những điểm phải đo: dòng sạc thật, nhiệt TP4056, dropout 3,3 V, backfeed và tải đỉnh khi Wi-Fi, màn hình và loa cùng chạy.
Nếu đang xây Mochi hoặc một thiết bị có audio, có thể đọc thêm kiến trúc phần cứng Mochi dùng ESP32-S3 và thiết kế audio hai chiều trên ESP32-S3 để nối power budget với tải thực tế.
Tham khảo
Chia sẻ
Tiếp tục khám phá
Đọc tiếp
Bài viết liên quan
MEMS mic thực sự là gì? Từ màng rung silicon đến I2S trên ESP32
Tìm hiểu microphone MEMS, khác biệt analog, PDM, I2S, thông số quan trọng và lỗi PCB, nguồn, acoustic port khi dùng với ESP32.
ESP32-C3 hay ESP32-S3: Nên chọn chip nào cho robot có màn hình và âm thanh?
So sánh ESP32-C3 và ESP32-S3 theo GPIO, RAM, PSRAM, USB, I2S và khả năng chạy LVGL, kèm lựa chọn cụ thể cho Mochi cơ bản và Mochi AI.
Kiến trúc phần cứng hoàn chỉnh cho một robot Mochi dùng ESP32-S3
Phân tích các khối phần cứng chính của robot Mochi dùng ESP32-S3: màn hình, touch, microphone I2S, amplifier, loa, pin, sạc, nguồn và lưu ý chọn GPIO.