ESP32 CH340 hay CP2102, cổng Type-C hay Micro USB: khác nhau gì và cài driver trên Windows 10, 11
Chip CH340 và CP2102 trên mạch ESP32 làm gì, khác nhau ở đâu, cách nhận biết qua Device Manager và mã VID:PID, cách cài driver trên Windows 10, 11, chọn cổng Type-C hay Micro USB.
Khi chọn mua ESP32 DevKit V1 sẽ gặp hai bản gần như giống hệt nhau: một bản ghi "chip CP2102", một bản ghi "chip CH340". Cùng module ESP32, cùng sơ đồ chân, chỉ khác con chip nhỏ cạnh cổng USB. Bài viết giải thích con chip đó làm gì, CH340 và CP2102 khác nhau ở đâu, cách nhận biết mạch đang dùng chip nào, cách cài driver trên Windows 10, 11, và khác biệt giữa cổng Type-C với Micro USB.
1. Chip USB trên mạch ESP32 làm gì?
Chip ESP32 (dòng ESP32 thường) không có cổng USB. Nó chỉ giao tiếp với máy tính qua cổng nối tiếp UART ở hai chân TX0, RX0. Chip USB–UART (CP2102 hoặc CH340) đứng giữa, đổi tín hiệu USB của máy tính thành UART cho ESP32. Nhờ chip này mà máy tính thấy mạch ESP32 như một cổng COM để:
- nạp chương trình từ Arduino IDE, Thonny, Flash Download Tool;
- đọc và gửi dữ liệu qua Serial Monitor;
- tự đưa ESP32 vào chế độ nạp: hai chân DTR, RTS của chip điều khiển nút EN và GPIO0 qua hai transistor nhỏ, nên thường không phải giữ nút BOOT.

2. CH340 và CP2102 khác nhau ở đâu?

Với người dùng ESP32, khác biệt thật sự chỉ nằm ở driver trên máy tính:
- CP2102 của Silicon Labs: Windows 10, 11 thường tải driver tự động qua Windows Update ngay lần cắm đầu, nên người mới ít gặp rắc rối.
- CH340 của WCH: rẻ hơn nên mạch dùng chip này thường rẻ hơn. Windows 10, 11 bản mới cũng thường tự nhận; máy cũ, máy không có mạng hoặc tắt Windows Update có thể phải cài driver một lần.
Sau khi đã nhận driver, hai bản nạp code nhanh như nhau ở tốc độ 921600 baud mặc định, chương trình chạy giống hệt nhau. Bản CH340 trên mạch DevKit thường là CH340C (có bộ dao động bên trong); các mã CH340G, CH340E, CH340K chỉ khác kiểu vỏ và cách cấp xung nhịp, dùng chung một driver.
3. Cách biết mạch đang dùng chip nào
- Nhìn chip ngay sau cổng USB: chip vuông nhỏ, chân ở bốn cạnh là CP2102; chip chữ nhật hai hàng chân có chữ CH340 là CH340.
- Xem tên trong Device Manager khi cắm mạch (mục 4).
- Xem mã phần cứng: trong Device Manager, nhấp đúp vào thiết bị, thẻ Details, chọn Hardware Ids. Có
VID_10C4&PID_EA60là CP210x; cóVID_1A86&PID_7523là CH340.
4. Xem mạch ESP32 trong Device Manager

| Device Manager hiện | Ý nghĩa | Việc cần làm |
|---|---|---|
| Mục Ports (COM & LPT) có tên CP210x hoặc CH340 kèm số COM | Đã nhận mạch, driver đúng | Chọn số COM đó trong Arduino IDE |
| Mục Other devices có thiết bị dấu chấm than vàng | Máy thấy mạch nhưng chưa có driver | Cài driver theo mục 5 |
| Unknown USB Device (Device Descriptor Request Failed) | Tín hiệu USB không đọc được | Đổi dây, đổi cổng USB; nếu vẫn vậy có thể mạch lỗi |
| Không có gì thay đổi khi cắm rút | Dây chỉ có hai sợi nguồn, cổng USB hỏng, mạch không có nguồn | Đổi dây có truyền dữ liệu, xem đèn nguồn trên mạch |
5. Cài driver CP2102 và CH340 trên Windows

5.1. Driver CP210x cho mạch CP2102
- Cắm mạch, máy có mạng, chờ một phút để Windows Update tự cài. Nếu mục Ports đã hiện CP210x thì không cần làm gì thêm.
- Nếu vẫn báo thiếu: vào trang silabs.com, tìm CP210x USB to UART Bridge VCP Drivers, tải gói driver cho Windows.
- Giải nén file zip, nhấp chuột phải vào file .inf trong thư mục vừa giải nén, chọn Install.
- Rút mạch ra, cắm lại, kiểm tra Device Manager.
5.2. Driver CH340 cho mạch CH340
- Cắm mạch, chờ Windows Update tự cài như trên.
- Nếu vẫn báo thiếu: vào trang wch-ic.com, tải file CH341SER.EXE (driver dùng chung cho CH340 và CH341).
- Chạy file, bấm INSTALL, chờ thông báo cài thành công. Nếu trước đó đã cài bản lỗi, bấm UNINSTALL rồi INSTALL lại.
- Rút mạch ra, cắm lại, kiểm tra Device Manager.
Chỉ tải driver từ trang của hãng chip. Các gói "driver tổng hợp" trên mạng có thể đi kèm phần mềm không mong muốn. Trên Linux, cả hai loại chip đều có sẵn driver.
6. Cổng Type-C hay Micro USB?
- Type-C: cắm mặt nào cũng được, chân cắm chắc, dùng chung dây với điện thoại đời mới.
- Micro USB: vẫn chạy tốt, nhưng cổng dễ lỏng nếu cắm rút nhiều lần.
- Cả hai đều truyền dữ liệu chuẩn USB 2.0 như nhau; tốc độ nạp code không phụ thuộc kiểu cổng.
Hai lưu ý khi chọn dây:
- Dây phải có đường truyền dữ liệu. Dây sạc giá rẻ chỉ có hai sợi nguồn: đèn mạch vẫn sáng nhưng máy tính không thấy cổng COM.
- Với mạch Type-C, dây USB-A sang Type-C luôn cấp được nguồn. Dây Type-C sang Type-C nối từ máy tính hay củ sạc đời mới có thể không cấp nguồn nếu mạch thiếu hai điện trở 5,1 kΩ ở chân CC1, CC2. Nguyên nhân và cách nhận biết có trong bài vì sao cắm sạc Type-C không lên nguồn.
7. Lỗi hay gặp liên quan chip USB
| Hiện tượng | Nguyên nhân | Cách xử lý |
|---|---|---|
| Số COM đổi mỗi lần cắm vào cổng USB khác | Windows cấp số COM theo từng cổng USB | Chọn lại cổng trong Arduino IDE, hoặc luôn cắm cùng một cổng |
| Arduino IDE báo cổng đang bận | Một chương trình khác đang mở cổng COM | Đóng Serial Monitor ở cửa sổ khác, phần mềm đọc cổng COM khác |
| Đã cài driver CH340 mà vẫn dấu chấm than | Driver cũ hỏng, cài chồng nhiều bản | UNINSTALL rồi INSTALL lại bằng CH341SER.EXE |
Nạp báo Failed to connect dù đã thấy cổng COM | Mạch không tự vào chế độ nạp | Giữ nút BOOT khi Arduino IDE hiện Connecting |
Các trường hợp khác, kể cả khi đèn nguồn sáng mà máy tính không phản ứng, có trong bài ESP32 không nhận cổng COM cùng loạt.
8. Xem thêm
- ESP32 DevKit V1 30 chân, Type-C, CP2102, bản chip CH340, bản Micro USB anten rời và bản 38 chân.
- Dây USB nạp code có truyền dữ liệu, đầu Type-C hoặc Micro USB.
- Bắt đầu với Arduino Nano CH340: cũng dùng driver CH340.
- Chân D+, D− trên jack USB Type-C: đường dữ liệu USB đi qua đâu.
- Bài cùng loạt: chọn mạch ESP32 phù hợp, cài ESP32 vào Arduino IDE, ESP32 không nhận cổng COM.
Xem thêm