intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Chương 6: Capture compare PWM module

Chia sẻ: Nguyễn Nguyễn | Ngày: | Loại File: PDF | Số trang:31

103
lượt xem
19
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Chương 6: Capture compare PWM module giới thiệu tới các bạn về thanh ghi CCP1CON; các chế độ hoạt động như chế độ CAPTURE; chế độ COMPARE; chế độ PWM (Pules Width Modulation). Bài giảng phục vụ cho các bạn chuyên ngành Công nghệ thông tin và những ngành có liên quan.

 

Chủ đề:
Lưu

Nội dung Text: Bài giảng Chương 6: Capture compare PWM module

  1. CHƯƠNG 6 CAPTURE COMPARE PWM module
  2. CHƯƠNG 6: CAPTURE/COMPARE/PWM MODULE 1. Giới thiệu Module CCP hỗ trợ việc đo lường và điều khiển thời gian hoạt động của các xung tín hiệu.  Đo chu kỳ hoạt động của tín hiệu (Capture)  Đo độ rộng xung, tạo ra một tín hiệu so sánh (Compare)  Tạo xung với tần số khác nhau để điều khiển tốc độ động cơ (Pulse Width Modulation – PWM)
  3. CHƯƠNG 6: CAPTURE/COMPARE/PWM MODULE - Mỗi Module CCP bao gồm thanh ghi 16bit có vai trò là thanh ghi Capture 16bit hoặc thanh ghi Compare 16bit hoặc thanh ghi Chu kỳ của PWM. - PIC16F877A có 2 Module CCP: CCP1 và CCP2 (Phần trình bày sau cụ thể cho CCP1) - TIMER1 và TIMER2 được dùng cho Module CCP. Bảng 1: Các thanh ghi của Module CCP
  4. CHƯƠNG 6: CAPTURE/COMPARE/PWM MODULE - Mỗi Module CCP bao gồm thanh ghi 16bit có vai trò là thanh ghi Capture 16bit hoặc thanh ghi Compare 16bit hoặc thanh ghi Chu kỳ của PWM. - PIC16F877A có 2 Module CCP: CCP1 và CCP2 - TIMER1 và TIMER2 được dùng cho Module CCP. CCP MODE Timer Resource Capture Timer 1 Compare Timer 1 PWM Timer 2 Bảng 2: Loại TIMER được sử dụng trong CCP
  5. CHƯƠNG 6: CAPTURE/COMPARE/PWM MODULE 2. Thanh ghi CCP1CON CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0 - Bit 7, 6: không dùng - Bit 5, 4_CCP1X - CCP1Y: dùng cho Module PWM Trong chế độ PWM có 10bit để định thời gian cho trạng thái mức cao của xung điều biến ngõ ra. Ngoài 2 bit trên, 8 bit còn lại nằm trong thanh ghi CCPR1L (2 thanh ghi 8bit CCPR1L và CCPR1H).
  6. CHƯƠNG 6: CAPTURE/COMPARE/PWM MODULE CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0 - Bit 3 - 0: được cấu hình như bảng sau: CCPxM3 CCPxM2 CCPxM1 CCPxM0 CCP Mode Selected 0 0 0 0 Resets CCP module 0 0 0 1 0 0 1 0 Compare, đảo ngõ ra khi Đ.K cân bằng 0 0 1 1 0 1 0 0 Capture, chế độ mỗi xung cạnh xuống 0 1 0 1 Capture, chế độ mỗi xung cạnh lên 0 1 1 0 Capture, chế độ 4 xung cạnh lên 0 1 1 1 Capture, chế độ mỗi 16 xung cạnh lên 1 0 0 0 Compare, CCP=cao khi ĐKiện cân bằng 1 0 0 1 Compare, CCP=thấp khi ĐKiện cân bằng 1 0 1 0 Compare, tạo ra Ngắt khi ĐK cân bằng 1 0 1 1 Compare, trigger special event 1 1 x x PWM mode
  7. CHƯƠNG 6: CAPTURE/COMPARE/PWM MODULE 3. Các chế độ hoạt động 3.1Chế độ CAPTURE - Hai thanh ghi CCPR1H : CCPR1L sẽ lưu lại giá trị 16bit của bộ đếm TIMER1 khi có 1 sự kiện xuất hiện tại chân CCP1 (RC2) ở một trong 4 trường hợp sau: + Bất kỳ 1 xung cạnh xuống + Bất kỳ 1 xung cạnh lên + Cứ mỗi 4 xung cạnh lên + Cứ mỗi 16 xung cạnh lên
  8. CHƯƠNG 6: CAPTURE/COMPARE/PWM MODULE - Và khi 1 sự kiện được xác định tại chân CCP1 thì cờ CCP1IF=1. Lu ý: + Trong chế độ Capture, TIMER1 phải hoạt động ở chế độ đếm đồng bộ. (Sync. Counter) + Khi 1 sự kiện xảy ra, TIMER1 không bị Reset. + Khi thay đổi chế độ hoạt động của module Capture sẽ gây ra một Ngắt. + Chân CCP1 phải được mặc định phải là Input.
  9. CHƯƠNG 6: CAPTURE/COMPARE/PWM MODULE I Prescaler CCP1IF in PIR1 1, 4, 16 CCP1 TMR1H TMR1L Edge Detect Single Buffered System Clock (Fosc) CCPRxH CCPRxL CCP1CON P1M1 P1M0 CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0 Hình 1: Hoạt động chế độ Capture
  10. CHƯƠNG 6: CAPTURE/COMPARE/PWM MODULE a. Bộ Prescaler trong chế độ Capture -Giá trị tỉ lệ được lựa chọn bởi 2 bit CCP1M1:CCP1M0 CCPxM3 CCPxM2 CCPxM1 CCPxM0 CCP Mode Selected 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 Capture, chế độ mỗi xung cạnh xuống 0 1 0 1 Capture, chế độ mỗi xung cạnh lên 0 1 1 0 Capture, chế độ 4 xung cạnh lên 0 1 1 1 Capture, chế độ mỗi 16 xung cạnh lên 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 x x
  11. CHƯƠNG 6: CAPTURE/COMPARE/PWM MODULE - Khi Module CCP ngưng hoạt động, bộ Prescaler sẽ bị Reset. - Khi ta thay đổi giá trị tỉ lệ của Prescaler, sẽ xảy ra một Ngắt. Do đó, nếu muốn thay đổi giá trị tỉ lệ hay chế độ hoạt động thì ta phải cấm tất cả các Ngắt. CLRF CCP1CON ; tắt Module CCP MOVLW NEW_VALUE ; chuẩn bị giá trị nạp MOVWF CCP1CON ;vào CCP1CON
  12. CHƯƠNG 6: CAPTURE/COMPARE/PWM MODULE b. Hoạt động Capture trong chế độ SLEEP -Trong chế độ Ngủ, TIMER1 không tăng, nhưng bộ định tỉ lệ vẫn tiếp tục đếm khi có sự kiện. Do đó, cờ CCP1IF vẫn bằng 1 khi Prescaler bị tràn, tuy nhiên giá trị của CCPR1H: CCPR1L sẽ không được cập nhập. -Ngắt CCP làm PIC thoát khỏi chế độ Ngủ nhưng giá trị của TIMER1 vẫn không được cập nhập. Điều này cho phép sử dụng CCP như là Ngắt ngoài thứ 2.
  13. CHƯƠNG 6: CAPTURE/COMPARE/PWM MODULE c. Chương trình khởi tạo Capture CLRF CCP1CON ; Tắt Module CCP CLRF TMR1H ; Xoaù byte cao Timer1 CLRF TMR1L ; Xoaù byte thaáp Timer1 CLRF INTCON ; Khoâng cho pheùp caùc ngaét vaø xoùa côø T0IF BSF STATUS, RP0 ; Choïn Bank1 BSF TRISC, CCP1 ; Chaân CCP laø ngoõ vaøo CLRF PIE1 ; Caám caùc ngaét ngoaïi vi BCF STATUS, RP0 ; Choïn Bank0 CLRF PIR1 ; Xoùa caùc côø ngaét ngoaïi vi MOVLW 0x06 ; Choïn cheá ñoä Capture, moãi 4 xung ngoõ vaøo MOVWF CCP1CON BSF T1CON, TMR1ON ; Timer1 baét ñaàu hoaït ñoäng
  14. CHƯƠNG 6: CAPTURE/COMPARE/PWM MODULE BTFSS PIR1, CCP1IF GOTO Capture_Event …nội dung chương trình Capture được thực thi… BCF PIR1, CCP1IF ; xóa cờ CCP1IF ……..
  15. CHƯƠNG 6: CAPTURE/COMPARE/PWM MODULE 3.2 Chế độ COMPARE -Trong chế độ So sánh, giá trị 16bit đặt trước trong CCPR1 sẽ được so sánh với giá trị tức thời ở 2 thanh ghi TMR1L : TMR1H. Khi 2 giá trị bằng nhau, 1 trong 4 hoạt động sau được thực thi: + Chân CCP1 lên mức cao + Chân CCP1 xuống mức thấp + Tạo ra Ngắt CCP + Tạo ra một sự kiện đặc biệt
  16. CHƯƠNG 6: CAPTURE/COMPARE/PWM MODULE TMR1H TMR1L CCPxIF in PIRx NO COMPARATOR TMR1H:TMR1L = OUTPUT CCPRxH:CCPRxL? YES CCPx LOGIC CCPRxH CCPRxL Special Event Trigger CCP1CON CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0 Hình 2: Hoạt động chế độ Capture
  17. CHƯƠNG 6: CAPTURE/COMPARE/PWM MODULE a. Hoạt động của chân CCP1 - Phải mặc định chân CCP1 trong chế độ Compare là ngõ ra, bằng cách xóa bit trong thanh ghi TRIS. - Việc xóa thanh ghi CCP1CON sẽ đưa chân CCP xuống mức thấp. - Trạng thái tại chân CCP1 phụ thuộc vào việc chọn các bit CCP1M3 : CCP1M0.
  18. CHƯƠNG 6: CAPTURE/COMPARE/PWM MODULE -Trạng thái ngõ ra CCP1: CCPxM3 CCPxM2 CCPxM1 CCPxM0 CCP Mode Selected 0 0 0 0 0 0 0 1 0 0 1 0 Compare, đảo ngõ ra khi Đ.K cân bằng 1 0 0 0 Compare, CCP=cao khi ĐKiện cân bằng 1 0 0 1 Compare, CCP=thấp khi ĐKiện cân bằng 1 0 1 0 Compare, tạo ra Ngắt khi ĐK cân bằng 1 0 1 1 Compare, Trigger special event
  19. CHƯƠNG 6: CAPTURE/COMPARE/PWM MODULE b. Tín hiệu tạo ra sự kiện đặc biệt - Tín hiệu xung này được tạo ra khi có sự cân bằng giá trị nằm ở 2 thanh ghi TMR1 và CCPRx. - Xung này sẽ reset cặp thanh ghi TMR1H:TMR1L. Điều này cho phép thanh ghi 16bit CCPRx hoạt động giống như thanh ghi chu kỳ cho TIMER1. - Xung này không Set cờ tràn TMR1IF lên 1.
  20. CHƯƠNG 6: CAPTURE/COMPARE/PWM MODULE Lu ý: Trong chế độ Compare, TIMER1 phải được thiết lập ở chế độ định thời hay đếm đồng bộ. - Ở chế độ Sự kiện đặc biệt, các hoạt động diễn ra:  Xóa b đm TIMER1 và bt đu chuyn đi ADC nu module A/D đ c cho phép.  Module CCP s không đi u khin chân CCPx.  Xung kích s đ c t
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2