Như vậy là đúng rồi. Từ công thức tính PR2 và CCPR1:CCP1CON<5:4> thì có thể thấy ngay tỷ lệ giữa chúng. Nhưng điều chúng ta cần hiểu rõ ở đây không phải là công thức tính đó, mà là ưu điểm của việc thiết kế phần cứng của chip như vậy.
Microchip đã có thiết kế rất hay đối với module PWM. Với nhận định rằng chúng ta không cần độ phân giải cao cho tần số chuyển mạch, Microchip đã dùng tần số lệnh (4 lần tần số xung clock) để tạo tần số cho ngõ ra PWM. Tuy nhiên, chu kỳ nhiệm vụ (duty cycle) cần có độ phân giải cao hơn (để chúng ta điều chỉnh độ rộng xung được nhuyễn hơn), do đó Microchip dùng chính tần số xung clock làm đơn vị cho duty cycle. Đó là lý do trong công thức của PR2 có chia cho 4, còn của CCPR1:CCP1CON<5:4> thì không có. Lấy ví dụ bằng số cụ thể, nếu chúng ta dùng một số 8-bit để đặt tần số cho tín hiệu PWM, với 4 đơn vị đặt duty cycle mới bằng một đơn vị đặt tần số cho PWM, như vậy duty cycle của chúng ta đang được biểu diễn bằng một số 10-bit. Nói cách khác, duty cycle có độ phân giải cao hơn 4 lần so với tần số PWM. Đây là đặc điểm mà chúng ta cần nắm được, nếu không chúng ta có thể đánh giá thấp module PWM của PIC.
Bạn nào đang tìm hiểu dsPIC sẽ thấy module PWM của dsPIC chỉ có độ phân giải của duty cycle cao hơn của tần số PWM 2 lần (1-bit cao hơn). Lý do của điều này, theo tôi, là do tần số clock (và do đó tần số lệnh) của dsPIC là khá cao, do đó độ phân giải của tần số PWM đã cao hơn so với của các PIC 8-bit, như vậy độ phân giải của duty cycle so với của tần số PWM không cần thiết phải cao hơn đến 4 lần như trong PIC.
Thân,
|