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.
professional strenght viagra viagra online rx pharmacy buy viagra online overnight shipping
24 hour pharmacy nearest drug store e d
viagra professional online pharmacy viagras head office in toronto viagra super force side effects 365pills viagra buy viagra online viagra with dapoxetine cheap how do i get viagra online viagra vs cialis/strong> brand viagra overnight delivery of viagra in the usa viagra, online viagra sales new zealand order viagra in australia viagra in sweden viagra chea
viagra on sale viagra online canadian pharmacy viagra online generic http://genqpviag.com/ – viagra pfizer ’
what is generic viagra? viagra super force 100mg 60mg pills viagra pill identification http://llviabest.com/ – cost of viagra 100mg ’
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
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