LPC2214 là vi điều khiển 32bit hỗ trợ thời gian thực và trace nhúng xây dựng trên cấu trúc của ARM7TDMI-S. LPC2214 có 256kB bộ nhớ Flash tốc độ cao, vùng nhớ nội mở rộng tới 128 bit địa chỉ, cấu hình c
Trang 1BÁO CÁO ĐỒ ÁN MÔN HỌC 1
ĐỀ TÀI TÌM HIỂU VI ĐIỀU KHIỂN
ARM7 LPC2214
a&b
PHẦN 1: GIỚI THIỆU CHUNG
A Giới thiệu chung:
1 Khái quát: (general description trang 15 usermanual)
LPC2214 là vi điều khiển 32bit hỗ trợ thời gian thực và trace nhúng xây dựng trên cấu trúc của ARM7TDMI-S LPC2214 có 256kB bộ nhớ Flash tốc độ cao, vùng nhớ nội
mở rộng tới 128 bit địa chỉ, cấu hình cho phép thực thi các chỉ lệnh 32bit chỉ trong 1 chu
kì xung nhịp Để tiện cho những ứng dụng nhỏ, LPC2214 hỗ trợ tập lệnh 16bit thu gọn (Thumb) Với chế độ thu gọn này, kích thước tập lệnh chỉ còn 70% so với tập lệnh 32bit làm cùng chức năng
Đóng gói 144 chân, sử dụng năng lượng ít, timer 32bit, 8 kênh ADC, 9 nguồn ngắt ngoài, LPC2214 thích hợp cho những ứng dụng công nghiệp, hóa học, nghiên cứu điều khiển, và cả thương mại
Hỗ trợ cấu trúc JTAP, ISP, ICP cho phép mở rộng các ứng dụng nhúng
2 Các tính năng cơ bản:( features trang 15 usermanual)
Vi điều khiển ARM7TDMI-S 32bit, có hỗ trợ tập lệnh 16bit, đóng gói 144chân (pin)
16kB SRAM trong chip
256kB bộ nhớ Flash có thể lập trình (chu kì ghi/xóa ít nhất 10.000 lần)
8 kênh ADC 10bit với thời gian chuyển đổi 2.44ms
2 Timer 32bit <với 4 kênh capture và compare>, 6kênh PWM, đồng hồ thời gian thực và Watchdog
Giao diện nối tiếp gồm 2 kênh UART <16C550>, I2C tốc độ cao <400kbits/s>, 2 kênh SPI
Xung nhịp CPU tối đa 60MHz có sẵn nhờ vòng khóa pha trên chip có thể lập trình được(PLL)
Vector ngắt có địa chỉ truy cập và các mức ưu tiên
Đến 144 chân xuất/nhập đa dụng ở mức 5V Có tới 12 ngắt ngoài độc lập
nhau<chức năng EIN và CAP>
Dao động trên chip với tần số từ 1MHz đến 30MHz
2 chế độ tiết kiệm nguồn: Idle và Power Down
Đưa vi điều khiển vào lại chế độ hoạt động bình thường từ Power Down nhờ ngắt ngoài
Chức năng sử dụng tối ưu nguồn bằng cách cho phép/không cho phép từng ngoại
vi riêng lẻ
Trang 2+Cổng thông tin, truyền thông đa phương tiện
+Mục đích học thuật, nghiên cứu ứng dụng
+Đa dụng
4 Sơ qua về cấu trúc LPC2214:
LPC2214 là nhân xử lý ARM7TDMI-S hỗ trợ giao tiếp bus AMBA<advanced
microcontroller bus architecture>Ngoại vi AHB cho phép kết nối tới 2GB data Mỗi
vùng nhớ AHB có 16kB, AVB cũng có cấu tạo tương tự
Sự kết nối các mảng địa chỉ của LPC2214 được khối chân kết nối<Pin Connection
block> điều khiển Khối này có thể lập trình bằng phần mềm
5 ARM7TDMI-S processor:
o Kiến trúc tập lệnh RISC 32 bit, chu kì dòng chảy lệnh có 3 tác vụ, hỗ trợ định dạng Thumb
o Hỗ trợ 2 tập lệnh cho 32bit và 16bit<Thumb>
6 Hệ thống bộ nhớ Flash trên chip:
Hỗ trợ 256kB flash trên chip, có thể lập trình ISP, IAP, hỗ trợ giao tiếp JTAG, nâng cao tính linh hoạt cho các chương trình của người dùng
7 Hệ thống bộ nhớ SRAM trên chip:
Hỗ trợ 16kB SRAM, truy xuất theo byte, word, double word
SRAM sử dụng điều khiển phối hợp bộ đệm phản hồi để ngăn CPU vào tình trạng đứng máy khi truy cập dữ liệu ngược Bộ đệm phản hồi luôn giữ giá trị cuối của phần mềm vào SRAM Dữ liệu này chỉ được ghi vào SRAM khi phần mềm yêu cầu quá trình ghi nhận khác Nếu quá trình Reset xảy ra, thanh ghi SRAM sẽ không phản ánh đúng giá trị ghi vào SRAM ngay trước khi Reset hệ thống Muốn truy cập đúng dữ liệu, phần mềm cần đưa ra đúng mã nhận dạng Vì thế, trước khi vào chế độ Idle hay Power-down, giá trị này được ghi vào bộ nhớ đệm<dummy> để sau khi Reset, sẽ truy cập đúng giá trị mong muốn
8 Sơ đồ khối của LPC2214:
Trang 3Hình 1: Sơ đồ khối của LPC2214
§ Vùng bus ngoại vi AHB/VPB không được định nghĩa
§ Bảng mô tả chức năng các chân của LPC2214
Port 0: port 0 gồm 32-bit I/O , có thể điều
khiển riêng lẻ từng bit Hoạt động của các chân của port 0 phụ thuộc vào chức năng từng chân được chọn thông qua khối kết nối chân
Trang 421, 23, 25, 32, 33 (Pin Connect Block) Chân 26 và 31 của port
0 không có hiệu lực
Note: Port 0 có thể sử dụng như là ngõ vào
của khối A/D (P0.27, P0.28, P0.29, P0.30) 5V Nếu như không sử dụng bộ chuyển đổi A/D thì các chân này cũng có thể sử dụng như các chân I/O 5V Xem thêm phần A/D
I EINT0: ngõ vào ngắt ngoài 0
I/O SCL: I2C clock I/O, ngõ ra để hở
I CAP0.0: Ngõ vào Capture của Timer0, kênh
0 I/O SDA: I2C dữ liệu I/O, ngõ ra để hở
O MAT0.0: ngõ ra của Timer 0, kênh 0
I EINT1: Ngõ vào ngắt ngoài thứ 1
I/O SCK0: Serial Clock của SPI0 SPI clock ngõ
ra từ master hay ngõ vào của slave
I CAP0.1: ngõ vào capture của TIMER0, kênh
1 I/O
MISO0:Ngõ vào master ngõ ra slave của
SPI0 Dữ liệu vào của SPI master hay dữ liệu ngõ ra từ SPI slave
O MAT0.1: ngõ ra của TIMER0, kênh 1
I/O
MOSI0:Ngõ ra master ngõ vào slave của
SPI0 Dữ liệu ra của SPI master hay dữ liệu ngõ vào từ SPI slave
I EINT2: ngõ vào ngắt ngoài thứ 2
O TxD1: ngõ ra chuyển đổi của UART1
I EINT3: ngõ vào ngắt ngoài 3
O RST1: yêu cầu gửi dữ liệu ra cho UART1
I CAP1.0: ngõ vào capture timer1 kênh 0
Trang 5I CTS1: xóa để gửi tín hiệu vào cho UART1
I CAP1.1: ngõ vào capture timer1 kênh 1
I DST1: sẵn sàng nhận dữ liệu vào cho UART1
O MAT1.0: ngõ ra của Timer 1 kênh 0
O DTR1: sẵn sàng tải dữ liệu ra cho UART1
O MAT1.1: ngõ ra của Timer 1 kênh 1
I DCD1: ngõ vào nhận dữ liệu của UART1
I EINT1: ngõ vào ngắt ngoài 1
I RI1: ngõ vào chỉ thị của UART1
I EINT2: Ngõ vào ngắt ngoài 2
I EINT0: Ngõ vào ngắt ngoài 0
O MAT0.2: ngõ ra của Timer 0 kênh 2
ra từ master hay ngõ vào của slave
O MAT1.2: ngõ ra của Timer 1 kênh 2
I CAP1.3: ngõ ra của capture của Timer 1 kênh
3 I/O
MISO1:Ngõ vào master ngõ ra slave của
SPI1 Dữ liệu vào của SPI master hay dữ liệu ngõ ra từ SPI slave
O MAT1.3: ngõ ra của Timer 1 kênh 3
O MAT1.2: ngõ ra của Timer 1 kênh 2
I/O
MOSI1:Ngõ ra master ngõ vào slave của
SPI1 Dữ liệu ra của SPI master hay dữ liệu ngõ vào từ SPI slave
O CAP1.2: ngõ ra của capture của Timer 1 kênh
2
O MAT1.3: ngõ ra của Timer 1 kênh 3
I SSEL1: chọn lựa slave cho SPI1 Chọn lựa cách giao tiếp với SPI như là slave
Trang 6O MAT0.1: ngõ ra của Timer 0 kênh 1
I AIN1 : bộ chuyển đổi A/D, ngõ vào 1 Được nối nối tiếp với ngõ vào tương tự
I CAP0.2: ngõ vào của capture của Timer 0 kênh 2
O MAT0.2: ngõ ra của Timer 0 kênh 2
I AIN2 : bộ chuyển đổi A/D, ngõ vào 2 Được nối nối tiếp với ngõ vào tương tự
I CAP0.3: ngõ vào của capture của Timer 0 kênh 3
O MAT0.3: ngõ ra của Timer 0 kênh 3
I AIN3 : bộ chuyển đổi A/D, ngõ vào 3 Được nối nối tiếp với ngõ vào tương tự
I CAP0.0: ngõ vào của capture của Timer 0 kênh 0
Port 1: port 1 gồm 32-bit I/O, có thể điều
khiển riêng lẻ từng bit Hoạt động của các chân của port 1 phụ thuộc vào chức năng từng chân được chọn thông qua khối kết nối chân (Pin Connect Block) Chân 2 đến 31 của port
1 không có hiệu lực
P1.0 91 O CS0 : Chip Select 0 tác động mức thấp
vào/ra chuẩn với điện trở kéo lên bên trong
vào/ra chuẩn với điện trở kéo lên bên trong
vào/ra chuẩn với điện trở kéo lên bên trong
vào/ra chuẩn với điện trở kéo lên bên trong P1.20 102 O TRACESYNC đồng bộ Port vào/ra chuẩn
với điện trở kéo lên bên trong
P1.21 95 O PIPESTAT0 Pipeline Status, bit 0 Port
vào/ra chuẩn với điện trở kéo lên bên trong P1.22 86 O PIPESTAT1 Pipeline Status, bit 1 Port
vào/ra chuẩn với điện trở kéo lên bên trong P1.23 82 O PIPESTAT2 Pipeline Status, bit 2 Port
Trang 7vào/ra chuẩn với điện trở kéo lên bên trong
với điện trở kéo lên bên trong
EXTIN0 ngõ vào kích ngoài (External
Trigger) Port vào/ra chuẩn với điện trở kéo lên bên trong
P1.26 52 I/O RTCK ngõ ra trả về Test Clock
P1.27 144 O TDO Ngõ ra Test Data của giao tiếp JTAG
P1.28 140 I TDI Ngõ vào Test Data của giao tiếp JTAG
P1.30 113 I TMS Test Mode Select của giao tiếp JTAG
Port 2: port 2 gồm 32-bit I/O , có thể điều
khiển riêng lẻ từng bit Hoạt động của các chân của port 2 phụ thuộc vào chức năng từng chân được chọn thông qua khối kết nối chân (Pin Connect Block
Note: Port 2 có thể sử dụng như là ngõ vào
của khối A/D (P2.30 và P2.31) 5V Nếu như không sử dụng bộ chuyển đổi A/D thì các chân này cũng có thể sử dụng như các chân I/O 5V Xem thêm phần A/D
P2.0 98 I/O D0: line 0 dữ liệu bộ nhớ ngoài
P2.1 105 I/O D1: line 1 dữ liệu bộ nhớ ngoài
P2.2 106 I/O D2: line 2 dữ liệu bộ nhớ ngoài
P2.3 108 I/O D3: line 3 dữ liệu bộ nhớ ngoài
P2.4 109 I/O D4: line 4 dữ liệu bộ nhớ ngoài
P2.5 114 I/O D5: line 5 dữ liệu bộ nhớ ngoài
P2.6 115 I/O D6: line 6 dữ liệu bộ nhớ ngoài
P2.7 116 I/O D7: line 7 dữ liệu bộ nhớ ngoài
P2.8 117 I/O D8: line 8 dữ liệu bộ nhớ ngoài
P2.9 118 I/O D9: line 9 dữ liệu bộ nhớ ngoài
P2.10 120 I/O D10: line 10 dữ liệu bộ nhớ ngoài
P2.11 124 I/O D11: line 11 dữ liệu bộ nhớ ngoài
P2.12 125 I/O D12: line 12 dữ liệu bộ nhớ ngoài
P2.13 127 I/O D13: line 13 dữ liệu bộ nhớ ngoài
P2.14 129 I/O D14: line 14 dữ liệu bộ nhớ ngoài
P2.15 130 I/O D15: line 15 dữ liệu bộ nhớ ngoài
P2.16 131 I/O D16: line 16 dữ liệu bộ nhớ ngoài
P2.17 132 I/O D17: line 17 dữ liệu bộ nhớ ngoài
P2.18 133 I/O D18: line 18 dữ liệu bộ nhớ ngoài
P2.19 134 I/O D19: line 19 dữ liệu bộ nhớ ngoài
P2.20 136 I/O D20: line 20 dữ liệu bộ nhớ ngoài
P2.21 137 I/O D21: line 21 dữ liệu bộ nhớ ngoài
P2.22 1 I/O D22: line 22 dữ liệu bộ nhớ ngoài
Trang 8P2.23 10 I/O D23: line 23 dữ liệu bộ nhớ ngoài
P2.24 11 I/O D24: line 24 dữ liệu bộ nhớ ngoài
P2.25 12 I/O D25: line 25 dữ liệu bộ nhớ ngoài
P2.28 17 I/O D28: line 28 dữ liệu bộ nhớ ngoài
P2.29 18 I/O D29: line 29 dữ liệu bộ nhớ ngoài
71,66-
44,41,40,36,35,30-27,97,96
I/O
Port 2: port 2 gồm 32-bit I/O , có thể điều
khiển riêng lẻ từng bit Hoạt động của các chân của port 2 phụ thuộc vào chức năng từng chân được chọn thông qua khối kết nối chân (Pin Connect Block)
Note: Port 2 có thể sử dụng như là ngõ vào
của khối A/D (P3.28 và P3.29) 5V Nếu như không sử dụng bộ chuyển đổi A/D thì các chân này cũng có thể sử dụng như các chân I/O 5V Xem thêm phần A/D
P3.0 89 I/O A0: line 0 địa chỉ bộ nhớ ngoài
P3.1 88 I/O A1: line 1 địa chỉ bộ nhớ ngoài
P3.2 87 I/O A2: line 2 địa chỉ bộ nhớ ngoài
P3.3 81 I/O A3: line 3 địa chỉ bộ nhớ ngoài
P3.4 80 I/O A4: line 4 địa chỉ bộ nhớ ngoài
P3.5 74 I/O A5: line 5 địa chỉ bộ nhớ ngoài
P3.6 73 I/O A6: line 6 địa chỉ bộ nhớ ngoài
P3.7 72 I/O A7: line 7 địa chỉ bộ nhớ ngoài
P3.8 71 I/O A8: line 8 địa chỉ bộ nhớ ngoài
P3.9 66 I/O A9: line 9 địa chỉ bộ nhớ ngoài
P3.10 65 I/O A10: line 10 địa chỉ bộ nhớ ngoài
P3.11 64 I/O A11: line 11 địa chỉ bộ nhớ ngoài
P3.12 63 I/O A12: line 12 địa chỉ bộ nhớ ngoài
P3.13 62 I/O A13: line 13 địa chỉ bộ nhớ ngoài
P3.14 56 I/O A14: line 14 địa chỉ bộ nhớ ngoài
P3.15 55 I/O A15: line 15 địa chỉ bộ nhớ ngoài
P3.16 53 I/O A16: line 16 địa chỉ bộ nhớ ngoài
P3.17 48 I/O A17: line 17 địa chỉ bộ nhớ ngoài
P3.18 47 I/O A18: line 18 địa chỉ bộ nhớ ngoài
P3.19 46 I/O A19: line 19 địa chỉ bộ nhớ ngoài
Trang 9P3.20 45 I/O A20: line 20 địa chỉ bộ nhớ ngoài
P3.21 44 I/O A21: line 21 địa chỉ bộ nhớ ngoài
P3.22 41 I/O A22: line 22 địa chỉ bộ nhớ ngoài
P3.23 40 I/O A23: line 23 địa chỉ bộ nhớ ngoài
CS3: Chân Chip Select 3 tác động mức thấp
(Bank 3 địa chỉ trong khoảng 8300 0000 –
83FF FFFF)
CS2: Chân Chip Select 2 tác động mức thấp
(Bank 2 địa chỉ trong khoảng 8200 0000 –
82FF FFFF)
CS1: Chân Chip Select 1 tác động mức thấp
(Bank 1 địa chỉ trong khoảng 8100 0000 –
AIN7: bộ chuyển đổi A/D, ngõ vào 7 Được
nối nối tiếp với ngõ vào tương tự
AIN6: bộ chuyển đổi A/D, ngõ vào 6 Được
nối nối tiếp với ngõ vào tương tự
P3.30 97 O BLS1: chân chọn Byte Lane tác động mức
thấp (Bank1) P3.31 96 O BLS0: chân chọn Byte Lane tác động mức
thấp (Bank0)
139 I Vssa: Analog Ground:0V dùng để giảm nhiễu
138 I Vssa_pll: PLL Analog Ground:0V dùng để
94,104,112,119 I V3: nguồn cung cấp 3.3V cho I/O port
14 I V3A: nguồn analog 3.3V cho I/O port dùng để giảm nhiễu
§
Trang 10B Khối điều khiển hệ thống<System Control Block>:
1 Khái quát:
Khối điều khiển hệ thống có một số chức năng và thanh ghi có quan hệ với một số
thiết bị ngoại vi:
X1 Input Ngõ vào nguồn dao động
X2 Ra Ngõ ra của tinh thể dao động từ bộ khuyếch đại dao động
EINT0 Vào
-Ngõ vào ngắt ngoài 0 Có thể dùng chức năng này để wake hệ thống từ các chế
độ tiết kiệm nguồn<power down hoặc Idle>
-P0.1 và P0.16 có thể được chọn để thực hiện chức năng này
-Mức thấp trên các chân này ngay sau khi Reset ngoài sẽ cấu hình cho phần cứng ngoài yêu cầu vào ISP
EINT1 Vào Ngắt ngoài 1
Các chân P0.3 và P0.14 thực hiện chức năng này
EINT2 Vào Ngắt ngoài 2
Các chân P0.7 và P0.15 thực hiện chức năng này
EINT3 Vào Ngắt ngoài 3
Các chân P0.9, P0.20 và P0.30 thực hiện chức năng này
RESET Vào Ngõ vào Reset ngoài, mức thấp trên chân này sẽ đưa chip vào chế độ Reset:
các ngoại vi vào trạng thái mặc định, vi xử lý bắt đầu từ địa chỉ 0x0000 0000
Bảng 1: Khái quát các chân chức năng
3 Các thanh ghi chức năng:
Ngắt ngoài
EXTINT Thanh ghi chứa cờ ngắt ngoài Đọc/Ghi 0 0xE01FC140 EXTWAKE Thanh ghi Wakeup ngắt ngoài Đọc/Ghi 0 0xE01FC144 EXTMODE Thanh ghi định chế độ ngắt ngoài Đọc/Ghi 0 0xE01FC148 EXTPOLAR Thanh ghi phân cực (mức/cạnh) ngắt ngoài Đọc/Ghi 0 0xE01FC14C
Điều khiển phân vùng bộ nhớ
MEMMAP Điều khiển phân vùng ngắt ngoài Đọc/Ghi 0 0xE01FC040
Vòng khóa pha
PLLCON Thanh ghi điều khiển PLL Đọc/Ghi 0 0xE01FC080 PLLCFG Cấu hình thanh ghi PLL Đọc/Ghi 0 0xE01FC084 PLLSTAT Thanh ghi trạng thái PLL Chỉ đọc 0 0xE01FC088 PLLFEED Thanh ghi cấp giá trị PLL Chỉ ghi NA 0xE01FC08C
Điều khiển nguồn
PCON Thanh ghi điều khiển nguồn Đọc/Ghi 0 0xE01FC0C0
1 Không bao gồm các bit dự trữ
Trang 11PCONP Điều khiển nguồn cho ngoại vi Đọc/Ghi 0x3BE 0xE01FC0C4
Bộ chia bus ngoại vi VPB
VPBDIV Điều khiển chia bus ngoại vi VPB Đọc/Ghi 0 0xE01FC100
Bảng 2: Khái quát về thanh ghi điều khiển hệ thống
4 Nguồn dao đông:
Cấu hình trên chip cho phép chọn dao động tần số từ 1MHz-30MHz Thường gặp dạng
nguồn dao động ngoài như hình vẽ dưới:
Hình 2: Chọn dao động từ nguồn ngoài (a) Hình 3: Chọn tần số hoạt động từ nguồn thạch anh ngoài (b)
Hình 4: Thuật toán chọn tần số dao động của MCU
5 Ngõ vào ngắt ngoài:
LPC2214 có 4 ngõ vào ngắt ngoài được chọn trên các chân chức năng Các chân
chức năng này có thể được chọn để wakeup hệ thống khi vi xử lý dang ở chế độ tiết kiệm
nguồn
5.1 Khái quát các thanh ghi:
Chức năng ngắt ngoài dùng 4 thanh ghi đi kèm với nó Thanh ghi EXINT chứa
các cờ ngắt và thanh ghi EXTWAKEUP chứa bit cho phép từng ngắt ngoài có thể
wakeup hệ thống từ chế độ power down Thanh ghi EXTMODE và EXTPOLAR cho biết
các thông số ngắt mức/cạnh
Trang 120xE01FC140 EXTINT Thanh ghi cờ ngắt ngoài chứa các cờ ngắt ngoài cho EINT0, EINT1, và
Thanh ghi Wakeup ngắt ngoài chứa 3 bit cho phép điều khiển mỗi nguồn ngắt ngoài có thể là nguồn để wakeup hệ thống khi vi xử lý đang
0xE01FC14C EXTPOLAR Thanh ghi phân cực ngắt ngoài: điều khiển ngắt trên mỗi chân là cạnh
Bảng 3: Các thanh ghi điều khiển quá trình ngắt ngoài từ ngoại vi
5.2 Thanh ghi chứa các cờ ngắt ngoài(EXINT-0xE01FC140):
Khi ngõ vào ngắt ngoài được chọn, sự thay đổi mức (hoặc cạnh) trên chân chức
năng tương ứng sẽ tạo ra cờ ngắt trên thanh ghi ngắt ngoài Cờ ngắt này sẽ được đáp ứng bởi vector ngắt (VIC) tương ứng
Ghi ‘1’ vào các bit EINT0 đến EINT3 trên thanh ghi EXINT sẽ xóa các bit đáp
ứng Nếu ở chế độ ngắt mức, việc ghi các bit này sẽ có tác động chỉ khi các chân ngắt
ngoài tương ứng đang ở trạng thái không tích cực
+Bit này được xóa bằng cách gán cho nó trị =1, trừ trường hợp ngắt mức, khi
mà chân tương ứng đang ở mức tích cực
0
Bảng 4: Thanh ghi chứa cờ ngắt ngoài
5.3 Thanh ghi thiết lập chức năng wakeup dùng ngắt 0xE01FC144):
Reset
Bảng 5: Thanh ghi thiết lập chức năng wakeup hệ thống dùng ngắt ngoài
5.4 Thanh ghi thiết lập các chế độ ngắt ngoài(EXTMODE-0xE01FC148):
Các bit trên thanh ghi này chọn cách ngắt mức hay cạnh, chỉ có những chân được chọn cho chức năng ngẳt ngoài chịu tác động, và chúng được phép sử dụng nhờ thanh ghi VICIntEnable
Chương trình phần mềm chỉ có thể can thiệp vào các bit trên thanh ghi này bằng
cách vô hiệu hóa ngắt ở thanh ghi VICIntEnablevà ghi ‘1’ vào bit EXTINT trước khi xóa bit EXTINT để có thể thay đổi các chế độ hoạt động
Trang 130 EXTMODE0 EXTMODE0 =0, ngắt mức được chọn trên EINT0
Bảng 6: Thanh ghi chọn chế độ ngắt ngoài (mức hay cạnh)
5.5 Thanh ghi thiết lập cực tính cho chế độ ngắt ngoài (EXTPOLAR -
0xE01FC14C):
Nếu là ngắt mức, các bit của thanh ghi này xác định ngắt khi chân chức năng
tương ứng sẽ xảy ra ngắt khi ở mức cao hay mức thấp
Nếu là ngắt cạnh, các bit của thanh ghi này xác định là sẽ xảy ra ngắt khi tác động cạnh lên hay cạnh xuống ở các chân chức năng tương ứng
Chương trình phần mềm chỉ có thể can thiệp vào các bit trên thanh ghi này bằng
cách vô hiệu hóa ngắt ở thanh ghi VICIntEnablevà ghi ‘1’ vào bit EXTINT trước khi xóa bit EXTINT để có thể thay đổi cực tính cho chế độ hoạt động
Bảng 7: Thanh ghi thiết lập cực tính cho chế độ ngắt ngoài
5.6 Kết hợp nhiều chân ngắt ngoài cho cùng nguồn ngắt:
Phần mềm có thể chọn nhiều chân phục vụ cho 1 nguồn ngắt từ EINT0:3 trong
khối thanh ghi chọn chân (Pin Select block)
§ Ở chế độ tích cực mức thấp, trạng thái của tất cả các chân chọn trong EINT sẽ sử
dụng logic AND
§ Ở chế độ tích cực mức cao, trạng thái của tất cả các chân chọn trong EINT sẽ sử dụng logic OR
§ Ở chế độ ngắt cạnh, không cần để ý tới cực tính<ngắt cạnh lên hoặc cạnh xuống>,
chân sử dụng sẽ là GPIO<chân xuất nhập đa dụng> thấp nhất (nếu chon nhiều chân
kết hợp ngắt cạnh có thể gây lỗi chương trình)
Trang 14Hình 5: Chọn logic cho các ngăt ngoài
6 Vòng khóa pha(Phase locked loop-PLL):
PLL hoạt động với tần số dao động từ 1-25MHz Ngõ vào tần số được nhân vào
CCLK trong tầm từ 10MHz đến 60MHz sử dụng máy dao động điều khiển hiện
tại(Current Controlled Oscillator-CCO) Giá trị nhân vào có thể trong phạm vi từ 1 đến 32 (số nguyên) <thật ra, với LPC2214, hệ số này nhỏ hơn 6 vì bị giới hạn ngưỡng trên của
tần số dao động> CCO hoạt động trong tầm tần số từ 156MHz đến 320MHz, bởi vậy, có thêm một bộ chia trong vòng (loop) để giữ giá trị CCO trong tầm giới hạn tần số khi PLL tạo tần số dao động mong muốn Bộ chia ngoài có các số chia là 2,4,8,16 để tạo tín hiệu
xung nhịp ngõ ra
Nếu số chia là 2, nó đảm bảo rằng tín hiệu ngõ ra của PLL có độ gợn 50%
Hoạt động của PLL được điều khiển bởi thanh ghi PLLCFG Có 2 thanh ghi được
bảo vệ để chống lại sự cố xảy ra do thay đổi các thông số của PLL hoặc PLL không hoạt
động.Vì tất cả các thành phần trên chip, kể cả đồng hồ Watchdog, đều phụ thuộc vào PLL khi nó cung cấp xung nhịp cho chip, các sự cố xảy ra với PLL có thể gây ra các hoạt
động không mong muốn trên vi điều khiển Chức năng bảo vệ của PLL được thực hiện
bằng cách cập nhật giá trị liên túc giống như đồng hồ Watchdog PLL không hoạt động
khi chip Reset hoặc vào chế độ Power Down PLL chỉ hoạt động khi người lập trình cho
phép Chương trình lập trình phải định cấu hình cho PLL, cho nó hoạt động, chờ
PLL khóa pha, sau đó xem PLL như là nguồn xung nhịp
6.1 Miêu tả thanh ghi:
PLL được điều khiển bằng các thanh ghi trong bảng dưới đây
Lưu ý rằng việc thiết đặt các giá trị PLL không phù hợp có thể làm thiết bị hoạt
Đọc/Ghi
Thanh ghi cấu hình PLL Thanh ghi này giữ giá trị để cập nhật cấu hình PLL mới Giá trị ghi vào thanh ghi này sẽ có tác dụng khi xảy ra quá trình cập nhật giá trị PLL mới hợp lệ
Đọc/Ghi 0xE01FC088 PLLSTAT Thanh ghi trạng thái PLL Đọc ngược giá trị của thanh ghi này để biết thông
tin điều khiển và cấu hình của PLL Nếu thanh ghi PLLCON hoặc PLLCFG đã Chỉ đọc
Trang 15được ghi giá trị mới, nhưng quá trình cập nhật PLL liên tục(feed) không xảy
ra, nó sẽ không ảnh hưởng tới trạng thái PLL hiện tại Đọc giá trị của thanh ghi này sẽ cho biết giá trị thật sự điều khiển PLL hoặc trạng thái thật sự của PLL trong thời điểm đó
Thanh ghi cập nhật liên tục (cho ăn-feed) giá trị thanh ghi PLL Feed Register
Thanh ghi này cho phép load các thông tin về điều khiển và cấu hình của thanh ghi PLLCON và PLLCFG vào thanh ghi phụ (shadow) có ảnh hưởng trực tiếp lên hoạt động của PLL
Chỉ ghi
Bảng 8: Các thanh ghi PLL
Hình 6: Giản đồ khối PLL
6.2 Thanh ghi điều khiển PLL(PLLCON - 0xE01FC080)
Thanh ghi điều kiển PLL chứa các bit cho phép và kết nối PLL Cho phép PLL để
nó thử khóa các giá trị thiết lập hiện tại của bộ chia và nhân tần số Kết nối PLL để vi xử
lý hoạt động nhờ xung nhịp ngõ ra của PLL Sự thay đổi của thanh ghi PLL không ảnh
hưởng hệ thống tới khi quá trình cập nhật giá trị tuần tự liên tục diễn ra đúng <Xem thêm
ở thanh ghi cập nhật giá trị PLL liên tục -PLL Feed Register(PLLFEED - 0xE01FC08C)>
Cho phép PLL Enable Khi PLLE=’1’ và sau khi quá trình cập nhật giá trị PLL hợp lệ, bit này sẽ cho phép PLL để nó khóa giá trị tần số yêu cầu Xem thêm ở thanh ghi PLLSTAT
0
Kết nối PLL Khi [PLLC,PLLE]=‘11’, sau khi quá trình cập nhật giá trị PLL diễn ra hợp lệ, ngõ ra xung nhịp của PLL được chọn là xung nhịp của hệ thống Ngược lại, xung nhịp của nguồn dao động là xung nhịp của hệ thống<xem thêm ở thanh ghi PLLSTAT>
0
Bảng 9: Thanh ghi điều khiển PLL(PLLCON - 0xE01FC080)
Trang 16PLL phải được thiết đặt, cho phép, và thiết lập khóa (tạo được tần số dao động ổn định) trước khi nó có thể thành nguồn xung nhịp hệ thống khi chuyển từ tần số dao động ngoài thành xungnhịp PLL hoặc ngược lại, mạch dao động nội đưlợc vần hành để đảm
bảo rằng không tạo ra các glitches Phần cứng thì không đảm bảo rằng PLL được khóa
(dao động ổn định với tần số mong muốn) trước khi kết nối hay sẽ tự động không kết nối khi tần số dao động không ổn định Nếu xảy ra lỗi trên xung nhịp PLL khi đang hoạt
động, kết quả giống như xung nhịp máy tạo dao động không ổn định và việc không kết
nối PLL sẽ phải bắt buộc trong trường hợp này
6.3 Thanh ghi tạo cấu hình PLL(PLLCFG - 0xE01FC084)
Thanh ghi PLLCFG chứa các giá trị của bộ nhân và chia của PLL Sự thay đổi giá trị của thanh ghi này chỉ có tác dụng khi mà việc cập nhật giá trị PLL mới đã diễn ra hợp lệ<Xem thanh ghi cập nhật giá trị PLL liên tục(PLLFEED - 0xE01FC08C)>
4:0 MSEL4:0 Giá trị bộ nhân của PLL Multiplier value Đưa ra giá trị "M" ở phép tính
6:5 PSEL1:0 Giá trị bộ chia của PLL Multiplier value Đưa ra giá trị "P" ở phép tính
Bảng 10: Thanh ghi cấu hình cho PLL(PLLCFG - 0xE01FC084)
6.4 Thanh ghi trạng thái PLL(PLLSTAT - 0xE01FC088)
Thanh ghi chỉ đọc này cho ta các giá trị thông số của PLL có tác động ngay thời điểm
đọc
PLLSTAT Tên chức
Giá trị reset
Giá trị bit cho phép PLL hiện tại
+PLLE=’1’: PLL đang sử dụng
+PLLE=’0’: PLL không được sử dụng
Bit này sẽ tự động xóa khi vào chế độ Power Down
0
Giá trị bit điều khiển PLL hiện tại
+PLLC-PLLE=’11’: PLL đang sử dụng và được kết nối vào nguồn xung nhịp
+PLLC-PLLE≠’11’: PLL không được sử dụng, nguồn dao động lúc này lấy
từ xung nhịp ngoài
Bit này sẽ tự động xóa khi vào chế độ Power Down
0
Bit cho biết trạng thái khóa của PLL
+PLOCK=’1’: PLL đã hoạt động ổn định tại tần số mong muốn
Bảng 11: Thanh ghi trạng thái PLL(PLLSTAT - 0xE01FC088)
i Ngắt PLL:
Bit PLOCK trên thanh ghi PLLSTAT được nối với bộ điều khiển ngắt nó cho
phép chương trình phần mềm tích cực PLL và tiếp tục thực hiện các chức năng khác mà
không cần đợi PLL xác lập tại tần số mong muốn Khi ngắt xảy ra (PLOCK=’1’), PLL có thể được kết nối, và không cho phép ngắt
6.5 Các chế độ hoạt động của PLL:
nhận