-
-
-
Tổng tiền thanh toán:
-
Điều khiển động cơ BLDC không chổi than không cảm biến Hall bằng IR2101 hoặc IR2184 khó như nào?
28/06/2026
Không dùng Hall sensor (sensorless BLDC) thì cách “an toàn nhất” khi chạy với IR2101/IR2184 là:
👉 Điều khiển theo Back-EMF + Deadtime chuẩn + khởi động open-loop (ramp tốc độ)
1. Cách an toàn nhất: Sensorless Back-EMF (chuẩn công nghiệp)
Back EMF được dùng để xác định vị trí rotor bằng cách:
- Đọc pha không cấp điện (floating phase)
- So sánh với Vdc/2 (virtual neutral)
- Xác định zero-crossing (ZC)
👉 Từ đó suy ra thời điểm chuyển mạch 6 bước (6-step commutation)
Ưu điểm
- Không cần Hall
- Rẻ, phổ biến trong quạt BLDC, drone, máy bơm
- Hiệu suất cao
Nhược điểm
- KHÔNG tự khởi động được ở tốc độ = 0
- Yếu ở tốc độ thấp

2. Điểm quan trọng để “an toàn” với IR2101
IR2101 không thông minh → nên phải xử lý bằng MCU:
Bắt buộc phải có:
(1) Khởi động open-loop (ramp)
- Quay “mù” 6-step trong 1–3 giây đầu
- Tăng tốc từ từ
👉 Nếu không có cái này:
❌ motor rung mạnh
❌ MOSFET dễ nổ do lệch pha
(2) Deadtime (cực quan trọng)
Dead Time
- 1–3 µs (tùy MOSFET)
- IR2101 không tự tạo deadtime
👉 Nếu không có:
❌ shoot-through → nổ MOSFET rất nhanh
(3) Lọc tín hiệu Back-EMF
- RC filter vào ADC (1k–10k + 1nF–10nF)
- So sánh với Vref = Vbus/2
3. Sơ đồ nguyên lý điều khiển sensorless (tư duy chuẩn)
MCU
├── PWM U/V/W → IR2101 x3 → MOSFET 3 pha
├── đo phase floating → ADC
├── detect zero-crossing
├── delay 30° điện
└── chuyển bước 6-step
4. Những cách KHÔNG an toàn (tránh)
❌ Chạy open-loop mãi không feedback
❌ Không deadtime
❌ Không đo BEMF mà “ước lượng thời gian”
❌ PWM quá cao khi chưa sync rotor
❌ Bootstrap tụ nhỏ / layout xấu
5. Cách an toàn nhất theo thực tế công nghiệp
Nếu bạn cần mức “ổn định như thiết bị thương mại”:
✔ Best practice:
- Start open-loop ramp (500 ms – 2 s)
- Chuyển sang Back-EMF sensing
- Có protection:
- overcurrent
- undervoltage
- stall detect (không thấy ZC)
- Giới hạn duty cycle khi startup
6. Gợi ý nâng cấp (rất quan trọng)
Nếu bạn muốn dễ làm hơn IR2101:
- DRV8301 / DRV8313 (có protection + current sense)
- hoặc STM32 + driver + opamp BEMF
IR2101 dùng được nhưng:
👉 “phải tự làm hết thông minh”
Kết luận ngắn
Không Hall an toàn nhất =
Back-EMF sensorless + Open-loop startup + Deadtime chuẩn + protection MCU
Sơ đồ gợi ý 1

Sơ đồ gợi ý 2
IR2184 chỉ là IC điều khiển 1 nửa cầu (Half-Bridge Driver), vì vậy để điều khiển động cơ BLDC 3 pha bạn cần:
- STM32F4 (điều khiển)
- 3 × IR2184 (mỗi IC điều khiển 1 pha)
- 6 × IRF3205 (mỗi pha gồm 2 MOSFET N)
- Chiết áp 10k để điều chỉnh tốc độ
- Nguồn 12–24V (tùy động cơ)
- Tụ bootstrap + diode bootstrap cho từng IR2184
- Nếu động cơ có Hall thì kết nối 3 tín hiệu Hall vào STM32 để chuyển mạch chính xác; nếu không có Hall thì cần thuật toán sensorless (phức tạp hơn). Điều khiển BLDC ba pha thường dùng nghịch lưu 3 nửa cầu với chuyển mạch 6 bước (Six-Step).
Sơ đồ khối
STM32F407
ADC1
│
Chiết áp 10k
│
TIM1 PWM1 ───────► IR2184 #1 ─► IRF3205 UH
IRF3205 UL
TIM1 PWM2 ───────► IR2184 #2 ─► IRF3205 VH
IRF3205 VL
TIM1 PWM3 ───────► IR2184 #3 ─► IRF3205 WH
IRF3205 WL
│
▼
Động cơ BLDC
U V W
Chiết áp điều chỉnh tốc độ
Đấu như sau:
3.3V
│
│
10K
│────► PA0 (ADC)
│
GND
Đọc ADC:
adc = HAL_ADC_GetValue(&hadc1);
speed = adc * MAX_PWM / 4095;
Ví dụ:
| ADC | Duty PWM |
|---|---|
| 0 | 0% |
| 1024 | 25% |
| 2048 | 50% |
| 3072 | 75% |
| 4095 | 100% |
Phần công suất
Mỗi pha gồm:
+24V
IRF3205
│
HO ───────┤
│
U---+------> Motor
LO ───────┤
IRF3205
│
GND
Ba pha giống nhau.
Bootstrap IR2184
Mỗi IR2184 cần:
- 1 diode nhanh (UF4007 hoặc tương đương)
- 1 tụ bootstrap 100 nF–1 µF
12V
│
├──► Diode
│
VB
│
===100nF
│
VS
Điều khiển tốc độ
STM32 chỉ cần thay đổi Duty PWM.
Ví dụ:
TIM1->CCR1 = speed;
TIM1->CCR2 = speed;
TIM1->CCR3 = speed;
Chiết áp tăng → PWM tăng → động cơ quay nhanh hơn.
Điều khiển quay
Không thể chỉ phát PWM là động cơ BLDC sẽ quay. STM32 phải chuyển mạch 6 bước (Six-Step Commutation) hoặc dùng FOC để lần lượt kích hoạt các cặp MOSFET theo đúng trình tự.
Ví dụ bảng Six-Step:
| Step | High MOSFET | Low MOSFET |
|---|---|---|
| 1 | UH | VL |
| 2 | UH | WL |
| 3 | VH | WL |
| 4 | VH | UL |
| 5 | WH | UL |
| 6 | WH | VL |
Lặp lại chu kỳ này theo vị trí rotor.
Lưu ý quan trọng
IR2184 có chỉ một chân IN và tự tạo tín hiệu High/Low bổ sung với dead-time tích hợp, nên phù hợp để điều khiển một nửa cầu độc lập. Với BLDC 3 pha, việc đưa ba IR2184 hoạt động đúng trình tự Six-Step sẽ phức tạp hơn so với dùng IC chuyên dụng 3 pha như IR2130, DRV8301 hoặc DRV8302.
Khuyến nghị
Nếu mục tiêu của bạn là tự thiết kế driver BLDC bằng STM32F4, mình có thể vẽ trọn bộ:
- Sơ đồ nguyên lý đầy đủ (STM32F407 + 3×IR2184 + 6×IRF3205).
- Mạch bootstrap, nguồn 12V/5V/3.3V.
- Mạch đọc Hall hoặc sensorless.
- Mạch chiết áp điều chỉnh tốc độ.
- Code STM32CubeIDE điều khiển Six-Step hoàn chỉnh (PWM + Hall + tăng/giảm tốc + đảo chiều). Đây là cấu hình phù hợp để tự chế tạo một driver BLDC công suất khoảng 12–48V, 20–50A.
IR2130 dễ hơn IR2184 rất nhiều nếu mục tiêu của bạn là tự làm driver BLDC 3 pha bằng STM32.
So sánh nhanh
| Tiêu chí | IR2184 | IR2130 |
|---|---|---|
| Số IC cần | 3 | 1 |
| Điều khiển | 1 nửa cầu | 3 nửa cầu (3 pha) |
| Số MOSFET điều khiển | 2 | 6 |
| Đi dây | Khá nhiều | Gọn hơn |
| Bootstrap | 3 mạch | 3 mạch |
| Bảo vệ | Ít | Có bảo vệ tốt hơn |
| Phù hợp BLDC | Tạm được | Rất phù hợp |
IR2101 có mức độ khó gần như IR2184, vì cả hai đều là IC driver nửa cầu (Half-Bridge Driver). Nếu làm BLDC 3 pha, bạn vẫn cần 3 IC.
So sánh IR2101 - IR2184 - IR2130
| Tiêu chí | IR2101 | IR2184 | IR2130 |
|---|---|---|---|
| Điều khiển | 1 nửa cầu | 1 nửa cầu | 3 nửa cầu |
| Số IC cần cho BLDC | 3 | 3 | 1 |
| Số MOSFET | 6 | 6 | 6 |
| Độ khó phần cứng | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
| Độ khó lập trình | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| Phù hợp BLDC | Có | Có | Rất phù hợp |
Không giống hoàn toàn. Mặc dù cả hai đều là driver half-bridge 8 chân và có cùng các chân nguồn/gate, nhưng IR2101 và IR2184 không thể thay thế trực tiếp vì khác phần chân điều khiển và chức năng.
| Chân | IR2101 | IR2184 |
|---|---|---|
| 1 | VCC | VCC |
| 2 | HIN | IN |
| 3 | LIN | SD (Shutdown) |
| 4 | COM | COM |
| 5 | LO | LO |
| 6 | VS | VS |
| 7 | HO | HO |
| 8 | VB | VB |
Điểm khác nhau quan trọng
IR2101
- Có 2 chân điều khiển độc lập:
- HIN → điều khiển MOSFET trên
- LIN → điều khiển MOSFET dưới
- Không có deadtime nội.
- Phù hợp với:
- BLDC 6-step
- FOC
- Điều khiển PWM độc lập từ STM32, DSP...
IR2184
- Chỉ có 1 chân IN.
- IC tự tạo tín hiệu HO và LO bổ sung nhau.
- Có deadtime chống dẫn chéo khoảng 500 ns (phiên bản IR2184).
Nếu đang dùng BLDC với STM32
Dùng IR2101
PWM_H ------> HIN
PWM_L ------> LIN
MCU phải tự tạo:
- Deadtime
- Không cho HIN và LIN cùng bật
Dùng IR2184
PWM --------> IN
Enable -----> SD
IC tự sinh:
HO = PWM
LO = đảo PWM + deadtime
Có thay thế trực tiếp được không?
❌ Không.
Ví dụ:
IR2101:
MCU
├── HIN
└── LIN
IR2184:
MCU
├── IN
└── SD
Do đó nếu thay IR2101 bằng IR2184:
- Phải sửa phần mềm điều khiển.
- Có thể phải sửa cả PCB nếu đang sử dụng chân 3 làm LIN (trên IR2184 chân này là SD).
Khuyến nghị cho BLDC
- FOC hoặc 6-step sensorless/Hall: nên dùng IR2101, vì MCU điều khiển độc lập high-side và low-side.
- Half-bridge đơn giản, inverter, buck, hoặc chỉ cần một tín hiệu PWM: IR2184 thuận tiện hơn nhờ có deadtime tích hợp.
Bảo vệ quá áp và thấp áp làm gì?
Trong ESC BLDC, bảo vệ quá áp (OVP - Over Voltage Protection) và bảo vệ thấp áp (UVP/UVLO - Under Voltage Protection) đều rất quan trọng. Chúng không chỉ bảo vệ driver như IR2184 mà còn bảo vệ MOSFET, tụ nguồn và chính động cơ.
1. Bảo vệ thấp áp (UVP/UVLO)
Mục đích
Ngăn ESC hoạt động khi điện áp nguồn quá thấp.
Ví dụ:
- Pin Li-ion 3S: dưới khoảng 9V
- Pin Li-ion 6S: dưới khoảng 18V
- Nguồn 24V: dưới khoảng 20V (tùy thiết kế)
Nếu không bảo vệ sẽ xảy ra
- MOSFET mở không hết vì điện áp gate không đủ.
- MOSFET làm việc ở vùng tuyến tính → rất nóng.
- Dòng tăng cao.
- IR2184 có thể mất bootstrap.
- Động cơ rung, mất đồng bộ.
- Có thể cháy MOSFET.
Ví dụ:
Nguồn 24V tụt xuống còn 10V.
IR2184 vẫn cố điều khiển.
Gate chỉ lên khoảng 6–8V.
MOSFET không mở hoàn toàn.
→ Công suất tiêu tán tăng rất lớn.
2. Bảo vệ quá áp (OVP)
Mục đích
Ngắt PWM khi điện áp DC Bus vượt ngưỡng.
Ví dụ:
Nguồn thiết kế:
- 24V
Ngưỡng OVP:
- 30V
Nếu điện áp lên 35V
→ MCU dừng PWM.
Vì sao điện áp lại tăng?
Động cơ BLDC chính là máy phát điện.
Khi:
- giảm ga đột ngột
- phanh
- tải kéo động cơ
- quán tính lớn
nó sẽ phát điện ngược về DC Bus.
Ví dụ:
24V
↓
Motor quay nhanh
↓
Điện áp Bus tăng
↓
35V
↓
MOSFET nổ nếu không bảo vệ.
3. Bảo vệ cho IR2184
IR2184 có giới hạn:
- VCC tối đa khoảng 20V.
- VB–VS cũng có giới hạn.
Nếu quá áp xuất hiện:
- bootstrap hỏng
- driver hỏng
- gate MOSFET bị quá áp
4. MCU thường xử lý thế nào?
STM32 đọc điện áp DC Bus qua ADC.
Ví dụ:
ADC đọc VBUS
Nếu VBUS > 30V
{
Disable PWM
SD = LOW
}
Khi điện áp trở về bình thường mới cho phép chạy lại.
5. Ngoài phần mềm nên có phần cứng
Thông thường người ta kết hợp:
- TVS diode trên DC Bus để cắt các xung áp rất ngắn.
- Tụ điện dung lớn đặt sát cầu công suất.
- Nếu công suất lớn hoặc có tái sinh năng lượng nhiều, dùng mạch hãm (brake chopper) với điện trở xả để tiêu tán năng lượng dư.
6. Giá trị tham khảo
| Hệ nguồn | UVP | OVP |
|---|---|---|
| 12V | 10V | 15V |
| 24V | 20V | 30V |
| 36V | 30V | 44V |
| 48V | 40V | 58V |
Các giá trị này phụ thuộc loại pin hoặc nguồn cấp và điện áp chịu đựng của MOSFET.
Với dự án của bạn
Bạn đang hướng tới ESC BLDC dùng STM32 + IR2184. Mình khuyến nghị thêm các lớp bảo vệ sau:
- UVP: Giám sát điện áp DC Bus bằng ADC, ngắt PWM khi thấp áp.
- OVP: Giám sát điện áp DC Bus bằng ADC hoặc comparator, ngắt PWM khi quá áp.
- OCP (Over Current Protection): Đo dòng bằng điện trở shunt và bộ khuếch đại dòng (ví dụ INA180), ngắt ngay khi quá dòng.
- OTP (Over Temperature Protection): Dùng NTC gắn trên tản nhiệt hoặc gần MOSFET để dừng hệ thống khi quá nhiệt.
Đây là cấu hình bảo vệ thường thấy trong các ESC thương mại và giúp tăng đáng kể độ tin cậy của hệ thống.