[Help] Không hiểu về phần tạo dead-band trong LM3S9D92
Mấy ac chỉ giáo giùm em phần tạo dead-band trong con LM3s9d92 với.
Em đọc user guide thì nó nói là:
This function sets the dead bands for the specified PWM generator, where the dead bands are defined as the number of PWM clock ticks from the rising or falling edge of the generator’s OutA signal. Note that this function causes the coupling of OutB to OutA.
Còn trong datasheet thì là cái này:
If the dead-band generator is enabled, the pwmB signal is lost and two PWM signals are generated based on the pwmA signal. The first output PWM signal, pwmA' is the pwmA signal with the rising edge delayed by a programmable amount. The second output PWM signal, pwmB', is the inversion of the pwmA signal with a programmable delay added between the falling edge of the pwmA signal and the rising edge of the pwmB' signal.
Em không hiểu các tín hiệu pwmA', pwmB' ở đây có phải ứng với 2 ngõ ra tín hiệu của mỗi bộ trong 4 bộ PWM generator hay không?
Để configure thì hình như chỉ cần dùng hàm API: ROM_PWMDeadBandEnable(), nhưng e k biết thì các ngõ ra PWM sẽ thay đổi ntn?
Nói chung là đọc xong cái user guide và datasheet về phần pwm, em cảm thấy hơi bị rối. Ac giới thiệu sơ qua cho em về phần này nha.
Em cảm ơn.
Trong Stellaris có 4 khối tạo PWM.
Mối khối có 2 outputs. Như vậy có tổng cộng 8 outputs.
Với mỗi khối, 2 outputs sẽ dùng chung timer, chung tần số. Mặc dù vậy, user có thể định nghĩa chế độ hoạt động của 2 outputs này hoàn toàn độc lập với nhau, hoặc ghép chúng lại thành một bộ đôi có cực tính ngược nhau.
2 outputs của mỗi khối được đặt tên là pwmA' và pwmB'. Các outputs này sẽ được xử lý bởi một khối logic (PWM Output Control Logic) trước khi được đưa ra các pin của chip. Thực tế thì bên trong mỗi khối, pwmA và pwmB sẽ được tạo ra trước nhờ kết quả của các bộ comparator, sau khi đi qua Dead-band generator thì được gọi là pwmA' và pwmB'. Nếu không dùng Dead-band, pwmA' = pwmA và pwmB' = pwmB (không thay đổi gì).
Dead-band là gì?
Dead-band tạo ra delay giữa các thời điểm chuyển trạng thái của các tín hiệu PWM, thường được dùng để tránh trùng dẫn cho các van điện tử công suất (chẳng hạn trong mạch cầu H, khi van trên chưa kịp khóa hoàn toàn mà van dưới đã bắt đầu mở thì nguồn V+ sẽ bị dẫn trực tiếp qua 2 van đó xuống GND).
Thông thường, nếu không sử dụng dead-band, pwmA' và pwmB' được tạo ra bởi các bộ comparator độc lập với nhau.
Trong trường hợp sử dụng dead-band, pwmA' = (pwmA + delay), còn pwmB' không được tạo ra một cách độc lập với pwmA'. Thay vào đó, pwmB' sẽ được tạo ra từ pwmA' sau khi đã được đảo cực tính và thêm delay vào phía trước sườn lên và sườn xuống như hình bên dưới. (có thể hiểu là comparator dùng cho kênh pwmB' lúc này không còn tác dụng nữa)
Lần sửa cuối bởi blackmoon, ngày 09-05-2012 lúc 11:15 AM.
Hướng dẫn lựa chọn vi điều khiển của Texas Instruments: click here.
Đăng ký học MSP430/Stellaris hàng tháng tại Hà Nội: gửi email tới msp430learning@gmail.com (nếu học MSP430) hoặc stellarislearning@gmail.com (nếu học Stellaris)
- Hoàn toàn miễn phí
- Giảng viên chính hãng
- Giáo trình chuẩn
- Thực hành với công cụ chính hãng
- Tổ chức vào các thứ Bảy, Chủ Nhật
- Khi gửi mail đăng ký vui lòng cung cấp đủ các thông tin: Họ tên, lớp, trường (nếu là sinh viên), mobile.
Dead-band là gì?
Dead-band tạo ra delay giữa các thời điểm chuyển trạng thái của các tín hiệu PWM, thường được dùng để tránh trùng dẫn cho các van điện tử công suất (chẳng hạn trong mạch cầu H, khi van trên chưa kịp khóa hoàn toàn mà van dưới đã bắt đầu mở thì nguồn V+ sẽ bị dẫn trực tiếp qua 2 van đó xuống GND).
Em hiểu dùng PWM có dead-band trong cầu H như thế này không biết có đúng? Trong cầu H thì chỉ cần tạo dead-band cho lúc cần đổi chiều quay của động cơ. Nhưng cái dead-band của con ARM thì nó tạo tín hiệu pwmA' và pwmB' lúc nào cũng có dead-band. Nên ví dụ như muốn cho động cơ quay thuận thì chỉ cho ngõ ra pwmA' enable còn pwmB' disable, khi muốn đổi chiều thì disable ngõ ra pwmA' và enable pwmB'.
Em hiểu dùng PWM có dead-band trong cầu H như thế này không biết có đúng? Trong cầu H thì chỉ cần tạo dead-band cho lúc cần đổi chiều quay của động cơ. Nhưng cái dead-band của con ARM thì nó tạo tín hiệu pwmA' và pwmB' lúc nào cũng có dead-band. Nên ví dụ như muốn cho động cơ quay thuận thì chỉ cho ngõ ra pwmA' enable còn pwmB' disable, khi muốn đổi chiều thì disable ngõ ra pwmA' và enable pwmB'.
Hehe, bạn hiểu đúng rồi đấy. Thông thường control cái cầu H phải thế này: đang chạy thuận, muốn quay ngược lại thì cả 2 thằng phải disable nghỉ 1 (dead band) rồi mới quay ngược trở lại. Ở đây bạn chỉ cần set up trước khoảng nghỉ đây (dead band) là bao nhiêu sau đấy thì muốn xoay ngược xoay xuôi gì cũng được, bộ điều khiển bên trong tự động nó tạo khoảng nghỉ đấy cho bạn mà khỏi phải lo lắng
Có vài lời dành cho các bạn muốn tìm hiểu deadtime của PWM trong thớt này ( không bao gồm blackmoon vì anh đã nói đúng hoàn toàn).
Các bạn hãy nhìn vào giản đồ xung của blackmoon, cố gắn hiểu cho rõ và đừng phán bừa.
Ở đây ta xét đến điện áp trung bình cấp vào động cơ. Nếu dùng cầu H và module PWM chuyên biệt dùng cho Motor thì không có cái chuyện set thuận nghịch gì theo các bạn nghĩ. Giả sử không có deadtime, duty = 50% -> Utb = 0, duty > 50% -> Utb > 0 và ngược lại. Không như các bạn đã từng điều khiển động cơ bằng module PWM thông thường, các bạn có 2 kênh điều khiển đối xứng, nên điểm 0 nằm ở duty 50%. Còn nếu dùng 1 chân PWM + 1 chân dir thì bạn có điểm 0 ở duty 0%/hoặc 100% tùy dir nào. Nếu muốn dùng deadtime generator thì bạn phải sử dụng cả 2 tín hiệu đối xứng kèm deadtime.
UM(user manual) của LM và NXP thật sự rất dễ hiểu và sẽ dễ hiểu hơn nếu các bạn đã có kiến thức cơ bản về cách thức chống trùng dẫn trong Điện tử công suất. Các bạn nên cố tìm hiểu trước.