Series
Hướng Dẫn 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 03 – COM vs USB (Native/OTG) – Dùng cổng nào, cấu hình nào?

Th12 2025
ESP32-S3-DevKitC N16R8 CAM: Bài 03 – COM vs USB (Native/OTG) – Dùng cổng nào, cấu hình nào?

Giới thiệu

Nếu bạn từng gặp các tình huống như không thấy cổng COM, nạp code thất bại, Serial Monitor không hiện log hoặc USB lúc nhận lúc không, thì gần như chắc chắn bạn đang chọn sai cổng USB hoặc cấu hình chưa đúng.

ESP32-S3-DevKitC N16R8 CAM có hai cổng USB-C: một cổng COM (USB-UART) và một cổng USB Native (OTG). Mỗi cổng có mục đích sử dụng hoàn toàn khác nhau.

Trong Bài 03 của 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ế”, chúng ta sẽ làm rõ:

  • Khi nào dùng COM, khi nào dùng USB Native
  • Cách cấu hình Arduino IDE đúng cho từng cổng
  • Các lỗi thường gặp và cách xử lý

1. Tổng quan hai cổng USB trên ESP32-S3-DevKitC N16R8 CAM

Cổng COM (USB-UART)

Bản chất:

  • Đi qua chip USB-to-UART (CH343 / CP210x / CH9102 – tuỳ board)
  • Hoạt động độc lập với firmware

Dùng để:

  • Nạp firmware (an toàn, ổn định)
  • Serial Monitor debug

Ưu điểm:

  • Dễ dùng cho người mới
  • Không cần cấu hình phức tạp
  • Ít lỗi

Cổng USB Native (OTG)

Bản chất:

  • Kết nối trực tiếp vào USB controller tích hợp của ESP32-S3
  • Phụ thuộc vào firmware và cấu hình

Dùng để:

  • USB-CDC (Serial qua USB)
  • HID (keyboard, mouse)
  • MSC (USB Disk)

Ưu điểm:

  • Không cần chip UART ngoài
  • Linh hoạt cho ứng dụng nâng cao

2. Nên dùng cổng nào trong từng giai đoạn?

Khi mới bắt đầu (khuyến nghị)

Dùng cổng COM (USB-UART)

  • Nạp code ổn định
  • Debug dễ
  • Tránh các lỗi do USB CDC

Khi đã quen hoặc làm sản phẩm

Dùng USB Native (OTG) khi:

  • Muốn giảm linh kiện
  • Làm USB HID/MSC
  • Cần tốc độ cao hơn

3. Cấu hình Arduino IDE cho cổng COM (USB-UART)

Thiết lập khuyến nghị

  • Board: ESP32S3 Dev Module
  • Port: COMx / /dev/ttyUSBx
  • USB CDC On Boot: Disabled
  • Upload Mode: UART0 / USB-UART
  • Baudrate: 921600 (có thể giảm nếu lỗi)

Dấu hiệu đúng

  • Serial log xuất hiện ngay sau reset
  • Nạp code không cần giữ BOOT

4. Cấu hình Arduino IDE cho USB Native (OTG)

Thiết lập khuyến nghị

  • Board: ESP32S3 Dev Module
  • Port: USB CDC
  • USB CDC On Boot: Enabled
  • Upload Mode: USB

Lưu ý quan trọng

  • Nếu cấu hình sai → máy không nhận USB
  • Cần reset lại board sau khi nạp

5. Các lỗi phổ biến & cách xử lý

Lỗi 1: Không thấy cổng COM

Nguyên nhân:

  • Cắm nhầm cổng USB
  • Cáp USB chỉ sạc
  • Thiếu driver USB-UART

Cách xử lý:

  • Đổi sang cổng COM
  • Đổi cáp USB
  • Cài driver phù hợp

Lỗi 2: USB Native không nhận

Nguyên nhân:

  • Chưa bật USB CDC On Boot
  • Firmware lỗi

Cách xử lý:

  • Nạp lại firmware bằng cổng COM
  • Bật USB CDC đúng cách

Lỗi 3: Serial Monitor không có log

Nguyên nhân:

  • Baudrate sai
  • Debug in ra cổng khác

Cách xử lý:

  • Đặt 115200
  • Kiểm tra Serial.begin()

6. Checklist chọn đúng cổng USB

  • Mới học → COM
  • Debug firmware → COM
  • USB HID/CDC → USB Native
  • Gặp lỗi USB → quay về COM

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

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

  • Setup Arduino IDE v2 chuẩn cho ESP32-S3 N16R8 CAM
  • Chọn partition, PSRAM, USB CDC đúng cách