LẬP TRÌNH với PWM trong arm cortex m3

22 19 0
LẬP TRÌNH với PWM trong arm cortex m3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Điều chế độ rộng xung (PWM) là một kỹ thuật mạnh mẽ để mã hóa mức tín hiệu tương tự. Các ứng dụng điển hình bao gồm chuyển đổi nguồn điện và điều khiển động cơ. Stellaris bao gồm ba khối phát và điều khiển PWM. Khối phát PWM tạo ra hai tín hiệu PWM độc lập

LẬP TRÌNH VỚI PWM GIỚI THIỆU VỀ PWM • Điều chế độ rộng xung (PWM) kỹ thuật mạnh mẽ để mã hóa mức tín hiệu tương tự • Các ứng dụng điển hình bao gồm chuyển đổi nguồn điện điều khiển động • Stellaris bao gồm ba khối phát điều khiển PWM Khối phát PWM tạo hai tín hiệu PWM độc lập GIỚI THIỆU VỀ PWM • Mỗi modul PWM gồm có: – Bộ đếm 16bit có chế độ đếm lên/ đếm xuống – so sánh – tạo tín hiệu PWM – Bộ tạo trễ kích hoạt ngắt GIỚI THIỆU VỀ PWM • Bộ đếm 16 bit có khả năng: – Chạy chế độ Xuống Lên / Xuống – Tần số đầu kiểm soát giá trị load vào 16 bit – Cập nhật giá trị tải đồng hóa – Tạo tín hiệu đầu mức giá trị load value GIỚI THIỆU VỀ PWM • Hai so sánh PWM - Cập nhật giá trị so sánh đồng hóa - Tạo tín hiệu đầu phù hợp • Bộ phát tín hiệu PWM - Tín hiệu PWM đầu xây dựng dựa hành động thực kết đếm Tín hiệu đầu so sánh PWM - Tạo hai tín hiệu PWM độc lập • Bộ tạo trễ - Tạo hai tín hiệu PWM với độ trễ lập trình - Nếu khơng enable tạo trễ tín hiệu PWM đầu khơng đổi SƠ ĐỒ KHỐI PWM HOẠT ĐỘNG CỦA PWM CÁC CHẾ ĐỘ CỦA PWM CÁC CHẾ ĐỘ CỦA PWM CÁC CHẾ ĐỘ CỦA PWM CÁC BƯỚC LẬP TRÌNH VỚI PWM • Các hàm API hỗ trợ lập trình timer nằm thư viện inc/hw_pwm.h VÀ driverlib/pwm.h • Các bước lập trình với PWM: – Cấu hình xung clock: processor clock = (tần số OSC PLL)/ hệ số chia tần – Cấu hình GPIO: – Cấu hình nguồn xung PWM – Cấu hình Timer: – Cho phép ngoại vi (Cho phép ngoại vi PWM PORT có chân PWM cần tạo) – Cấu hình chân PWM – Cho phép ngắt – Cho phép timer – Viết hàm thực tác vụ ngắt timer: • xóa cờ ngắt timer • Viết lệnh điều khiển – Sửa file startup CẤU HÌNH XUNG CLOCK • Hàm cấu hình clock thuộc thư viện \INC\Luminary\sysctl.h • Void SysCtlClockSet(unsigned long ulConfig) Thiết lập: tần số từ dao động thạch anh • có sử dụng PLL khơng • giá trị chia tần • Bằng biểu thức OR (|) CÁC THAM SỐ CẤU HÌNH CLOCK • Nguồn xung từ tạo dao động thạch anh: SYSCTL_XTAL_1MHZ, SYSCTL_XTAL_1_84MHZ, SYSCTL_XTAL_2MHZ, SYSCTL_XTAL_2_45MHZ, SYSCTL_XTAL_3_57MHZ, SYSCTL_XTAL_3_68MHZ, SYSCTL_XTAL_4MHZ, YSCTL_XTAL_4_09MHZ, SYSCTL_XTAL_4_91MHZ, SYSCTL_XTAL_5MHZ, SYSCTL_XTAL_5_12MHZ, SYSCTL_XTAL_6MHZ, SYSCTL_XTAL_6_14MHZ, SYSCTL_XTAL_7_37MHZ, SYSCTL_XTAL_8MHZ, SYSCTL_XTAL_8_19MHZ, SYSCTL_XTAL_10MHZ, SYSCTL_XTAL_12MHZ, SYSCTL_XTAL_12_2MHZ, SYSCTL_XTAL_13_5MHZ, SYSCTL_XTAL_14_3MHZ, SYSCTL_XTAL_16MHZ,YSCTL_XTAL_16_3MHZ • PLL: SYSCTL_USE_PLL SYSCTL_USE_OSC • Hệ số chia tần: SYSCTL_SYSDIV_1,SYSCTL_SYSDIV_2, SYSCTL_SYSDIV_3, SYSCTL_SYSDIV_64 • Nguồn clock từ dao động thạch anh mở rộng: SYSCTL_USE_OSC SYSCTL_OSC_MAIN CẤU HÌNH CLOCK PWM • Void SysCtlPWMClockSet(unsigned long ulConfig) • ulConfig nhận giá trị : SYSCTL_PWMDIV_1, SYSCTL_PWMDIV_2, SYSCTL_PWMDIV_4, SYSCTL_PWMDIV_8, SYSCTL_PWMDIV_16, SYSCTL_PWMDIV_32, or SYSCTL_PWMDIV_64 ENABLE CHÂN PWM • Void GPIOPinTypePWM(unsigned long ulPort, unsigned char ucPins) • Trong đó: • ulPort: địa sở port • ucPins : số thứ tự chân PWM Cấu hình mơ đun PWM • Void PWMGenConfigure(unsigned long ulBase, unsigned long ulGen, unsigned long ulConfig) Trong đó: • ulBase địa sở PWM module • ulGen nhận giá trị: PWM_GEN_0, PWM_GEN_1, PWM_GEN_2, PWM_GEN_3 • ulConfig cấu hình cho tham số PWM Cấu hình mơ đun PWM tham số ulConfig • • • • • • • • • • • • • • • • PWM_GEN_MODE_DOWN PWM_GEN_MODE_UP_DOWN chọn chế độ đếm PWM_GEN_MODE_SYNC or PWM_GEN_MODE_NO_SYNC to specify the counter load and comparator update synchronization mode PWM_GEN_MODE_DBG_RUN or PWM_GEN_MODE_DBG_STOP to specify the debug behavior PWM_GEN_MODE_GEN_NO_SYNC, PWM_GEN_MODE_GEN_SYNC_LOCAL, or PWM_GEN_MODE_GEN_SYNC_GLOBAL to specify the update synchronization mode for generator counting mode changes PWM_GEN_MODE_DB_NO_SYNC, PWM_GEN_MODE_DB_SYNC_LOCAL, or PWM_GEN_MODE_DB_SYNC_GLOBAL to specify the deadband parameter synchronization mode PWM_GEN_MODE_FAULT_LATCHED or PWM_GEN_MODE_FAULT_UNLATCHED to specify whether fault conditions are latched or not PWM_GEN_MODE_FAULT_MINPER or PWM_GEN_MODE_FAULT_NO_MINPER to specify whether minimum fault period support is required PWM_GEN_MODE_FAULT_EXT or PWM_GEN_MODE_FAULT_LEGACY t Cài đặt chu kỳ xung PWM • Void PWMGenPeriodSet(unsigned long ulBase, unsigned long ulGen, unsigned long ulPeriod) ulBase địa sở PWM module ulGen nhận giá trị PWM_GEN_0, WM_GEN_1, PWM_GEN_2, or PWM_GEN_3 ulPeriod khoảng chu kỳ xung PWM tính theo xung clock Cài đặt độ rơng xung PWM • Void PWMPulseWidthSet(unsigned long ulBase, unsigned long ulPWMOut, unsigned long ulWidth) Trong đó: ulBase : địa sở PWM module ulPWMOut nhận giá trị PWM_OUT_0, PWM_OUT_1, PWM_OUT_2, PWM_OUT_3, PWM_OUT_4, PWM_OUT_5, PWM_OUT_6, PWM_OUT_7 ulWidth : độ rộng xung ENABLE PWM • Cho phép chân tạo xung PWM: • Void PWMOutputState(unsigned long ulBase, unsigned long ulPWMOutBits, tBoolean bEnable) ulBase: địa sở PWM module ulPWMOutBits nhận giá trị PWM_OUT_0_BIT, PWM_OUT_1_BIT, PWM_OUT_2_BIT, PWM_OUT_3_BIT, PWM_OUT_4_BIT, PWM_OUT_5_BIT, PWM_OUT_6_BIT, PWM_OUT_7_BIT bEnable: nhận giá trị true false ENABLE PWM • Cho phép mơ đun PWM Void PWMGenEnable(unsigned long ulBase, unsigned long ulGen) ulBase: địa sở PWM module ulPWMOutBits nhận giá trị PWM_OUT_0_BIT, PWM_OUT_1_BIT, PWM_OUT_2_BIT, PWM_OUT_3_BIT, PWM_OUT_4_BIT, PWM_OUT_5_BIT, PWM_OUT_6_BIT, PWM_OUT_7_BIT bEnable: nhận giá trị true false • sprintf(Buf, “gia tri = %d \r ", t_); • RIT128x96x4StringDraw(Buf,20, 34, 15); ... PWM CÁC CHẾ ĐỘ CỦA PWM CÁC CHẾ ĐỘ CỦA PWM CÁC BƯỚC LẬP TRÌNH VỚI PWM • Các hàm API hỗ trợ lập trình timer nằm thư viện inc/hw _pwm. h VÀ driverlib /pwm. h • Các bước lập trình với PWM: – Cấu hình xung... ulPWMOut nhận giá trị PWM_ OUT_0, PWM_ OUT_1, PWM_ OUT_2, PWM_ OUT_3, PWM_ OUT_4, PWM_ OUT_5, PWM_ OUT_6, PWM_ OUT_7 ulWidth : độ rộng xung ENABLE PWM • Cho phép chân tạo xung PWM: • Void PWMOutputState(unsigned... ulPWMOutBits, tBoolean bEnable) ulBase: địa sở PWM module ulPWMOutBits nhận giá trị PWM_ OUT_0_BIT, PWM_ OUT_1_BIT, PWM_ OUT_2_BIT, PWM_ OUT_3_BIT, PWM_ OUT_4_BIT, PWM_ OUT_5_BIT, PWM_ OUT_6_BIT, PWM_ OUT_7_BIT

Ngày đăng: 09/02/2022, 16:40

Từ khóa liên quan

Mục lục

  • Slide 1

  • GIỚI THIỆU VỀ PWM

  • GIỚI THIỆU VỀ PWM

  • GIỚI THIỆU VỀ PWM

  • GIỚI THIỆU VỀ PWM

  • SƠ ĐỒ KHỐI PWM

  • HOẠT ĐỘNG CỦA PWM

  • CÁC CHẾ ĐỘ CỦA PWM

  • CÁC CHẾ ĐỘ CỦA PWM

  • CÁC CHẾ ĐỘ CỦA PWM

  • CÁC BƯỚC LẬP TRÌNH VỚI PWM

  • CẤU HÌNH XUNG CLOCK

  • CÁC THAM SỐ CẤU HÌNH CLOCK

  • CẤU HÌNH CLOCK PWM

  • ENABLE CHÂN PWM

  • Cấu hình mô đun PWM

  • Cấu hình mô đun PWM tham số ulConfig

  • Cài đặt chu kỳ xung PWM

  • Cài đặt độ rông xung PWM

  • ENABLE PWM

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan