You are on page 1of 3

BÀI TẬP PWM

Thành viên nhóm: - Nguyễn Đại Hùng


Lâm Quan Huy
Hoàng Anh Tú
Đề tài số 2: Sử dụng LPC2103 tạo ra đồng thời 2 xung PWM có cùng tần số 1000
Hz và 2000 Hz.Các xung khác nhau về phần trăm chu kỳ nhiệm vụ: 50%, 90%
được tạo ra đồng thời trên 2 chân khác nhau.
Bài làm
a) Các thanh ghi dùng cho điều chế PWM:
Bit Symbol Description Reset
value
0 PWM enable Khi =1 chế độ PWM được bâ ̣t cho MATn.0. 0
Khi =0 MATn.0 được điều khiển bởi EM0

1 PWM enable Khi =1 chế độ PWM được bật cho MATn.1. 0


Khi =0 MATn.1 được điều khiển bởi EM1
1 PWM enable Khi =1 chế độ PWM được bật cho MATn.2. 0
Khi =0 MATn.2 được điều khiển bởi EM2.
1 PWM enable Khi =1 chế độ PWM được bật cho MATn.3. 0
Khi =0 MATn.3 được điều khiển bởi EM3.
Lưu ý: Nên sử dụng MATn.3 để đặt PWM
chu kỳ vì nó không được ghim trên Timer0
4:32 Phần mềm được bảo lưu, người dùng không NA
nên ghi phần mềm vào
các bit dành riêng. Giá trị được đọc từ một bit
dành riêng không phải là
xác định
b)
 PINSEL0, PINSEL1:
- P0.3 có 3 chức năng, chức năng thứ 0 là GPIO, thứ 1 là I2C và thứ 2 là
Mat0.0 PWM cho Timer 0, Kênh 0. Vậy theo yêu cầu bài toán bit1 và bit0
của PINSEL0 lần lượt là: 10 để chọn đầu ra là PWM
- P0.16 có 3 chức năng, chức năng thứ 0 là GPIO, thứ 1 là EINT0 và thứ 2 là
Mat0.2 PWM cho Timer 0, Kênh 2. Vậy theo yêu cầu bài toán bit1 và bit0
của PINSEL1 lần lượt là: 10 để chọn đầu ra là PWM
 T0TCR (Timer 0): Control Timer
- Bit0: Không cho phép Timer khi có giá trị bằng 0 và cho phép khi có giá trị
bằng 1
- Bit1: Reset tích cực cạnh lên khi có giá trị bằng 0 và giữ nguyên giá trị reset
khi có giá trị bằng 1
- Theo bài toán ta cấu hình bit1:0 lần lượt là 01
 T0IR(Timer0): Interrupt Register sử dụng 8bit làm cờ báo ngắt cho
Timer: Khi xảy ra ngắt do Match hoặc Capture thì các bit tương ứng
trong TCIR được set lên 1. Ghi mức logic 1 vào 1 bit sẽ xóa cờ ngắt
tương ứng
Bit 0: MR0_Int cờ ngắt cho Match 0 (P0.3)
Bit 2: MR2_Int cờ ngắt cho Match 2 (P0.16)
T0PR, TOTC: Prescale Register (Timer0) sử dụng 32bit làm bộ chia trước xung
cần đếm
PC tăng lên 1 sau mỗi chu kỳ của PCLK, khi PC + 1 = PR thì TC tăng lên 1 và PC
= 0.
T0PWMCON: bit 0 voi bit 2
Giải thích các thông số sử dụng cho các thanh ghi
PWM sử dụng bộ đếm Timer0 đếm xung PCLK bên trong vi điều khiển. Lựa chọn
tỉ lệ chia trước là 1:1 (T0PR=0) thì trong 1s, số lượng xung đếm được là PCLK
xung.
Từ đó ta có:
Chu kỳ xung PWM:
1 1000/ 4
n PWM = =
f PWM 1000

Giá trị chu kỳ xung PWM được sử dụng cho thanh ghi T0MR3 , dùng làm ngưỡng
trên của bộ đếm Timer0 dùng xác định chu kỳ PWM.
Thiết lập chế độ Reset trong thanh ghi T0MCR khi TC=T0MR3.
Bit 10 (MR3R) trong thanh ghi T0MCR được set 1.
Xác định chu kỳ nhiệm vụ (Ton) cho thanh ghi T0MR0:
50%*T0MR3 =0.125
Xác định chu kỳ nhiệm vụ (Ton) cho thanh ghi T0MR1: 80%*T0MR3=0.2
Bit0 và bit 1 trong thanh ghi T0IR được set 1 dùng cho Match channel 0 và 1
Bit0 và bit 1 trong thanh ghi T0PWMCON được set 1 cho phép dùng PWM
Thiết lập cho phép Timer0 hoạt động trong thanh ghi T0TCR. Bit 0 trong thanh
ghi T0TCR được set 1.

You might also like