Series
Series Lập Trình ESP32-S3-DevKitC N16R8 CAM
  1. Series: Hướng dẫn lập trình ESP32-S3-DevKitC N16R8 CAM – Từ cơ bản tới ứng dụng thực tế
  2. 1ESP32-S3-DevKitC N16R8 CAM: Bài 1- Nhận diện board
  3. 2ESP32-S3-DevKitC N16R8 CAM: Bài 02 -Checklist kiểm tra board mới mua (USB / Flash / PSRAM / LED)
  4. 3ESP32-S3-DevKitC N16R8 CAM: Bài 2.1 – Phân tích chi tiết pinout theo nhóm chức năng (an toàn vs xung đột)
  5. 4ESP32-S3-DevKitC N16R8 CAM: Bài 03 – COM vs USB (Native/OTG) – Dùng cổng nào, cấu hình nào?
  6. 5ESP32-S3-DevKitC N16R8 CAM: Bài 04 – Setup Arduino IDE v2 “đúng chuẩn” (PSRAM / Partition / USB-CDC)
  7. 6ESP32-S3-DevKitC N16R8 CAM: Bài 05 – Đọc pinout theo nhóm chức năng (an toàn vs xung đột)
  8. 7ESP32-S3-DevKitC N16R8 CAM: Bài 06 – Nhóm chân Boot/Strapping & các lỗi boot hay gặp
  9. 8ESP32-S3-DevKitC N16R8 CAM: Bài 07 – UART / I2C / SPI gợi ý mapping “an toàn” cho dự án
  10. 9ESP32-S3-DevKitC N16R8 CAM: Bài 7.1 – Hướng kết nối với các loại màn hình thông dụng
  11. 10ESP32-S3-DevKitC N16R8 CAM: Bài 08 – MicroSD pinout, test đọc/ghi ổn định
  12. 11ESP32-S3-DevKitC N16R8 CAM: Bài 09 — Camera DVP 24-pin – phân biệt OV2640/OV5640 & cấu hình cơ bản
  13. 12ESP32-S3-DevKitC N16R8 CAM: Bài 10 — Demo camera web server – stream ổn định, tối ưu PSRAM/heap
  14. 13ESP32-S3-DevKitC N16R8 CAM: Bài 11 — Chụp ảnh lưu microSD – đặt tên file, timestamp, chống full thẻ
  15. 14ESP32-S3-DevKitC N16R8 CAM: Bài 12 — Test builtin LED RGB WS2812 (GPIO48) và lưu ý nhiễu/nguồn
  16. 15ESP32-S3-DevKitC N16R8 CAM: Bài 13 – Dự án 1: Camera “Nhật ký” (chụp định kỳ + lưu thẻ + xem qua WiFi)
  17. 16ESP32-S3-DevKitC N16R8 CAM: Bài 14 – Dự án Camera an ninh mini
  18. 17ESP32-S3-DevKitC N16R8 CAM: Bai 15 – Dự án trợ lý AI Xiaozhi
  19. 18ESP32-S3-DevKitC N16R8 CAM: Bài 16 – Tập trung vào mục tiêu chạy lâu – ổn định
Kiến thức

ESP32-S3-DevKitC N16R8 CAM: Bài 06 – Nhóm chân Boot/Strapping & các lỗi boot hay gặp

Th12 2025
ESP32-S3-DevKitC N16R8 CAM: Bài 06 – Nhóm chân Boot/Strapping & các lỗi boot hay gặp

Giới thiệu

Sau khi đã hiểu pinout theo nhóm chức năng (Bài 05), có một nhóm chân tuy rất ít nhưng lại gây ra nhiều lỗi khó chịu nhất trên ESP32-S3-DevKitC N16R8 CAM: Boot / Strapping pins.

Rất nhiều trường hợp:

  • Board không boot
  • Không nạp được firmware
  • USB/COM biến mất

… không phải do code hay Arduino IDE, mà do gắn ngoại vi sai vào các chân boot.

Bài 06 sẽ giúp bạn:

  • Hiểu rõ boot/strapping là gì
  • Biết những chân nào tuyệt đối phải cẩn thận
  • Tránh các lỗi boot rất phổ biến khi làm dự án thực tế

1. Boot / Strapping pins là gì?

Strapping pins là các chân GPIO mà ESP32-S3 đọc trạng thái logic (HIGH/LOW) ngay tại thời điểm reset/boot để quyết định:

  • Boot từ Flash
  • Vào chế độ Download (nạp firmware)
  • Kích hoạt một số chế độ đặc biệt

? Sau khi boot xong, các chân này vẫn có thể dùng như GPIO, nhưng trạng thái lúc khởi động là cực kỳ quan trọng.

2. Chân Boot quan trọng nhất: GPIO0

Vai trò của GPIO0

  • GPIO0 = HIGH → Boot bình thường từ Flash
  • GPIO0 = LOW → Vào chế độ Download (nạp firmware)

Trên ESP32-S3-DevKitC N16R8 CAM

  • GPIO0 được nối với nút BOOT
  • Khi nhấn BOOT và reset → vào chế độ nạp

Lỗi thường gặp

  • ❌ Gắn module có pull-down vào GPIO0
  • ❌ Gắn nút nhấn/relay kéo GPIO0 xuống GND

? Kết quả: board không boot, không chạy code

3. Các chân Strapping khác cần lưu ý

Tuỳ phiên bản ESP32-S3, ngoài GPIO0 còn có một số chân ảnh hưởng boot (mức độ thấp hơn):

  • Các chân liên quan đến USB / JTAG / log
  • Các chân có chức năng đặc biệt khi reset

⚠️ Trên board CAM, nhiều chân này đã được dùng sẵn, bạn không nên tái sử dụng.

4. Những tình huống boot lỗi rất hay gặp

Trường hợp 1: Board không boot khi gắn ngoại vi

Nguyên nhân:

  • Ngoại vi kéo LOW GPIO0 lúc boot

Cách xử lý:

  • Tháo ngoại vi
  • Reset lại board
  • Đổi GPIO khác (xem Bài 05 / 07)

Trường hợp 2: Không nạp được firmware

Nguyên nhân:

  • GPIO0 không xuống LOW khi cần
  • USB CDC / COM cấu hình sai

Cách xử lý:

  • Giữ nút BOOT khi nạp
  • Dùng cổng COM (USB-UART)

Trường hợp 3: Board reset liên tục

Nguyên nhân:

  • Boot pin bị nhiễu
  • Nguồn không ổn định

Cách xử lý:

  • Kiểm tra nguồn
  • Không gắn ngoại vi vào boot pin

5. Checklist an toàn khi làm việc với Boot pins

✅ Không gắn ngoại vi vào GPIO0
✅ Không dùng GPIO0 cho relay, nút nhấn ngoài
✅ Khi gặp lỗi boot → tháo hết ngoại vi trước

? Đây là quy tắc sống còn khi làm ESP32-S3 CAM

6. Tư duy thiết kế đúng với Boot / Strapping pins

  • Boot pins không phải GPIO thường
  • Ưu tiên tránh hoàn toàn nếu không thật sự cần
  • Nếu bắt buộc dùng → đảm bảo logic HIGH lúc boot

Chuẩn bị cho bài tiếp theo

Bài 07, chúng ta sẽ:

  • Mapping UART / I2C / SPI an toàn
  • Đưa ra bảng GPIO khuyến nghị cho dự án thực tế