36.1 C
Hanoi
Thứ Ba, Tháng Bảy 5, 2022

PWM TRONG STM32F103

Sơ lược về lý thuyết

PWM (pulse- with modulation) hay còn gọi nôm na là “băm xung” hay “điều khiển độ rộng xung” là ứng dụng phổ biến và thường dùng trong lĩnh vực điều khiển động cơ. Một ví dụ đơn giản để hiểu về độ rộng xung là mức độ sáng tắt của LED, ở tần số mà mắt người có thể nhìn thấy thì nó là độ chênh lệch giữa mức sáng và tắt của 1 đèn khoảng thời gian lặp đi lặp lại(vd đèn sáng 5s, tắt 3s lặp đi lặp lại thì chu kì sẽ là 8 giây); với tần số cao mắt người không thể nhìn thấy thì ta sẽ thấy LED sáng mờ hay sáng rõ đó là do tổng thời gian sáng/ tổng thời gian tắt trong khoảng thời gian lớn hay nhỏ mà mắt người nhìn thấy(tính bằng đơn vị nhỏ như ms).
Khi tìm hiểu về PWM chúng ta cần tìm hiểu kĩ một số khái niệm cơ bản như:
+ Duty cycle : tỷ lệ phần trăm xung ở mức cao.
+ Period : là chu kì xung(bao gồm tổng thời gian mức cao + mức thấp).
+ Pulse width là giá trị của mức cao so với period. PTO là xung vuông có 50% thời gian cao, 50% thời gian thấp.
+ Biên độ xung: là giá trị điện áp của xung khi ở mức cao.
+ Các khái niệm về tần số, chu kì.

Giới thiệu về PWM của STM32f103: ở VĐK này có 4 kênh timer là TIM1,TIM2,TIM3,TIM4 để phát PWM, mỗi kênh đó có 4 channel nhỏ nữa, riêng TIM1 có thêm 4 channel đảo nữa. Tùy từng ứng dụng mà có thể sử dụng phối hợp nhiều kênh cũng như nhiều channel nhỏ khác nhau. TIM1 là timer đặc biệt tạo ra riêng để ưu tiên cho việc phát xung với nhiều mode bảo vệ cũng như điều khiển riêng. Nó có các kênh PWM đảo vd( CH1 – CH1N) giúp tránh tình trạng trùng dẫn với nửa cầu H trên và nửa cầu H dưới của mạch driver điều khiển động cơ. Nó có chế độ one-pulse để xuất ra 1 xung hay nhiều xung với số xung đếm được, ngắt input để bảo vệ động cơ, có mode hỗ trợ encoder và cảm biến Hall.
Sử dụng PWM chủ yếu là để điều khiển động cơ, khi điều khiển cần chú ý là mỗi loại động cơ đều có cơ cấu điều khiển khác nhau, tần số điều khiển cũng khác nhau. Cần chú ý về mục đích điều khiển là tốc độ, vị trí, moment… để xuất xung với tần số và chu kì thích hợp.
Trên STM32f103 thì cần chú ý là sử dụng PWM của timer nào thì cần tra datasheet để biết ngõ ra của timer đó là chân nào, có Remap hay trùng với các chân đặc biệt không.

Cấu hình với thư viện chuẩn của ST

Cấp lock và khai báo các định nghĩa quan trọng.

Cấu hình chân output của timer – Khởi tạo timer base.

Cấu hình chức năng output compare sử dụng cho PWM, Enable timer, pwm.

Sử dụng hàm điều chỉnh duty cycle.
Hàm TIM_SetComparex(TIMy,z); được dùng để điều chỉnh độ rộng xung của kênh PWM đang cấu hình SetComparex tương ứng với channel x của TIMy với giá trị z. Độ rộng xung được tính dựa trên:
z/TIM_Period100% với TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
(1 – z/TIM_Period )100% với TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;

Chúng ta có thể điều khiển độ rộng xung với tần số cao hơn, tuy nhiêu ở tần số cao thì phải có Oscilloscope để quan sát dạng sóng ra. Nếu phát xung với tần số thấp thì có thể quan sát bằng mắt thường với độ chính xác tương đối. Chúng ta có thể thay đổi các tham số truyền vào để quan sát và hiểu các dạng PWM xuất ra.

Một số thanh ghi quan trọng.

Ở đây Vd là sử dụng TIM4 nên mình sẽ sử dụng thanh ghi của TIM4. TIM2,3,4 giống nhau và khác đôi chút với TIM1.

TIMx_CCER – TIMx capture/compare enable register.

4 cặp bit tương ứng với 4 channel của 1 Timer. CCxE : cho phép output xung ra bên ngoài hay không. CCxP cho phép xuất mức PWM ở mức cao hay thấp vd CC4P = 0 thì khi Duty cycle =100% thì điện áp output = 3V3, CC4P = 1 thì khi Duty cycle =100% thì điện áp output = 0V.

TIMx_CCMRx- TIMx capture/compare mode register x.

OcxM: lựa chọn mode Output cho chân PWM. Giá trị tương ứng từ 000 ->111 với các mode như PWM1, PWM2, Frozen, Toggle…
OCxPE: bit này cho phép bộ đếm tự động lặp lại sau khi thực hiện xong đếm lần 1.
OcxFE: bit này sử dụng cho mode Input capture: đo tín hiệu xung đầu vào với các xung có tần số cao.
CCxS: bit này cho phép lựa chọn là ngõ vào hay ngõ(Capture/Compare) ra tương ứng với các mode.

TIMx_CCRx – TIMx Capture/Compare register.

Nếu là mode output thì nó sẽ so sánh với thanh ghi CNT và xuất ra giá trị PWM, giá trị được làm mới khi có update xảy ra. Nếu là mode input: nó sẽ chứa giá trị đọc về của giá trị đọc cuối cùng.

Link tải chương trình cấu hình PWM TIM4_CH4

Nguồn: http://laptrinharmst.blogspot.com/

7 COMMENTS

  1. My friend received her last skincell pro recently as well as let me
    inform you, she is delighted! She has been seeking an all-natural means to get rid
    of her moles for fairly a long time. She tried cream removers and
    also medical professional visits, yet nothing worked.

    Now, she is ready to go under the blade. Let me show you
    what she has actually been via looking for an all-natural remedy. http://lnkiy.in/bc7ha

  2. Do you presently have moles or undesirable skin tags? Have you longed to
    get rid of those annoying blemishes on your skin? The Skincell Pro skin tag remover is a
    reliable lotion from 100% natural ingredients
    created to securely and also promptly get rid of skin tags,
    moles, and also blemished skin. It’s developed to remove skin moles and tags in just 8
    hrs level. This powerful, quick-acting formula
    job conveniently as well as quickly, to help you do
    away with those unwanted moles without the help of physicians or surgery. https://nimmansocial.com/story9268423/skincell-pro-ingredients

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Lựa chọn Stack-up cho PCB

Bước 1: Chọn số lượng lớp dự định ban đầu 1 hoặc 2 lớp – Đối với mạch thử nghiệm Sử dụng 1 hoặc 2 lớp...

Via và khả năng mang dòng điện trên PCB

Via bao gồm 3 thành phần: Conductive barrel: Lỗ khoan được mạ dẫn điện Pad: Phần đồng dẫn điện ở 2 đầu của một lỗ via. Antipad:...

Các vấn đề thiết kế PCB mật độ cao HDI

PCB kết nối mật độ cao (High-density interconnect HDI) thể hiện sự tiên tiến của ngành công nghiệp bảng mạch in ngày nay, do...

Ground và vấn đề thiết kế PCB

Các nhà thiết kế layout PCB luôn quan tâm đến những câu hỏi nổi bật này, như làm thế nào để lập kế hoạch...

Recent Comments