Bài 05: PWM với STM32F303CC trong MXCUBE

PWM với STM32F303CC

  1. Giới thiệu sơ lược về PWM.
  2. 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ơ. Với động cơ, chúng ta có 3 loại điều khiển chính đó là : điều khiển vị trí, điều khiển vận tốc, điều khiển torque(moment). Khi dùng PWM để điều khiển động cơ chúng ta chú ý các khái niệm cần nắm rõ:

    • 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ái khái niệm về tần số, chu kì.

    Các timer có thể phát xung trên vi điều khiển này là :TIM1, TIM2, TIM3,TIM4, TIM8, TIM15, TIM16, TIM17. Mỗi timer có 1 hay nhiều kênh phát xung độc lập. Riêng TIM1 và TIM8 là 2 timer đặc biệt, nhà sản xuất đã ưu tiên nó với nhiều chế độ phát xung hơn, hỗ trợ hiệu quả tối đa cho việc phát xung, bảo vệ… 2 timer này 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 số lượng xung, tần số và chu kì thích hợp.

    Trên STM32F303CC 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, các chân timer khác không.

  3. Cấu hình trên STM32 cubeMx.
  4. Cấu hình TIM4 channel 4 với chu kì 1s, duty cycle là 30%.

    1. New project . Cửa sổ mới được mở ra. Chọn loại MCU theo tên hoặc theo họ, loại package… Ở đây mình nhớ tên luôn nên gõ vào cho nhanh STM32F303CC.