Tuyệt vời! Bây giờ chúng ta sẽ bắt đầu Bài 7, đây là dự án đầu tiên có thể mang đi sản xuất thực tế.
Mình sẽ hướng dẫn theo đúng quy trình của một kỹ sư R&D, không chỉ là “vẽ mạch”, mà còn giải thích tại sao phải nối như vậy và tại sao phải bố trí PCB như vậy.
KHÓA HỌC ALTIUM DESIGNER
BÀI 7: THIẾT KẾ BO MẠCH ESP32-WROOM-32 TỪ A → Z
Mục tiêu
Sau bài này bạn sẽ có thể tự thiết kế một bo mạch ESP32 có thể:
- ✔ Nạp chương trình qua USB
- ✔ Chạy WiFi
- ✔ Chạy Bluetooth
- ✔ Có Auto Download
- ✔ Có nút Reset
- ✔ Có nút Boot
- ✔ Có LED báo nguồn
- ✔ Có LED User
- ✔ Có Header mở rộng GPIO
Đây là cấu hình tương tự các board phát triển ESP32 phổ biến.
Phần 1. Lập sơ đồ khối (Block Diagram)
Trước khi mở Altium, hãy xác định kiến trúc tổng thể:
USB Type-C
│
USB-UART Bridge
(CP2102N / CH340C / CH9102F)
│
TX ─────────────┤──────────── RX
RX ─────────────┤──────────── TX
│
ESP32-WROOM-32
│
┌────────────┬───────────────┬─────────────┐
│ │ │ │
LED Buttons Header Antenna
EN / BOOT GPIO
│
AMS1117-3.3V
│
USB 5V
Lưu ý: Hiện nay nhiều board mới ưu tiên USB Type-C thay cho Micro USB. Nếu đây là thiết kế mới, mình khuyên dùng USB Type-C.
Phần 2. Danh sách linh kiện (BOM)
| Ký hiệu | Linh kiện | Ghi chú |
|---|---|---|
| U1 | ESP32-WROOM-32 | Module chính |
| U2 | USB-UART Bridge | CP2102N hoặc CH340C |
| U3 | LDO 3.3V | AMS1117-3.3 hoặc AP2112K (khuyên dùng hơn) |
| SW1 | EN | Reset |
| SW2 | BOOT | GPIO0 |
| LED1 | Power | Đỏ |
| LED2 | User | Xanh |
| R | Điện trở | 10k, 330Ω… |
| C | Tụ gốm | 100nF, 10µF |
| J1 | USB-C | Nguồn + UART |
| J2 | Header GPIO | 2.54mm |
Phần 3. Mạch nguồn
USB 5V
│
Polyfuse (tùy chọn)
│
TVS Diode (khuyến nghị)
│
LDO 3.3V
│
ESP32
Tụ lọc
- Input: 10µF + 100nF
- Output: 10µF + 100nF
Đặt sát chân LDO.
Phần 4. Mạch Reset
3V3
│
10k
│
EN ----------- Nút Reset -------- GND
EN phải luôn được kéo lên 3.3V bằng điện trở.
Phần 5. Mạch Boot
3V3
│
10k
│
GPIO0 ------- Nút BOOT ------- GND
Khi giữ BOOT và nhấn RESET, ESP32 sẽ vào chế độ nạp chương trình.
Phần 6. Auto Download
Nếu dùng CP2102N hoặc CH340C, có thể dùng DTR và RTS để điều khiển tự động EN và GPIO0 thông qua hai transistor NPN. Đây là mạch mà hầu hết các board ESP32 DevKit sử dụng.
Phần 7. USB-UART
Kết nối:
| USB-UART | ESP32 |
|---|---|
| TXD | RX0 |
| RXD | TX0 |
| GND | GND |
| 3V3 (nếu có) | Theo thiết kế nguồn |
| DTR | Mạch Auto Download |
| RTS | Mạch Auto Download |
Phần 8. LED
LED nguồn
3V3
│
330Ω
│
LED
│
GND
Sáng khi có nguồn.
LED User
Ví dụ nối với GPIO2:
GPIO2
│
330Ω
│
LED
│
GND
GPIO có thể điều khiển LED bằng phần mềm.
Phần 9. Header GPIO
Nên đưa ra các chân thường dùng như:
- 3V3
- GND
- GPIO4
- GPIO5
- GPIO12
- GPIO13
- GPIO14
- GPIO15
- GPIO16
- GPIO17
- GPIO18
- GPIO19
- GPIO21
- GPIO22
- GPIO23
- GPIO25
- GPIO26
- GPIO27
- GPIO32
- GPIO33
Tránh sử dụng tùy tiện các chân liên quan đến boot nếu chưa hiểu rõ.
Phần 10. PCB Placement
Đây là cách bố trí mà mình khuyến nghị:
________________________________________
USB-C
CP2102
AMS1117
ESP32 MODULE
(Antenna)
← Không đặt đồng
GPIO Header
________________________________________
Quy tắc vàng
Antenna
Không được:
- Đổ đồng dưới anten.
- Đi dây dưới anten.
- Đặt linh kiện dưới anten.
- Đặt vít kim loại hoặc khung kim loại gần anten.
Điều này giúp tối ưu hiệu suất Wi-Fi/Bluetooth.
Tụ Decoupling
Tất cả tụ 100nF phải đặt sát chân cấp nguồn của IC.
Crystal
Nếu dùng IC USB-UART có thạch anh ngoài, đặt rất gần IC và đi dây ngắn, cân đối.
USB
Đường D+ và D− nên đi song song, ngắn và tránh đổi lớp nếu có thể. Với USB Full-Speed, việc giữ cặp tín hiệu gọn gàng sẽ giúp tăng độ ổn định.
Phần 11. Thiết lập Design Rules
Ví dụ cho bo mạch 2 lớp:
- Track tín hiệu: 0,20–0,25 mm.
- Track nguồn 3.3V: 0,50 mm hoặc lớn hơn nếu cần.
- Clearance: theo khả năng của nhà sản xuất PCB (ví dụ 0,20 mm).
- Via: chọn theo năng lực sản xuất của nhà gia công.
Phần 12. Kiểm tra
Trước khi xuất Gerber, hãy tự kiểm tra:
- Tất cả pad đều có kết nối?
- Không còn Airwire?
- Không còn lỗi DRC?
- Pin 1 đúng?
- LED đúng chiều?
- Diode đúng chiều?
- Tụ phân cực đúng cực?
- Connector đúng hướng?
- Vùng anten không bị đổ đồng?
Phần 13. Xuất Gerber
Sau khi mọi thứ đều đạt yêu cầu:
Compile
↓
DRC
↓
Gerber
↓
NC Drill
↓
ZIP
↓
Upload lên nhà sản xuất PCB
Sau Bài 7, bạn sẽ có thể tự thiết kế
- ✔ Board ESP32 DevKit.
- ✔ Board điều khiển Relay Wi-Fi.
- ✔ Board IoT.
- ✔ Board cảm biến.
- ✔ Board điều khiển động cơ.
- ✔ Board thu thập dữ liệu.
Khóa học sẽ tiếp tục theo hướng chuyên sâu
Từ đây, mình đề xuất lộ trình tiếp theo thay vì chỉ dừng ở các ví dụ đơn giản:
- Bài 8: Thiết kế PCB 4 lớp (4-Layer PCB) – khi nào cần dùng, cách bố trí Plane nguồn và GND.
- Bài 9: Thiết kế mạch nguồn chuyển mạch (Buck Converter) – bố trí linh kiện để giảm nhiễu.
- Bài 10: Thiết kế tốc độ cao (High-Speed PCB) – USB, Ethernet, SPI tốc độ cao, tín hiệu vi sai.
- Bài 11: Thiết kế PCB cho sản xuất (DFM/DFA) – các lỗi thường khiến nhà máy từ chối hoặc làm tăng chi phí.
- Bài 12: Thiết kế sản phẩm hoàn chỉnh.
🎯 Bài 12 sẽ là đồ án cuối khóa: chúng ta sẽ cùng thiết kế từ đầu đến cuối bo mạch DigitalClock Professional của bạn, sử dụng ESP32 hoặc STM32 (tùy mục tiêu), RTC, LCD, TTP229, 74HC595 và các ngõ ra điều khiển. Chúng ta sẽ đi từ sơ đồ nguyên lý, tạo thư viện nếu cần, layout PCB, kiểm tra DRC, đến xuất Gerber sẵn sàng gửi sản xuất. Đây sẽ là dự án tổng hợp toàn bộ kiến thức của khóa học và cũng là một sản phẩm thực tế bạn có thể sử dụng hoặc phát triển tiếp.