1. Trang chủ
  2. » Thể loại khác

Chapter2 ViDieuKhien PIC18F4550 V2q

56 368 9

Đ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

Thông tin cơ bản

Định dạng
Số trang 56
Dung lượng 1,97 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chapter2 ViDieuKhien PIC18F4550 V2q tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các l...

Trang 1

CHƯƠNG 2: CẤU TRÚC VI ĐIỀU KHIỂN PIC 18F4550

Sau khi đọc chương này, người tham khảo có khả năng:

 Biết được các đặc trưng của PIC 18F4550

 Nắm vững các cấu hình dao động

 Có khả năng thiết kế xung clock theo ứng dụng yêu cầu

 Hiểu rõ về cơ chế tổ chức các bộ nhớ trong vi điều khiển

 Phân biệt được các chế độ hoạt động của vi điều khiển

 Nắm vững đặc điểm các loại reset và trạng thái ảnh hưởng của các thanh ghi sau tác động của reset

 Nắm vững ý nghĩa hoạt động các thanh ghi: OSCTUNE, OSCCON, RCON, STKPTR, STATUS

− Là bộ vi xử lý được trang bị tính năng giao tiếp USB 2.0

− Có khả năng truyền nhận dữ liệu tốc độ thấp (1.5 Mb/s) và tốc độ cao (12 Mb/s)

− Hỗ trợ việc điều khiển, ngắt, truyền dữ liệu kích thước lớn và truyền dữ liệu đồng thời

Trang 2

− Hỗ trợ lên đến 32 điểm đầu cuối (16 đường truyền song hướng)

− 1 kb bộ nhớ RAM truy cập kép cho USB

− Bộ thu phát USB cùng với bộ điều chỉnh điện áp 3.3 V trên chip

− Giao tiếp bộ thu phát USB riêng bên ngoài

− Có port truyền dữ liệu song song (SPP) cho việc truyền dòng dữ liệu USB (chỉ có ở vi điều khiển 40 chân)

2.1.2 Chế độ quản lý công suất

− Run: CPU hoạt động, các khối ngoại vi hoạt động

− Idle: CPU không hoạt động, các khối ngoại vi hoạt động Dòng điện ở chế độ idle giảm xuống chỉ còn 5.8 μA

− Sleep: CPU không hoạt động, các khối ngoại vi không hoạt động Dòng điện ở chế độ sleep giảm xuống chỉ còn 0.1 μA

− Bộ dao động Timer1 với các thông số: 1.1 μA, 32 kHz, 2 V

− Bộ định thời watchdog hoạt động với dòng chỉ bằng 2.1 μA

− Có chế độ khởi động bộ dao động hai tốc độ

2.1.3 Công nghệ nanowatt

Tất cả các vi điều khiển trong họ PIC18F đều có tính năng giảm đáng kể lượng công suất tiêu thụ trong quá trình hoạt động

Chế độ chạy luân phiên

Hoạt động theo xung clock từ bộ điều khiển Timer1 hoặc bộ dao động nội, công suất tiêu thụ trong quá trình thực thi chương trình có thể giảm đến 90%

Chế độ tĩnh (idle) phức hợp

Vi điều khiển có thể chạy với CPU ngưng hoạt động, nhưng các khối ngoại vi vẫn hoạt động Ở trạng thái này, công suất tiêu thụ có thể giảm hơn nữa, ít hơn đến 4% lượng công suất mà chế độ họat động bình thường yêu cầu

Chế độ on-to-fly

Chế độ quản lý công suất được gọi bởi chương trình của người dùng trong quá trình hoạt động, cho phép người lập trình kết hợp các ý tưởng tiết kiệm năng lượng thành thiết kế ứng dụng của họ

Trang 3

2.1.4 Tính năng bộ đa dao động

Dòng vi điều khiển PIC18F đều có tính năng lựa chọn 12 nguồn dao động khác nhau, cho phép người dùng nhiều sự lựa chọn hơn trong việc phát triển các ứng dụng Tính năng này bao gồm:

− 4 nguồn dao động thạch anh sử dụng thạch anh hoặc bộ cộng hưởng ceramic

− 4 nguồn dao động ngoại

− 1 khối tạo dao động nội cung cấp nguồn xung 8 MHz (độ chính xác ±2%), một nguồn dao động nội dùng RC INTRC (xấp xỉ 31 KHz không bị ảnh hưởng bởi nguồn cung cấp

và nhiệt độ), cũng như một dãi 6/8 tần số mà người dùng có thể lựa chọn có dãi tần từ

125 kHz đến 4 MHz Lựa chọn này giúp ta có thêm hai chân dao động trống để sử dụng cho các giao tiếp I/O

− Một bộ nhân tần số vòng lặp khóa pha (PLL) sử dụng cả thạch anh tần số cao và bộ dao

động ngoại cho phép tần số từ 4 MHz đến 48 MHz

− Hoạt động với nguồn xung clock kép không đồng bộ, cho phép chế độ USB sử dụng bộ dao động tần số cao, trong khi phần còn lại của vi điều khiển được cấp xung clock từ bộ dao động công suất thấp bên trong

Bộ dao động nội bên cạnh vai trò nguồn xung, còn cung cấp nguồn tham chiếu ổn định cho một số tính năng bổ sung như:

− Giám sát lỗi xung clock (Fail-Safe Clock Monitor): chế độ này giám sát liên tục nguồn

xung sơ cấp dựa vào tín hiệu tham chiếu từ nguồn dao động nội Nếu xảy ra lỗi xung clock, vi điều khiển sẽ chuyển sang sử dụng bộ dao động nội cho phép tiệp tục hoạt động tốc độ thấp hoặc shutdown các ứng dụng một cách an toàn

− Chế độ khởi động hai tốc độ: lựa chọn này cho phép bộ dao động nội phục vụ như một

nguồn xung, cấp cho chế độ reset khi đang mở nguồn (Power-on Reset), hoặc đánh thức

đưa hệ thống thoát khỏi chế độ sleep cho đến khi nguồn xung clock chính hoạt động trở lại

2.1.5 Tính năng đặc biệt khác

Độ bền của bộ nhớ

Bộ nhớ flash tăng cường dùng cho cả chương trình và dữ liệu EEPROM có thể ghi xóa với chu kỳ đến hàng ngàn lần, có thể lên đến 100.000 lần đối với bộ nhớ chương trình, và 1000.000 lần cho EEPROM Khả năng duy trì dữ liệu mà không cần làm tươi bộ nhớ có thể trên 40 năm

Trang 4

Tính tự lập trình

Linh kiện này có thể ghi vào các chỗ trống trong bộ nhớ chương trình của nó dưới sự điều khiển của phần mềm nội Bằng cách sử dụng thủ tục khởi động trong khối boot nằm trên cùng của bộ nhớ chương trình, có thể tạo lập một ứng dụng có khả năng tự cập nhật

Khối CCP tăng cường

Trong chế độ PWM, khối này cung cấp các ngõ ra điều chế 1, 2, 4 để điều khiển các driver cầu và bán cầu Các tính năng khác bao gồm chế độ auto shutdown để vô hiệu ngõ ra PWM theo ngắt hay theo các điều kiện khác Ngoài ra còn có chế độ auto-restart để kích hoạt lại ngõ ra PWM một khi điều kiện kể trên bị xóa

Khối USART tăng cường có khả năng lập địa chỉ

Khối truyền thông nối tiếp này có khả năng hoạt động theo chuẩn RS-232 và cung cấp

sự hỗ trợ cho giao thức bus LIN Tính năng tăng cường bao gồm nhận dạng tốc độ baud tự động, và một bộ tạo tốc độ baud 16-bit nhằm cải thiện độ phân giải khi truyền dữ liệu Khi vi điều khiển sử dụng bộ dao động nội thì EUSART sẽ vẫn hoạt động ổn định trên các ứng dụng

mà không cần phải dùng đến dao động thạch anh bên ngoài

ADC 10-bit

Khối này kết hợp với chu kỳ thời gian nhận tín hiệu chuyển đổi khả trình cho phép chọn lựa kênh chuyển đổi và khởi xướng quá trình chuyển đổi mà không cần đợi chu kỳ lấy mẫu

Do đó, tính năng này làm giảm bớt các mã có thể vượt quá giới hạn chuyển đổi

Port ICD/ICSP dành riêng

Port dành riêng này cung cấp việc sử dụng các chân sửa lỗi và chân lập trình không tích hợp các chức năng khác của vi điều khiển Tính năng này cho phép người dùng phát triển các ứng dụng chuyên về I/O trong khi vẫn duy trì khả năng lập trình và sửa lỗi trên chip

Bảng 2.1: tính năng của họ vi điều khiển PIC18F

Trang 5

Nguồn ngắt 19 19 20 20

Port I/O Ports A, B, C,

(E)

Ports A, B, C, (E)

MSSP, USART tăng cường

MSSP, USART tăng cường

Port dữ liệu song song

(Streaming Parallel Port -

POR, BOR, lệnh RESET, Stack Full, Stack Underflow (PWRT, OST), MCLR (tùy chọn), WDT

POR, BOR, lệnh RESET, Stack Full, Stack Underflow (PWRT, OST), MCLR (tùy chọn), WDT

POR, BOR, lệnh RESET, Stack Full, Stack Underflow (PWRT, OST), MCLR (tùy chọn), WDT Phát hiện điện áp thấp khả

75 cấu trúc, cho phép thiết lập đến 83 cấu trúc với các lệnh mở rộng

75 cấu trúc, cho phép thiết lập đến 83 cấu trúc với các lệnh mở rộng

75 cấu trúc, cho phép thiết lập đến 83 cấu trúc với các lệnh mở rộng

28-pin SOIC

28-pin PDIP 28-pin SOIC

40-pin PDIP 44-pin QFN 44-pin TQFP

40-pin PDIP 44-pin QFN 44-pin TQFP

Trang 6

Hình 2.2: sơ đồ khốiPIC18F4455/4550 (40/44 chân)

Chú ý:

− RE3 tích hợp chung với MCLR̅̅̅̅̅̅̅̅ và chỉ sử dụng được khi chân reset MCLR̅̅̅̅̅̅̅̅ bị vô hiệu

− OSC1/CLKI và OSC2/CLKO dùng trong chế độ lựa chọn bộ dao động và chỉ khi nó không được sử dụng như là các ngõ I/O số

Bảng 2.2 bên dưới mô tả chức năng các chân PIC18F4455/4550

Ghi chú:

Trang 7

TTL = ngõ vào tương thích TTL

CMOS = ngõ vào hoặc ngõ ra tương thích CMOS

ST = ngõ vào Schmitt Trigger với các mức CMOS

I = Input

O = Output

P = Power

Bảng 2.2: chức năng các chân PIC18F4455/4550

chân

Kiểu

PDIP QFN TQFP MCLR

- Ngõ vào nguồn xung clock bên ngoài, luôn kết hợp với chân OSC1

- Ở chế độ RC, OSC2 kết nối ngõ

ra với CLKO có tần số ¼ tần số của OSC1 và biểu thị cho tốc độ của chu kỳ lệnh

- Chân I/O dùng chung

TTL Analog

TTL Analog Analog

PORTA là port I/O song hướng

Trang 8

ST

ST

− TTL

TTL Analog TTL Analog

- Ngõ ra tham chiếu bộ so sánh analog

- Ngõ vào chọn slave SPI

- Ngõ vào phát hiện điện áp cao/thấp

I/O

I

I I/O I/O

ST

ST

ST

TTL Analog

ST

PORTB là port I/O song hướng, PORTB có thể được lập trình bằng phần mềm để pull-up tất cả ngõ vào

- Dữ liệu vào SPI

- Ngõ vào/ra dữ liệu của I2C

Trang 9

I/O

I I/O

I/O

I I/O

TTL Analog

ST

TTL Analog TTL

TTL TTL

ST

TTL TTL

ST

TTL TTL

ST

- I/O số

- Ngõ vào analog 9

- Ngõ vào Capture 2/ngõ ra Compare 2/ngõ ra PWM 2

- Ngõ ra VPO bộ thu phát USB ngoại

O

I/O I/O

ST

ST

ST TTL

- Ngõ ra OE ̅̅̅̅ bộ thu phát USB ngoại

- I/O số

- Ngõ vào Capture 1/ngõ ra Compare 1/ngõ ra PWM 1

- Ngõ ra CCP1 PWM tăng cường kênh A

- I/O số

Trang 10

I

I/O

O I/O

I/O

I I/O

O

− TTL

TTL

− TTL

I/O I/O

I/O I/O

I/O I/O

I/O I/O

I/O I/O

O

I/O I/O

O

ST TTL

ST TTL

ST TTL

ST TTL

ST TTL

ST TTL

ST TTL

PORTD là port I/O song hướng hoặc là Port dòng dữ liệu song song (Streaming Parallel Port - SPP) Các pin này có bộ đệm TTL ngõ vào khi khối SPP được cho phép

- I/O số

- Dữ liệu SPP

- Ngõ ra PWM CCP1 tăng cường kênh C

Trang 11

RD7

SPP7

P1D

I/O I/O

O

ST TTL

- I/O số

- Dữ liệu SPP

- Ngõ ra PWM CCP1 tăng cường kênh D

ST Analog

ST Analog

RE3 − − − − − Xem chân MCLR̅̅̅̅̅̅̅̅/VPP/RE3

Họ PIC 18F2455/2550/4455/4550 phối hợp với bộ tạo dao động và hệ thống xung clock cho VĐK theo cách khác hơn so với họ PIC18F đã có trước đó Đồng thời, khối USB được thêm vào nên đòi hỏi phải có một nguồn xung ổn định, do đó cần phải cung cấp cho

Trang 12

khối này một nguồn xung độc lập phù hợp với các thông số USB khi giao tiếp ở tốc độ thấp

và tốc độ cao Vì vậy, PIC 18F2455/2550/4455/4550 luôn có một nguồn xung clock cung cấp xung tần số 48 MHz cho hoạt động tốc độ cao của USB, và bởi vì xung clock này được lấy

từ nguồn xung sơ cấp nên cần phải thêm vào một hệ thống bộ chia trước tần số (prescaler) và

bộ chia sau tần số (postscaler) để có thể thích ứng với dải tần rộng của bộ tạo dao động

Cấu trúc của bộ dao động được miêu tả trong hình 2.3

2.2.1 Điều khiển bộ dao động

Cơ chế hoạt động của họ PIC này được điều khiển thông qua 2 thanh ghi thiết lập cấu hình CONFIG1L, CONFIG1H và 2 thanh ghi điều khiển OSCCON, OSCTUNE Hai thanh ghi cấu hình sẽ lựa chọn chế độ của bộ dao động và thiết lập thông số cho prescaler/postscaler của USB Các bit cấu hình này được set khi VĐK được lập trình, và chúng tiếp tục duy trì cấu hình này cho đến khi được lập trình lại

Thanh ghi điều khiển OSCCON sẽ chọn chế độ xung clock hoạt động, nó được dùng chủ yếu để điều khiển chuyển nguồn xung trong chế độ quản lý công suất Thanh ghi OSCTUNE được dùng để vi chỉnh tần số INTRC nội, cũng như chọn nguồn xung có tần số thấp để điều khiển các tính năng đặc biệt khác

2.2.2 Các loại dao động

Họ PIC này có thể hoạt động theo 12 cấu hình dao động khác nhau của bộ tạo dao động, người lập trình có thể lập trình các bit cấu hình FOSC3:FOSC0 để lựa chọn giữa các chế độ này:

(1) XT: thạch anh (Crystal)/Bộ cộng hưởng (Resonator)

(2) XTPLL: Crystal/Resonator với PLL được kích hoạt

(3) HS: Crystal/Resonator tốc độ cao

(4) HSPLL: Crystal/Resonator tốc độ cao với PLL được kích hoạt

(5) EC: xung Clock ngoại với ngõ ra được chia tần FOSC/4

(6) ECIO: xung Clock ngoại với RA6 đóng vai trò là I/O

(7) ECPLL: xung Clock ngoại với PLL được kích hoạt và ngõ ra FOSC/4 trên chân RA6 (8) ECPIO: xung Clock ngoại với PLL được kích hoạt, và RA6 đóng vai trò là I/O (9) INTHS: xung Clock nội được sử dụng như nguồn xung của VĐK, còn bộ dao động

HS được sử dụng như nguồn xung USB

(10) INTXT: xung Clock nội được sử dụng như nguồn xung của VĐK, còn bộ dao động

XT được sử dụng như nguồn xung USB

Trang 13

(11) INTIO: xung Clock nội được sử dụng như nguồn xung của VĐK, còn bộ dao động

EC được sử dụng như nguồn xung USB, và RA6 đóng vai trò là I/O

(12) INTCKO: xung Clock nội được sử dụng như nguồn xung của VĐK, còn bộ dao động

EC được sử dụng như nguồn xung USB, và ngõ ra FOSC/4 trên chân RA6

Hình 2.3: sơ đồ bộ tạo xung clock PIC 18F2455/2550/4455/4550 2.2.2.1 Các chế độ bộ dao động và hoạt động của USB

Đối với dòng PIC trước thì xung điều khiển hoạt động của CPU và các ngoại vi đều lấy từ cùng một nguồn xung đơn Với họ PIC 18F2455/2550/4455/4550, nguồn xung sơ cấp lại trở thành một phần của khối USB và không thể phối hợp với bất kỳ nguồn xung nào khác Còn CPU và các thành phần ngoại vi sẽ được cấp xung độc lập từ nguồn xung thứ cấp hoặc nguồn xung nội

Trang 14

Bởi vì khối USB có liên quan đến vấn đề định thời, nên khi khối USB được kích hoạt thường đòi hỏi có nguồn xung nội 6 MHz hoặc 48 MHz May mắn là VĐK và thành phần ngoại vi thường không hoạt động với tốc độ xung clock này Có rất nhiều cách khác nhau để đạt được tốc độ xung khối USB yêu cầu bằng nguồn xung sơ cấp, mà vẫn cấp xung một cách linh hoạt cho những thành phần khác trong VĐK

2.2.2.2 Dao động thạch anh, bộ cộng hưởng RC

Trong chế độ HS, HSPLL, XT và XTPLL, thì thạch anh tạo dao động hoặc mạch cộng hưởng RC được nối đến hai chân OSC1 và OSC2 để tạo dao động

Hình 2.4: cấu hình thạch anh/mạch cộng hưởng RC

Hình 2.4 chỉ dẫn cách kết nối các linh kiện tạo dao động này vào VĐK, trong đó giá trị điện trở RF thay đổi theo chế độ dao động được chọn

Kiểu dao động Tần số XTAL Các giá trị tụ điển hình đã kiểm thử

− Đây là các giá trị tần số thường dùng trong thực tế

− Sử dụng tụ có điện dung cao sẽ làm tăng tính ổn định của mạch, nhưng lại làm tăng thời gian khởi động mạch

− Khi hoạt động với điện áp VDD dưới 3 V hoặc khi dùng mạch RC với bất kỳ điện áp VDD nào thì nên chọn chế độ HS hoặc sử dụng dao động thạch anh

Trang 15

− Mỗi loại thạch anh hoặc bộ cộng hưởng RC đề có các đặc tính riêng, do đó khi sử dụng cấn tham khảo nhà sản xuất để chọn giá trị phù hợp

− Phải luôn kiểm tra hoạt động của bộ tạo dao động theo VDD và nhiệt độ

− Rs đôi khi được dùng để tránh tình trạng thạch anh vượt ngưỡng khả năng tạo dao động của hệ thống

Để tạo ra các giá trị tần số khác với tần số trên, bộ chia tần số postscaler thường được

sử dụng Tỷ lệ chia tần số được xác định bởi bit cấu hình CPUDIV, các mức chia thường áp dụng là 1/2, 1/3 hoặc 1/4 của giá trị tần số đang sử dụng

Hình 2.5 mô tả cấu hình dao động ở chế độ HS sử dụng bộ dao động ngoại, trong trường hợp này chân OSC2/CLKO sẽ được bỏ trống

Hình 2.5: cấu hình HS sử dụng mạch dao động ngoại 2.2.2.3 Tạo xung clock sử dụng bên ngoài

Chế độ tạo dao động EC, ECIO, ECPLL và ECPIO sử dụng nguồn clock bên ngoài nối

đến chân OSC1 Đối với EC và ECPLL thì tần số được chia 4 tại ngõ ra OSC2 (xem hình 2.6)

có thể được dùng để test hoặc đồng bộ các mạch logic khác Đối với ECIO và ECPIO cũng tương tự như trên, tuy nhiên lúc này OSC2 sẽ đóng vai trò như I/O dùng chung RA6

Hình 2.6: cấu hình dao động EC và ECPLL

Hình 2.7: cấu hình dao động ECIO và ECPIO

Trang 16

2.2.2.4 Bộ nhân tần số PLL

Dòng PIC 18F này có chứa một mạch lặp khóa pha, mạch này cung cấp đặc biệt cho ứng dụng dùng USB với bộ tạo dao động có tốc độ thấp hơn, nó cũng có thể được dùng như nguồn xung clock cho VĐK

PLL có thể dùng trong các chế độ như HSPLL, XTPLL, ECPLL và ECPIO PLL có thể tạo ra nguồn xung tham chiều cố định 96 MHz từ xung ngõ vào 4 MHz Lúc này, xung ngõ

ra có thể được chia để cấp cho USB và CPU VĐK Có 8 mức chia trước để đưa xung ngõ vào đến PLL, đồng thời cũng có một bộ chia sau độc lập để đưa xung từ PLL đến VĐK Điều này cho phép VĐK và USB dùng cùng một nguồn dao động ngõ vào nhưng hoạt động với các tốc

độ clock khác nhau Bộ chia sau cho các chế độ XT, HS và EC có các mức 1/2, 1/3, 1/4 và 1/6 tại ngõ ra PLL

Chế độ HSPLL, ECPLL và ECPIO làm cho tần số sử dụng trong chế độ dao động HS tăng lên đến 48 MHz, khi đó bộ chia trước prescaler sẽ chia ngõ vào xung đi 12 lần tạo tần số

4 MHZ cấp cho ngõ vào PLL Ở chế độ XTPLL có thể dùng trực tiếp tần số ngõ vào 4 MHz cấp cho PLL

Hình 2.8: sơ đồ khối PLL chế độ HS 2.2.2.5 Khối dao động nội

Khối dao động nội tạo ra hai tín hiệu clock khác nhau có thể được dùng cấp xung cho VĐK Nếu không sử dụng khối USB, thì khi đó VĐK có thể dùng khối tạo dao động nội này

mà không cần đến mạch tạo dao động bên ngoài

Ngõ ra chính (INTOSC) là nguồn xung 8 MHz có thể dùng cấp trực tiếp cho VĐK, ngoài

ra cũng có thể dùng postscaler INTOSC để chia tần số này tạo ra dải tần từ 31 kHz đến 4 MHz

Trang 17

Nguồn xung nội khác là mạch dao động RC (INTRC) tạo nguồn xung nhỏ 31 kHz,

INTRC được kích hoạt khi chọn nó như là nguồn xung clock cho VĐK, ngoài ra nó được tự

động kích hoạt khi các hoạt động sau đây thực thi: định thời khởi nguồn (power-up timer), định thời canh gác (watchdog timer), khởi động hai tốc độ (two-speed start-up)

Các chế độ tạo dao động nội

Khi VĐK sử dụng bộ dao động nội, thì các nguồn xung khác sẽ được dùng làm nguồn xung cho USB Việc chọn nguồn xung cho USB phụ thuộc vào 4 chế độ xung nội riêng biệt sau:

− Chế độ INTHS: xung clock USB được cấp bởi bộ dao động chế độ HS

− Chế độ INTXT: xung clock USB được cấp bởi bộ dao động chế độ XT

− Chế độ INTCKO: xung clock USB được cấp bởi ngõ vào xung ngoại ở chân

OSC1/CLKI; ngõ ra xung ở chân OSC2/CLKO với FOSC/4

− Chế độ INTIO: xung clock USB được cấp bởi ngõ vào xung ngoại ở chân

OSC1/CLKI; chân OSC2/CLKO sử dụng như I/O số (RA6)

Thanh ghi OSCTUNE

Tần số ngõ ra của bộ dao động nội thường được định sẵn bởi nhà sản xuất, tuy nhiên chúng vẫn có thể được điều chỉnh trong các ứng dụng của người dùng thông qua thanh ghi OSCTUNE Khi thanh ghi này được thiết lập giá trị thì tần số tại các chân INTOSC và INTRC

sẽ xác định giá trị mới Xung INTRC sẽ tiến đến giá trị mới trong 8 chu kỳ xung nhịp (xấp xỉ 8*32μs = 256 μs), còn xung INTOSC sẽ ổn định tại giá trị mới trong vòng 1 ms

Thanh ghi OSCTUNE còn chứa bit INTSCR cho phép người dùng chọn bộ dao động nội nào cung cấp xung khi tần số 31 kHz được chọn

Hình 2.9: thanh ghi OSCTUNE Ghi chú:

R = bit có thể đọc

W = bit có thể ghi

U = bit chưa sử dụng, được xem như bit ‘0’

‘1’ = Bit được set

‘0’ = Bit được xoá

x = Bit chưa xác định

Trang 18

Bit 7 – INTSCR: bit lựa chọn nguồn tần số thấp của bộ dao động nội

1 = Xung 31.25 kHz lấy từ nguồn xung 8 MHz ở chân INTOSC (đã chia 256)

0 = Xung 31 kHz lấy trực tiếp từ dao động nội INTRC

Bit 6, 5 – không sử dụng, được đọc bằng 0

Bit 4-0 – TUN4:TUN0: bit điều chỉnh tần số

2.2.3 Tạo dao động cho giao tiếp USB

PIC 18F4550 khi dùng kết nối USB, nó cần phải có xung clock 6 MHz hoặc 48 MHz cho việc giao tiếp USB tùy thuộc vào cấu hình tốc độ cao hay thấp Điều này cần được tính toán cẩn thận trong việc lựa chọn tần số dao động và khi lập trình cho VĐK

Bảng 2.5: các cấu hình bộ tạo dao động được lựa chọn cho hoạt động USB

Tần số dao động

đưa vào (PLLDIV<2:0>) Hệ số chia PLL

Kiểu xung clock (FOSC<3:0>)

Hệ số chia clock MCU (CPUDIV<1:0>)

Tần số xung clock VĐK

48 MHz Không có (1) EC, ECIO Không có (00) 48 MHz

Trang 20

là một trong các chế độ tạo dao động chính(XT, HS hoặc EC, có hoặc không có PLL)

2.2.3.2 Hoạt động với các xung clock khác nhau đối với USB và VĐK

Khối USB khi hoạt động ở cả tốc độ thấp và tốc độ cao có thể chạy không cần đồng bộ với CPU và các thành phần ngoại vi khác Điều này có nghĩa khối USB có thể dùng nguồn xung sơ cấp trong khi các thành phần khác hoạt động với nguồn xung độc lập với USB nhưng

có tốc độ thấp hơn Điều này là cần thiết vì chế độ giao tiếp USB tốc độ cao đòi hỏi phải cung cấp tần số lớn hơn so với xung clock của VĐK

2.2.4 Chuyển đổi giữa bộ dao động và nguồn xung

Cũng giống như các dòng PIC18 khác, họ PIC18F2455/2550/4455/4550 cũng có tính năng cho phép nguồn xung hoạt động chuyển từ bộ tạo dao động chính sang nguồn xung clock

có tần số thấp khác Có hai nguồn xung clock luân phiên được họ PIC này sử dụng, khi một nguồn xung loại này được cho phép thì sẽ có các chế độ hoạt động quản lý công suất khác nhau có thể được kích hoạt

Về cơ bản có 3 nguồn xung clock được họ PIC này sử dụng: bộ tạo dao động sơ cấp, bộ tạo dao động thứ cấp, khối tạo dao động nội

Bộ tạo dao động sơ cấp: bao gồm thạch anh và bộ cộng hưởng RC ngoại, xung ngoại và khối

dao động nội Mỗi chế độ được khai báo bằng các bit cấu hình FOSC3:FOSC0

Bộ tạo dao động thứ cấp: là các nguồn dao động ngoại không được kết nối đến chân OSC1

hoặc OSC2, các nguồn dao động này có thể vẫn hoạt động cho dù VĐK đang ở chế độ quản

lý công suất

PIC 18F2455/2550/4455/4550 sử dụng Timer1 như bộ tạo dao động thứ cấp, bộ dao động này khi hoạt động trong chế độ quản lý công suất là một hàm dựa trên thời gian, nó là một bộ xung clock thời gian thực Bộ dao động này thường là một thạch anh đồng hồ 32.768 kHz được nối giữa chân RC0/T1OSO/T13CKI và RC1/T1OSI/UOE̅̅̅̅̅̅ Cũng giống như chế độ dao động XT và HS, khi kết nối phải có tụ nối từ mỗi chân xuống mass

Khối tạo dao động nội: thường dùng làm nguồn xung trong chế độ quản lý nguồn Nguồn

xung từ INTRC cũng được dùng làm clock cho một số tính năng khác như WDT hay giám sát lỗi xung

Trang 21

Thanh ghi điều khiển bộ dao động

Thanh ghi OSCCON điều khiển nhiều yếu tố trong hoạt động tạo xung clock của VĐK trong chế độ hoạt động bình thường và cả chế độ quản lý công suất

Hình 2.10: thanh ghi OSCON Bit 7 – IDLEN: bit cho phép chế độ idle

1 = VĐK vào trạng thái idle bằng cấu trúc lệnh SLEEP

0 = VĐK vào trạng thái sleep bằng cấu trúc lệnh SLEEP

Bit 6-4 – IRCF2:IRCF0: bit chọn tần số dao động nội Các bit này sẽ chọn ngõ ra tần số

của khối tạo dao động nội để điều khiển clock VĐK

111 = 8 MHz (lấy xung clock trực tiếp từ INTOSC)

000 = 31 kHz (lấy trực tiếp từ INTOSC/256 hoặc INTRC)

Nếu bộ dao động nội này cấp xung cho VĐK thì ngay khi các bit này thay đổi trạng thái thì lập tức làm thay đổi ngõ ra của bộ tạo dao động Nếu có reset xảy ra thì tần

số ngõ ra của bộ tạo dao động nội sẽ đưa về giá trị mặc định 1 MHz

Khi tần số 31 kHz được chọn, người dùng có thể quyết định dao động nội nào đóng vai trò là nguồn xung, điều nay được thực hiện thông qua bit INTSRC trong thanh ghi OSCTUNE Khi bit này được set sẽ chọn nguồn xung 31.25 kHz từ INTOSC

được chia cho 256 (sử dụng postscaler) Bit này được xóa sẽ chọn nguồn xung 31

kHz từ INTRC

Bit 3 – OSTS: bit trạng thái báo hết thời gian chờ để khởi động bộ dao động

1 = Đã hết thời gian chờ để khởi động bộ tạo dao động, bộ tạo dao động chính đang hoạt động

0 = Vẫn đang chờ để khởi động bộ tạo dao động, bộ tạo dao động chính chưa sẵn sàng

Trang 22

Bit 2 – IOFS: bit báo ổn định tần số INTOSC

2.2.5 Tác động của chế độ quản lý công suất đối với các nguồn xung

Đối với tất cả các chế độ quản lý công suất, các bộ dao động đang sử dụng chân OSC1

sẽ bị vô hiệu Và nếu khối USB chưa được kích hoạt, thì các chân OSC1 và OSC2 sẽ ngừng cấp dao động

Khi sử dụng nguồn xung thứ cấp, bộ dao động Timer1 vẫn chạy nếu được yêu cầu cấp xung cho Timer1 hoặc Timer3

Trong chế độ tạo dao động nội, ngõ ra xung 31 kHz từ chân INTRC sẽ cấp xung trực tiếp và cho phép hỗ trợ một số tính năng đặc biệt khác bất chấp có chế độ quản lý công suất đang thực thi Còn ngõ ra xung INTOSC sẽ bị vô hiệu nếu xung clock INTRC đang được sử dụng

Nguồn xung cấp cho USB vẫn tiếp tục hoạt động bất chấp chế độ quản lý đang chạy là run hay idle Nếu VĐK đang hoạt động với dao động từ thạch anh hoặc bộ cộng hưởng, thì các bộ dao động dó sẽ tiếp tục cấp xung cho khối USB, còn CPU và các khối khác sẽ chuyển sang dùng nguồn xung mới

Nếu chế độ sleep được chọn thì tất cả nguồn xung sẽ ngừng hoạt động, do đó chế độ sleep sẽ đạt được mức tiêu thụ công suất thấp nhất Chế độ này không nên kích hoạt nếu khối USB đang hoạt động hay đang kết nối, chỉ ngoại lệ khi VĐK phát hiện trạng thái hoạt động của USB đang bị treo, khi đó VĐK sẽ được chuyển sang trạng thái sleep một cách an toàn

2.2.6 Độ trễ do khởi động nguồn

Delay khởi động nguồn được điều khiển bởi 2 bộ định thời để không phải sử dụng thêm mạch reset bên ngoài trong các ứng dụng Delay sẽ đảm bảo VĐK được giữ ở trạng thái reset cho đến khi nguồn cung cấp cho VĐK ổn định và đến khi nguồn xung sơ cấp hoạt động và đạt được sự ổn định

Bộ định thời đầu tiên là Power-up Timer (PWRT) cho biết giá trị delay cố định để khởi

Trang 23

Bộ định thời thứ hai là bộ định thời khởi tạo dao động (OST) dùng để giữ chip ở trạng

thái reset cho đến khi dao động thạch anh ổn định (chế độ XT và HS) OST thực hiện điều này

bằng cách đếm 1024 chu kỳ dao động trước khi cho phép bộ dao động cấp xung cho VĐK

Khi chế độ dao động HSPLL được chọn, VĐK sẽ duy trì trạng thái reset thêm 2 ms so với delay ở chế độ HS để bộ PLL có thể khóa tần số xung đang đến

Họ PIC18F2455/2550/4455/4550 đưa ra 7 chế độ hoạt động quản lý công suất hiệu quả hơn, các chế độ này cug cấp các lựa chọn đa dạng để bảo toàn công suất trong các ứng dụng

mà nguồn tài nguyên bị hạn chế (linh kiện dùng nguồn pin)

Các chế độ quản lý công suất được chia làm 3 chế độ chính: run, idle, sleep

Các chế độ này sẽ quyết định thành phần nào của VĐK được cấp xung và đôi khi nó quyết định cả tốc độ của nguồn xung Chế độ run và idle dùng cả 3 nguồn xung: chính, thứ cấp và xung nội Chỉ có chế độ sleep là không sử dụng nguồn xung

Chế độ quản lý công suất bao gồm nhiều tính năng giúp tiết kiệm công suất khác nhau, một trong các tính năng đó là chuyển nguồn xung, cho phép VĐK sử dụng bộ tạo dao động

từ Timer1 thay cho nguồn xung sơ cấp

2.3.1 Lựa chọn chế độ quản lý công suất

Việc lựa chọn chế độ quản lý công suất được tiến hành thông qua hai quyết định: một là CPU có được cấp xung hay không, và hai là lựa chọn nguồn xung cấp nào Như đã trình bày

ở phần trên, thanh ghi điều khiển OSCCON sẽ điều khiển quá trình lựa chọn này Các chế độ riêng biệt, các bit cài đặt, nguồn xung và các khối nào chịu tác động được tổng hợp trong bảng 2.6

Bảng 2.6: các chế độ quản lý công suất

Chế độ

nguồn xung có thể sử

dụng IDLEN SCS1:SCS0 CPU Ngoại vi

hiệu PRI_RUN N/A 00 Cấp xung Cấp xung Nguồn xung sơ cấp và

tất cả các chế độ tạo dao động

Đây là chế độ tiêu thụ công suất bình thường SEC_RUN N/A 01 Cấp xung Cấp xung Nguồn xung thứ cấp và

bộ tạo dao động từ Timer1

Trang 24

PRI_IDLE 1 00 Ngắt Cấp xung Nguồn xung sơ cấp và

tất cả các chế độ tạo dao động

SEC_IDLE 1 01 Ngắt Cấp xung Nguồn xung thứ cấp và

bộ tạo dao động từ Timer1

RC_IDLE 1 1x Ngắt Cấp xung Khối tạo dao động nội Thời gian chuyển tiếp giữa các nguồn xung là tổng hai chu kỳ xung cũ cộng với ba hoặc bốn chu kỳ xung mới, và giả sử rằng nguồn xung mới là ổn định

2.3.2 Chế độ Run

Trong chế độ run thì xung được cấp cho cả CPU và các thành phần ngoại vi, sự khác

nhau giữa các chế độ này chỉ là nguồn xung mà thôi

2.3.2.1 Chế độ PRI_RUN

Chế độ PRI_RUN là chế độ tiêu thụ công suất bình thường của VĐK, đây cũng là chế

độ mặc định khi reset nếu quá trình start-up 2 tốc độ không được kích hoạt Trong chế độ này, bit OSTS được set, còn bit OSTF sẽ được set nếu khối dao động nội được chọn làm nguồn xung sơ cấp

2.3.2.2 Chế độ SEC_RUN

Chế độ SEC_RUN là chế độ tương thích với tính năng chuyển nguồn xung Trong chế

độ này CPU và các thành phần ngoại vi được cấp xung từ bộ tạo dao động Timer1, điều này cho phép người dùng điều khiển hoạt động với công suất tiêu thụ thấp trong khi vẫn sử dụng nguồn xung có độ chính xác cao

Chế độ SEC_RUN được chọn bằng cách set bit SCS1:SCS0 là ‘01’, xung clock của VĐK sẽ chuyển sang dùng bộ tạo dao động Timer1, bộ tạo xung chính tắt, bit T1RUN được set, bit OSTS được xoá

Chú ý là để kích hoạt chế độ này thì Timer1 phải đang chạy chứ không chỉ được cho phép thôi, đồng thời bit T1OSCEN phải được set khi bit SCS1:SCS0 là ‘01’

Trong quá trình chuyển tiếp chế độ từ SEC_RUN sang PRI_RUN thì CPU và các thành phần ngoại vi tiếp tục được cấp xung từ bộ tạo dao động Timer1, trong khi nguồn xung sơ cấp được khởi động Khi nguồn xung sơ cấp đã sẵn sàng, xung clock VĐK sẽ chuyển sang dùng nguồn xung sơ cấp này Lúc này, bit T1RUN được xoá, bit OSTS được set, bộ tạo dao động Timer1 vẫn tiếp tục chạy

Trang 25

Hình 2.11: quá trình chuyển tiếp vào chế độ SEC_RUN

Hình 2.12: quá trình chuyển tiếp từ chế độ SEC_RUN sang PRI_RUN

2.3.2.3 Chế độ RC_RUN

Trong chế độ chế độ RC_RUN này, CPU và các thành phần ngoại vi được cấp xung từ

khối tạo dao động nội sử dụng chân chức năng INTOSC, bộ tạo xung chính tắt Khi sử dụng nguồn xung từ INTRC, thì chế độ này cung cấp tính đảm bảo công suất tốt nhất trong tất cả các chế độ chạy trong khi vẫn thực thi chương trình bình thường Nó làm việc rất hiệu quả đối với những ứng dụng không đòi hỏi cao về định thời hoặc yêu cầu xung clock tốc độ cao

Trang 26

Trong quá trình chuyển tiếp từ RC_RUN sang PRI_RUN thì VĐK tiếp tục được cấp xung từ chân chức năng INTOSC, trong khi nguồn xung sơ cấp được khởi động Khi nguồn xung sơ cấp đã sẵn sàng, clock VĐK sẽ chuyển sang dùng nguồn xung sơ cấp này Lúc này, bit IOFS được xoá, bit OSTS được set Bit IDLEN và SCS không bị tác động bởi chuyển nguồn xung Nguồn xung INTRC vẫn tiếp tục chạy nếu WDT hoặc Fail-Safe Clock Monitor được kích hoạt

Hình 2.13: quá trình chuyển tiếp vào chế độ RC_RUN

Hình 2.14: quá trình chuyển tiếp từ RC_RUN sang PRI_RUN 2.3.3 Chế độ SLEEP

Chế độ này được thực thi bằng cách xoá bit IDLEN và thực thi cấu trúc lệnh SLEEP Chế độ này sẽ ngắt các bộ tạo dao động (xem hình 2.15), tất cả các bit trạng thái của nguồn

xung đều được xoá

Khi chuyển từ các chế độ hoạt động khác sang chế độ sleep sẽ không yêu cầu chuyển nguồn xung, bởi vì VĐK khi chuyển sang sleep không cần đến xung clock nữa Nếu WDT được kích hoạt thì nguồn xung INTRC vẫn sẽ tiếp tục hoạt động, nếu bộ tạo dao động Timer1 được kích hoạt, nó cũng sẽ tiếp tục chạy

Trang 27

Khi có sự kiện đánh thức VĐK trong chế độ sleep (bằng ngắt, reset hoặc hết thời gian chờ WDT), VĐK sẽ không được cấp xung cho đến khi nguồn xung được chọn bởi các bit SCS1:SCS0 đã sẵn sàng (xem hình 2.16), hoặc nó sẽ được cấp xung từ khối tạo dao động nội

nếu chế độ khởi động hai tốc độ hoặc giám sát lỗi xung được kích hoạt Trong cả hai trường hợp, bit OSTS được set khi nguồn xung sơ cấp cấp xung cho VĐK, bit IDLEN và SCS không

bị ảnh hưởng bởi quá trình đánh thức VĐK khỏi chế độ sleep

Hình 2.15: quá trình chuyển tiếp vào chế độ sleep

Hình 2.16: quá trình đánh thức khỏi chế độ sleep 2.3.4 Chế độ IDLE

Chế độ idle cho phép CPU của VĐK tắt trong khi các thành phần ngoại vi khác vẫn hoạt

động bình thường Điều này cho phép người dùng đi sâu hơn vào chế độ quản lý công suất tiêu thụ

Khi bit IDLEN được set lên ‘1’ và lệnh SLEEP được thực thi, VĐK sẽ đươc chuyển nhanh từ chế độ run sang idle chế độ tương ứng của nó Khi đó, các thành phần ngoại vi sẽ được cấp xung từ nguồn xung được chọn bởi các bit SCS1:SCS0, tuy nhiên CPU sẽ không được cấp xung nữa Nếu WDT được chọn, thì nguồn xung INTRC sẽ tiếp tục hoạt động, nếu

bộ tạo dao động Timer1 được kích hoạt thì nó sẽ tiếp tục chạy

Khi ở trạng thái idle, CPU sẽ không hoạt động Do đó, muốn thoát khỏi chế độ idle, ta phải dùng ngắt, WDT timeout, hoặc reset Khi CPU được đánh thức, nó sẽ bị delay một thời khoảng TCSD cho đến khi nó sẵn sàng thực thi mã chương trình, lúc này nó sẽ sử dụng cùng một nguồn xung với trạng thái chế độ idle trước đó

Trang 28

2.3.4.1 Chế độ PRI_IDLE

Chế độ này khá đặc biệt trong số 3 chế độ idle công suất thấp, nó không vô hiệu nguồn xung sơ cấp của VĐK ở chế độ idle Đối với các ứng dụng đòi hỏi định thời, điều này cho phép khôi phục lại hoạt động hệ thống một cách nhanh nhất bởi nguồn xung sơ cấp là nguồn

có độ chính xác hơn cả

Quá trình chuyển tiếp từ PRI_RUN sang PRI_IDLE được thực hiện bằng cách set bit IDLEN và thực thi cấu trúc lệnh SLEEP Nếu VĐK đang ở trong các chế độ chạy khác thì đầu tiên set bit IDLEN trước, sau đó xoá các bit SCS rồi mới thực thi lệnh SLEEP Mặc dù CPU được ngắt, nhưng các thành phần ngoại vi khác vẫn được cấp xung bởi nguồn xung sơ cấp có giá trị được xác định qua các bit cấu hình FOSC3:FOSC0, và bit OSTS vẫn tiếp tục

được set (xem hình 2.17)

Khi có sự kiện đánh thức VĐK, CPU sẽ được cấp xung từ nguồn xung sơ cấp Lúc này

sẽ cần có một khoảng delay TCSD giữa sự kiện đánh thức và khi quá trình thực thi code bắt đầu Khoảng delay này sẽ cho phép CPU sẵn sàng để thực thi lệnh, bit OSTS vẫn được set,

bit IDLEN và SCS không bị ảnh hưởng khi VĐK hoạt động trở lại (xem hình 2.18)

Hình 2.17: quá trình chuyển tiếp vào chế độ idle

Hình 2.18: quá trình chuyển từ chế độ idle sang run 2.3.4.2 Chế độ SEC_IDLE

Trong chế độ SEC_IDLE, CPU tắt nhưng các thành phần ngoại vi khác vẫn được cấp xung từ bộ dao động Timer1 Quá trình chuyển tiếp từ SEC _RUN sang chế độ SEC _IDLE được thực hiện bằng cách set bit IDLEN và thực thi cấu trúc lệnh SLEEP Nếu VĐK đang ở

Ngày đăng: 21/12/2017, 12:18

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN