View Single Post
Old 20-03-2009, 08:06 PM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi conglong View Post
Em đã đọc datasheet dsPIC30f2010 phần PWM rồi , em hiểu là dutycycle là khoảng phần trăm thời gian HIGHT trong một chu kỳ phần đối với chân PWMxH , còn đối với PWMxL thì dutycycle lại là khoảng phần trăm thời gian LOW (với giả sử deadtime = 0), nhưng khi vào làm thực tế , cụ thể là ví dụ 5.1 của thấy :
Em dùng biến trở chỉnh điện áp tại chân RB0(AN0) là 1V thì theo lí thuyết , khi đó giá trị mình thu được tại thanh ghi ADCBUF0 là: 1x(2^10 - 1) / 5 = 204.6 hay là 11001101B sau lệnh dịch bit qua phải và gắn vào giá trị này vào PDC1 thì PDC1 = 102, mà duty_cycle = 2 * PDC1 / PTPER, mà ở đây PTPER = Fcy/Fpwm - 1 , với Fcy= 10Mhz ( do em dung thạch anh ngoài 10Mhz với PLL_4), Fpwm = 40Khz => PTPER = 249
Vậy duty_cycle = 2 * 102 / 249 = 0.8193 = 81.93 %, do đó khi dùng VOM để đo trên chân PWML ( RE0 ) thì điện áp DC phải là : (1 - 0.8193 ) * 5V = 0.9035 V.
Mà em đo thực tế lại là : 3.1 V !!!!
Em hiểu như vậy có đúng không Thầy , hay lỗi do đâu thầy ?
Em cảm ơn .
Trân trọng !.
Bạn hiểu nhầm về công thức tính duty cycle. Xét ví dụ 5-1 trong tutorial của tôi, tôi đã chú thích giá trị duty cycle ứng với giá trị PTPER = 199 (Fcy/Fpwm - 1 = 8000000/40000 - 1). Với chu kỳ đếm 200, giá trị 0x64 = 100 mà tôi đặt vào các thanh ghi PDCx lại chỉ cho duty cycle = 25%, không rõ bạn có chú ý điểm này hay không.

Với PWM timer chạy ở chế độ free-running (như trong ví dụ của tôi đã thiết lập), công thức tính duty cycle như sau:

duty_cycle = PDCx/((PTPER + 1)*2)

Do đó, với các thông số mà bạn đã thiết lập, bạn sẽ có duty cycle của chân PWM1H là 102/((249 + 1)*2) = 20.4 %, và duty cycle của chân PWM1L sẽ là 100 - 20.4 = 79.6 %, tương ứng với khoảng 4 V, nếu hoàn toàn không có dead time. Có lẽ kết quả chuyển đổi A/D là khác với giá trị 204 hay 205 đang dùng để tính toán ở đây.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn