Ch ươ ng trình:
5.3.5 Bộ điều chế độ rộng xung
Bộ điều chếđộ rộng xung PWM có chức năng tạo ra các tín hiệu chu kì với độ rộng xung có thể điều khiển thông qua các thanh ghi điều khiển với giá trị chu kì, độ rộng xung được tính toán trước theo yêu cầu cụ thể của ứng dụng. Các bộ PWM hoạt động dựa trên các khối Timer và kế thừa các chức năng của nó.
Như ta biết các bộ Timer được thiết kế để đếm các chu kì của đồng hồ ngoại vi PCLK và tùy chọn có thể tạo ra các ngắt hoặc thực hiện các yêu cầu nào đó khi 1 giá trị thời gian xác định thiết lập trên các thanh ghi Match bằng với giá trị trong thanh ghi TC . Chức năng PWM dựa trên các chức năng này của bộ Timer.
Với khả năng điều khiển riêng các thời điểm sườn dương và sườn âm của tín hiệu PWM nên các bộ PWM được sử dụng với nhiều ứng dụng hơn. Ví dụđiển hình là các bộ điều khiển motor nhiều phase.
Với mỗi tín hiệu đầu ra của bộđiều khiển độ rộng xung được điều khiển thông qua 2 hoặc 3 thanh ghi Match:
- Trường hợp sử dụng 2 thanh ghi Match: được sử dụng để tạo tín hiệu ra được điều khiển theo 1 sườn :
oMột thanh ghi (PWMMR0) điều khiển chu kì tín hiệu
oMột thanh ghi khác dùng đểđiều khiển vị trí của sườn
- Trường hợp sử dụng 3 thanh ghi Match: được sử dụng để tạo ra tín hiệu ra được điều khiển theo cả 2 sườn:
oMột thanh ghi (PWMMR0) điều khiển chu kì tín hiệu
oHai thanh ghi còn lại điều khiển các vị trí của 2 sườn.
Do sử dụng cùng chung PWMMR0 nên chu kì của các tín hiệu đầu ra giống nhau Hình bên dưới mô tả các thành phần của bộ PWM dưới quan điểm lập trình gồm tập các thanh ghi điều khiển và thanh ghi trạng thái, cùng các tín hiệu đầu ra.
Mô tả các pin sử dụng cho bộ PWM:
Pin Type Mô tả
PWM1[1] Output Đầu ra từ bộ PWM kênh 1 PWM1[2] Output Đầu ra từ bộ PWM kênh 2 PWM1[3] Output Đầu ra từ bộ PWM kênh 3 PWM1[4] Output Đầu ra từ bộ PWM kênh 4 PWM1[5] Output Đầu ra từ bộ PWM kênh 5 PWM1[6] Output Đầu ra từ bộ PWM kênh 6
PCAP1[1:0] Input Các đầu vào Capture :sự chuyển mức trên pin capture có thểđượ cấu hình để copy giá trị của TC vào thanh ghi Capture tương ứng và tùy chọn có thể tạo ra 1 ngắt
Mô tả các thanh ghi sử dụng cho bộ PWM:
Tập các thanh ghi của PWM giống với bộ Timer và thêm một tập các thanh ghi riêng
Thanh ghi Mô tả Kiểu truy cập
IR Interrupt Register : IR có thểđược ghi vào để xóa các ngắt hoặc có thểđược đọc để nhận diện một trong tám nguồn ngắt có thể đang chờđược xử lý
R/W
TCR Timer Control Register : được sử dụng để điều khiển các chức năng của bộ
Timer/Counter. Nó có thể cắm hoặc reset bộ Timer/Counter
R/W
TC Timer Counter : là thanh ghi 32 bit tăng theo mỗi chu kì PR+1 của PCLK. Được điều khiển bởi thanh ghi TCR
R/W PR Prescale Register : khi thanh ghi Prescale
Counter bằng giá trị trong thanh ghi này thì ở chu kì clock tiếp theo nó tăng TC và clear PC
R/W
PC Prescaler Counter : là thanh ghi 32 bit, thực hiện chức năng đếm giá trị clock và so sánh với PR
R/W MCR Match Control Register : được sử dụng để
điều khiển nếu một ngắt được tạo ra và nếu TC reset khi có một sự kiện Match xảy ra
R/W MR0/1/2/3/4/
5/6 Match Register 0/1/2/3/4/5/6 : MRn có thđược cho phép qua MCR, khi giá trị trong ể thanh ghi MRn bằng với giá trị trong TC nó có thể tạo ra các đáp ứng như reset TC, dừng cả TC và PC hoặc tạo ra một ngắt hoặc không làm gì. Thêm nữa nó được sử dụng đểđiều khiển các đầu ra bộ PWM
R/W
CCR Capture Control Register: CCR điều khiển sườn nào của các đầu vào Capture để copy giá trị các Capture Register và có hoặc
không tạo ra một ngắt khi có một sự kiện capture xảy ra
CR0/1/2/3 Capture Register 0/1/2/3 : CR0/1/2/3 sẽ được load vào giá trị của TC khi có 1 sự kiện capture xảy ra ở pin capture tương ứng
RO PCR PWM Control Register : cho phép các đầu
ra PWM và chọn loại của kênh là điều khiển đơn sườn hay cả 2 sườn
R/W CTCR Count Control Register: chọn mode hoạt
động là Timer hay Counter và từđó chọn tín hiệu clock nguồn
R/W LER Load Enable Register : cho phép sử dụng
các giá trị Match mới trong bộ PWM. Chỉ khi bít này được cho phép thì đầu ra mới đáp ứng với các giá trị trong thanh ghi Match
R/W