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.
32 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 2096 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đề tài Tìm hiểu vi điều khiển arm7 lpc2214, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
2.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
Dương Huỳnh Bảo_DD04KSTN
P2.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.26 13 I/O D26: line 26 dữ liệu bộ nhớ ngoài
BOOT0
P2.27
16 I/O
D27: line 27 dữ liệu bộ nhớ ngoài
BOOT1
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
P2.30
19 I/O
D30: line 30 dữ liệu bộ nhớ ngoài
AIN4 : bộ chuyển đổi A/D, ngõ vào 4. Được
nối nối tiếp với ngõ vào tương tự.
P2.31
20 I/O
D31: line 31 dữ liệu bộ nhớ ngoài
AIN5 : bộ chuyển đổi A/D, ngõ vào 5. Được
nối nối tiếp với ngõ vào tương tự.
P3.0
đến
P3.31
89-87,81,80,74-
71,66-
62,56,55,53,48-
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
Dương Huỳnh Bảo_DD04KSTN
P3.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
P3.24 36 O
CS3: Chân Chip Select 3 tác động mức thấp
(Bank 3 địa chỉ trong khoảng 8300 0000 –
83FF FFFF)
P3.25 35 O
CS2: Chân Chip Select 2 tác động mức thấp
(Bank 2 địa chỉ trong khoảng 8200 0000 –
82FF FFFF)
P3.26 30 O
CS1: Chân Chip Select 1 tác động mức thấp
(Bank 1 địa chỉ trong khoảng 8100 0000 –
81FF FFFF)
P3.27 29 O WE: chân cho phép ghi tác động mức thấp
P3.28 28
O
I
BLS3: chân chọn Byte Lane tác động mức
thấp (Bank3)
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ự.
P3.29 27
O
I
BLS2: chân chọn Byte Lane tác động mức
thấp (Bank2)
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)
22 NC: để trống
135 I RESET\: ngõ vào Reset ngoài
142 I XTAL1: ngõ vào bộ dao động
141 O XTAL2: ngõ ra bộ dao động
3,9,26,38,54,67,
79,93,103,107
,111,128
I Vss: Ground 0V
139 I Vssa: Analog Ground:0V dùng để giảm nhiễu
138 I Vssa_pll: PLL Analog Ground:0V dùng để
giảm nhiễu
37,110 I
V18: Nguồn cung cấp 1.8V.cho các mạch bên
trong.
143 I
V18A: Nguồn analog 1.8V dùng để giảm
nhiễu
2,31,39,51,57,77
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
§
Dương Huỳnh Bảo_DD04KSTN
B. Khối điều khiển hệ thống:
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:
Tinh thể dao động.
Ngõ vào ngắt ngoài.
Điều khiển định vùng bộ nhớ.
PLL (vòng khóa pha)
Điều khiển nguồn.
Reset.
Phân chia bus ngoại vi VPB.
Đồng hồ wake up hệ thống.
2. Các chân chức năng:
Tên Hướng
truyền Chức năng
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
-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:
Tên Chức năng Hướng truy cập Giá trị Reset1 Địa chỉ
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ữ
Dương Huỳnh Bảo_DD04KSTN
PCONP Đ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.
Địa chỉ Tên Chức năng Hướng truy cập
Dương Huỳnh Bảo_DD04KSTN
0xE01FC140 EXTINT
Thanh ghi cờ ngắt ngoài chứa các cờ ngắt ngoài cho EINT0, EINT1, và
EINT2. Xem bảng 12. Đọc/ghi
0xE01FC144 EXTWAKE
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
trong chế độ Power down. Xem bảng 13
Đọc/ghi
0xE01FC148 EXTMODE Thanh ghi chọn chế độ ngắt ngoài là mức hay cạnh. Đọc/ghi
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
hay mức. Đọc/ghi
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.
EXTINT Chức năng Chú thích Giá trị
RESET
0 EINT0
+Ngắt mức: EINT0=1 nếu chức năng EINT0 được chọn và chân tương ứng
của nó lên mức tích cực (P0.1 và P0.16).
+Ngắt cạnh: EINT0=1 nếu chức năng EINT0 được chọn và chân chức năng
của nó chuyển mức (cạnh lên hoặc cạnh xuống)
+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
1 EINT1 Như trên, với chân chức năng tương ứng là P0.3 và P0.14 0
2 EINT2 Như trên, với chân chức năng tương ứng là P0.7 và P0.15 0
3 EINT3 Như trên, với chân chức năng tương ứng là P0.9, P0.20 và P0.30 0
7:4 Dự trữ Các bit dự trữ, chưa được định nghĩa. NA
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 ngoài(EXTWAKEUP-
0xE01FC144):
EXTWAKE Chức năng Diễn giải Giá trị
Reset
0 EXTWAKE0 EXTWAKE0=1, xảy ra ngắt EINT0 sẽ wake up vi xử lý từ chế độ Power Down 0
1 EXTWAKE1 Tương tự với EINT1 0
2 EXTWAKE2 Tương tự với EINT2 0
3 EXTWAKE3 Tương tự với EINT3 0
7:4 Dự trữ Dự trữ, chưa định nghĩa, không được dùng NA
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.
EXTMODE Chức năng Chú thích Giá trị Reset
Dương Huỳnh Bảo_DD04KSTN
0 EXTMODE0
EXTMODE0 =0, ngắt mức được chọn trên EINT0.
EXTMODE0=1, Ngắt cạnh được chọn trên EINT0 0
1 EXTMODE1 Tương tự với EXTMODE1 và EINT1 0
2 EXTMODE2 Tương tự với EXTMODE2 và EINT2 0
3 EXTMODE3 Tương tự với EXTMODE3 và EINT3 0
7:4 Dự trữ Dự trữ, chưa định nghĩa, không được dùng NA
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.
EXTPOLAR Chức năng Diễn giải Giá trị khi Reset
0 EXTPOLAR0
+EXTPOLAR0=0, EINT0 xảy ra ngắt khi ở mức thấp hoặc tác
động cạnh xuống. (Được định nghĩa bởi EXTMODE0).
+EXTPOLAR0=1, EINT0 xảy ra ngắt khi ở mức cao hoặc tác
động cạnh lên. (Được định nghĩa bởi EXTMODE0).
0
1 EXTPOLAR1 Tương tự với EXTPOLAR1 và EXTMODE1. 0
2 EXTPOLAR2 Tương tự với EXTPOLAR2 và EXTMODE2. 0
3 EXTPOLAR3 Tương tự với EXTPOLAR3 và EXTMODE3. 0
7:4 Dự trữ Dự trữ, chưa định nghĩa, không được dùng NA
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,
chân sử dụng sẽ là GPIO 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)
Dương Huỳnh Bảo_DD04KSTN
Hì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
động sai.
Địa chỉ Tên gọi Chức năng Truy cập
0xE01FC080 PLLCON
Thanh ghi điều khiển PLL. Thanh ghi này giữ giá trị để cập nhật các bit điều
khiển PLL. 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
0xE01FC084 PLLCFG
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
Dương Huỳnh Bảo_DD04KSTN
đượ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 đó.
0xE01FC08C PLLFEED
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)>
PLLCON Chân chức năng Diễn tả chức năng Giá trị Reset
0 PLLE
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
1 PLLC
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
0
7:2 Dự trữ Dự trữ, không được sử dụng. NA
Bảng 9: Thanh ghi điều khiển PLL(PLLCON - 0xE01FC080)
Dương Huỳnh Bảo_DD04KSTN
PLL 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ệ
PLLCFG Tên chức năng Chú thích chức năng Giá trị reset
4:0 MSEL4:0 Giá trị bộ nhân của PLL. Multiplier value. Đưa ra giá trị "M" ở phép tính
tần số PLL. 0
6:5 PSEL1:0 Giá trị bộ chia của PLL. Multiplier value. Đưa ra giá trị "P" ở phép tính
tần số PLL. 0
7 Dự trữ Dự trữ, không được sử dụng NA
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 năng Diễn giải chức năng
Giá trị
reset
4:0 MSEL4:0 Giá trị bộ nhân hiện tại của PLL. 0
6:5 PSEL1:0 Giá trị bộ chia hiện tại của PLL. 0
7 Dự trữ Dự trữ, không được sử dụng NA
8 PLLE
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
9 PLLC
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
10 PLOCK
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.
+PLOCK=’0’: PLL chưa hoạt động ổn định tại tần số mong muốn.
0
15:11 Dự trữ Dự trữ, không được sử dụng NA
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:
PLLC PLLE Chức năng PLL
0 0 Tắt PLL và không kết nối với nguồn. Hệ thống hoạt động nhờ ngõ vào xung nhịp cố định.
0 1
Mở PLL nhưng chưa chắc đã kết nối với nguồn. PLL có thể kết nôi sau khi PLOCK được xác
nhận.
1 0 Giống trường hợp ‘00’.
Dương Huỳnh Bảo_DD04KSTN
1 1 Cho phép và kết nối PLL với nguồn tạo dao động. MCU hoạt động nhờ ngõ ra xung nhịp của PLL.
Bảng 12: Kết hợp các bit điều khiển PLL
6.6. Thanh ghi cập nhật giá trị PLL liên tục (PLLFEED - 0xE01FC08C)
Giá trị cập nhật liên tục phải được ghi vào các thanh ghi PLLFEED nhằm mục đích các
thay đổi ở PLLCON và PLLCFG diễn ra, quá trình cập nhật giá trị ấy bao gồm:
1. PLLFEED=0xAA
2. PLLFEED=0x55
Phải thực hiện đúng trình tự cập nhật giá trị như trên, và phải trong các chu kì xung
nhịp liên tục. Điều cần lưu ý nữa là các ngắt trong quá trình cập nhật liên tiếp giá trị cho
PLL đều không được phép xảy ra. Nếu 1 trong 2 giá trị cập nhật là không đúng, hoặc 1
trong những lưu ý không được tuân thủ nghiêm ngặt, những thay đổi trên thanh ghi
PLLCON hoặc PLLCFG sẽ không có tác dụng.
PLLFEED Tên chức năng Diễn giải chức năng
Giá trị
Reset
7:0 PLLFEED
Quá trình cập nhật liên tục PLL phải được ghi vào thanh ghi này để sự
thay đổi cấu hình và điều khiển thanh ghi PLL có tác dụng.
Không xác
định
Bảng 13: Thanh ghi cập nhật giá trị PLL liên tục(PLLFEED - 0xE01FC08C)
6.7. PLL và chế độ Power Down:
Chế độ Power Down sẽ tự động tắt và không kết nối PLL. Wakeup từ Power
Down không tự động cập nhật lại các giá trị thiết đặt của PLL. Điều đó phải được làm
bằng chương trình phần mềm.Bởi vây, cần có chương trình gọi ngay PLL khi các ngắt
làm cho hệ thống WakeUp từ Power Down, lưu ý là không được dùng các thông số sẵn
có trên PLL trước khi vào Power Down, vì nó đã mất đi hoặc tùy định.
6.8. Tính toán tần số hoạt động của PLL:
Các thông số đáng chú ý:
v Fosc: Tần số dao động của tinh thể.
v Fcco: Tần số của máy dao động được điều khiển hiện tại.
v CCLK: ngõ ra PLL
v M: Hệ số nhân của PLL
v P: Hệ số chia của PLL.
Tần số ngõ ra PLL có thể tính từ công thức:
2
osc
osc
f
CCLK M f
P
= ´ =
Tần số CCO có thể tính nhờ công thức:
2 2cco oscf CCLK P P M f= ´ = ´ ´
• Fosc=[[10 MHz:25 MHz].
• CCLK=[10 MHz:Fmax] (tần số tối đa cho phép của LPC2214)
• Fcco =[156 MHz:320 MHz]
6.9. Thủ tục xác định cấu hình PLL:
Trong những ứng dụng cụ thể sử dụng PLL, nó được cấu hình như sau:
1. Chọn CCLK mong muốn.
2. Chọn Fosc.
3. Tính M từ công thức: M=CCLK/Fosc. M=[1:32]. Giá trị viết vào bit MSEL trên thanh ghi PLLCFG=M-
1.
4. Tính P từ công thức.
Dương Huỳnh Bảo_DD04KSTN
Các bit PSEL
PLLCFG[6:5] Giá trị của P
00 1
01 2
10 4
11 8
Bảng 14: Giá tri các hệ số chia của PLL
Các bit MSEL
CFG[4:0] Giá trị của M
00000 1
00001 2
00010 3
00011 4
... ...
11110 31
11111 32
Bảng 15: Các giá trị của bộ nhân PLL
Ví dụ về PLL: Hệ thống thiết kế có Fosc=10MHz và cần CCLK=60MHz.
Lời giải:
M=CCLK/Fosc=6àM-1=5àPLLCFG[4:0]=’00101’
P= Fcco / (CCLK×2), sử dụng điều kiện: Fcco=[156MHz:320MHz]
àP=[1.36:2.37]àP=2àPLLCFG[6:5] = ‘01’.
7. Điều khiển nguồn:
LPC2214 có 2 chế độ tiết kiệm nguồn: Idle và Power Down:
+Trong chế độ Idle, tất cả các chỉ lệnh đều trì hoãn tới khi quá trình Reset xảy ra,
ngoại vi vẫn hoạt động trong chế độ Idle và có thể sinh ra ngắt để đưa hệ thống trở lại
hoạt động bình thường.
+Trong chế độ Power Down, xung nhịp hệ thống không còn hoạt động, các chân
ngoại vi ở trạng thái tĩnh. Năng lượng tiêu thụ gần như bằng 0. Có thể phục hồi hệ thống
từ Power Down bằng cách Reset hoặc ngắt ngoài.
Chức năng điều khiển nguồn cho ngoại vi cho phép từng chân ngoại vi riêng biệt
hoạt động, hoặc không hoạt động, và hệ thống sẽ tiết kiệm năng lượng hơn nữa.
7.1. Diễn tả thanh ghi:
Địa chỉ Tên chức năng Diễn tả chức năng Truy cập
0xE01FC0C0 PCON
Thanh ghi điều khiển nguồn. Thanh ghi này chứa các bit điều khiển
để vận hành 1 trong 2 chế độ Power down hoặc Idle. Đọc/Ghi
0xE01FC0C4 PCONP
Thanh ghi điều khiển nguồn cho ngoại vi. Thanh ghi này chứa các bit
điều khiển để cho phép/không cho phép từng chức năng riêng biệt
của ngoại vi.
Đọc/Ghi
Bảng 16: Các thanh ghi điều khiển nguồn
7.2. Thanh ghi điều khiển nguồn (PCON-0xE01FC0C0):
Thanh ghi này chứa 2 bit: IDL và PD. Chi tiết xem bảng dưới đây:
PCON
Tên chức
năng Diễn tả chức năng
Giá trị
Reset
0 IDL Chế độ Idle. Khi IDL=’1’, một số chân ngoại vi vẫn còn hoạt động, nguồn ngắt ngoài
hoặc Reset ngoài được sử dụng để phục hồi lại trạng thái hoạt động. 0
1 PD
Chế độ Power Down. Khi PD=’1’ sẽ làm cho tất cả các dao động trong chip dừng
hẳn, điều khiển wakeup sẽ làm cho hệ thống khởi động lại, xóa PD và phục hồi các
lệnh.
0
7:2 Dự trữ Dự trữ, không được sử dụng NA
Bảng 17: Thanh ghi điều khiển nguồn PCON
7.3. Thanh ghi điều khiển nguồn cho ngoại vi(PCONP-0xE01FC0C4):
Dương Huỳnh Bảo_DD04KSTN
PCONP
Tên chức
năng Diễn tả chức năng
Giá trị
Reset
0 Dự trữ Dự trữ, không được sử dụng 0
1 PCTIM0 PCTIM0=’1’, TIMER0 được sử dụng-PCTIM0=’0’, không sử dụng TIMER0 1
2 PCTIM1 Tương tự với TIMER1 1
3 PCURT0 PCURT0=’1’, UART0 được sử dụng-PCURT0=’0’, không sử dụng UART0. 1
4 PCURT1 PCURT1=’1’, UART1 được sử dụng-PCURT1=’0’, không sử dụng UART1 1
5 PCPWM0 PCPWM0=’1’, PWM0 được sử dụng-PCPWM0=’0’, không sử dụng PWM0 1
6 Dự trữ Dự trữ, không được sử dụng 0
7 PCI2C PCI2C =’1’, giao tiếp I2C được sử dụng- PCI2C =’0’ không sử dụng giao tiếp I2C 1
8 PCSPI0 Tương tự với giao tiếp SPI0 1
9 PCRTC Tương tự với RTC 1
10 PCSPI1 Tương tự với giao tiếp SPI1 1
11 PCEMC Tương tự với EMC (điều khiển bộ nhớ ngoài 1
12 PCAD Tương tự với bộ biến đổi ADC 1
31:13 Dự trữ Dự trữ, không được sử dụng NA
Bảng 18: Thanh ghi điều khiển nguồn cho ngoại vi
8. Reset:
Có 2 nguồn tạo reset hệ thống: trên chân RESET và từ đồng hồ
Watchdog . Tín hiệu Reset hợp lý sẽ khởi động đồng hồ Wakeup Timer.
Với quá trình POR, chân Reset cần phải giữ mức trong vòng 10ms, với quá trình
Reset ngoài bình thường khi MCU đang hoạt động, chỉ cần 300ns.
Sau quá trình Reset, vi xử lý bắt đầu thực thi lệnh tại vùng địa chỉ 0x0000 0000.
Vector ngắt được định vùng địa chỉ ở khối Boot, giá trị của các thanh ghi được khởi tạo ở
những giá trị định nghĩa trước.
Quá trình Reset ngoài và reset trong có chút ít khác biệt, đó là
do thời điểm Reset ngoài ta hoàn toàn biết được, còn Reset trong ta không biết khi nào thì
nó xảy ra. Bởi vậy, với quá trình Reset ngoài, ta có thể chủ động đưa nó vào các chế độ
hoạt động mong muốn bằng cách kết nối ngoại vi, và phần mềm.
Hình 7: Giản đồ khối reset bao gồm cả đồng hồ Wakeup
9. Bộ chia VPB:
Dương Huỳnh Bảo_DD04KSTN
Bộ chia VPB cho biết mối quan hệ giữa xung nhịp hệ thống (CCLK) và xung nhịp
của ngoại vi (PCLK). Bộ chia VPB có 2 nhiệm vụ:
Ngoại vi có thể hoạt động với một tần số thích hợp mong muốn theo CCLK.(1/4,
1/2)
Bộ chia VPB cho phép tiết kiệm nguồn khi ứng dụng không đòi hỏi các ngoại vi
phải hoạt động ở tần số của vi xử lý.
Vì bộ chia VPB nối kết với ngõ ra PLL nên nó vẫn hoạt động ở chế độ Idle.
9.1. Thanh ghi của bộ chia VPB (VPBDIV - 0xE01FC100):
Địa chỉ Tên Chức năng Truy cập
0xE01FC100 VPBDIV Điều khiển tốc độ tương đối của xung nhịp VPB so với xung nhịp vi xử lý. Đọc/Ghi
Bảng 19: Thanh ghi VPBDIV
VPBDIV Tên chức năng Diễn tả chức năng
Giá trị
Reset
1:0 VPBDIV
VPBDIV [1:0]=’00’àTốc độ xung nhịp VPB=1/4 xung nhịp hệ thống.
VPBDIV [1:0]=’01’à Tốc độ xung nhịp VPB= xung nhịp hệ thống.
VPBDIV [1:0]=’10’à Tốc độ xung nhịp VPB= ½ xung nhịp hệ thống.
VPBDIV [1:0]=’11’à Không được định nghĩa. Nếu ghi giá trị này vào 2 bit
tương ứng, nó không có tác dụng, và giá trị trước được sử dụng.
0
3:2 Dự trữ Dự trữ, không được sử dụng 0
5:4 XCLKDIV
Điều khiển xung nhịp có thể được lấy ra chân A23/XCLK. Nó có giá trị
giống như 2 bit VPBDIV. Phải chọn chân A23 là ngõ ra xung nhịp, định
nghĩa chức năng ở thanh ghi PINSEL2
7:6 Dự trữ Dự trữ, không được sử dụng 0
Bảng 20: Thanh ghi bộ chia VPB (VPBDIV - 0xE01FC100)
Hình 8: Kết nối của bộ chia VPB với PLL
10. Wakeup Timer:
Nhiệm vụ của đồng hồ Wake-up là đảm bảo rằng nguồn dao động và các chức
năng analog đã hoạt động đầy đủ trước khi cho phép vi xử lý bắt đầu thực thi các chỉ lệnh
chương trình.
Đồng hồ Wake-up kiểm soát hoạt động của tinh thể dao động, nghĩa là điều kiện
an toàn đủ cho code chương trình bắt đầu thực thi. Khi nguồn cung cấp vào chip, hoặc
làm cho chip hoạt động lại từ chế độ Power down, đồng hồ wakeup kiểm tra xem khi nào
tinh thể dao động bắt đầu có chu kì xung nhịp hoạt động ổn định, khi đó, nó đếm thêm
4096 chu kì xung nhịp nữa và bắt đầu khởi tạo bộ nhớ Flash, khởi tạo xong, nó bắt đầu
cho phép chương trình mã nguồnhoạt động <nếu như chân Reset ngoài không còn tích
cực>
LPC2214 không có các chức năng analog (như so sánh) nên tất cả các hoạt động
đều cần đến xung nhịp đồng bộ, tuy nhiên, các chân ngắt ngoài có thể đảm nhận chức
năng Wake-up lại hệ thống từ Power-down.
Dương Huỳnh Bảo_DD04KSTN
và thật sự, các ngắt này chỉ thực thi sau khi Wake-up hệ thống thành công <các ngắt được
giữ lại trong vector điều khiển ngắt-VIC> Tương tự, các chức năng ngoại vi khác như
I2C, SPI, UART cũng có khả năng wake-up hệ thống từ Power-down.
C. Bộ điều khiển vector ngắt(VIC):
1. Chức năng:
Bộ điều khiển vector ngắt ARM PrimeCell™
32 nguồn ngắt
16 vector yêu cầu ngắt
16 mức ưu tiên ngắt
Tạo ngắt phần mềm.
2. Diễn giải:
Bộ điều khiển vector ngắt (VIC) có 32 nguồn ngắt, thuộc 3 loại: FIQ, yêu cầu
ngắt (IRQ) có vector, yêu cầu ngắt (IRQ) không có vector:
v FIQ: Yêu cầu ngắt nhanh có mức ưu tiên cao nhất, nếu có nhiều hơn 1 yêu cầu
FIQ, phép OR VIC
Sẽ đề cập chi tiết hơn ở phần tìm hiểu và sử dụng các chức năng của ARM7
LPC2xxx
Bộ điều khiển vector ngắt (VIC) có 32 nguồn ngắt, thuộc 3 loại: FIQ, yêu cầu
ngắt (IRQ) có vector, yêu cầu ngắt (IRQ) không có vector:
v FIQ: Yêu cầu ngắt nhanh có mức ưu tiên cao nhất, nếu có nhiều hơn 1 yêu cầu
FIQ, phép OR VIC
3. Các thanh ghi điều khiển ngắt:
STT Loại Mô tả
1 VICIRQStatus Đọc về trạng thái của những yêu cầu ngắt IRQ đã được cho phép hoạt động
2 VICFIQStatus
Đọc về trạng thái của những yêu cầu ngắt FIQ đã
được cho phép hoạt động
3 VICRawIntr Đọc về trạng thái của 32 yêu cầu ngắt bất chấp
nó đã được cho phép hoạt động hay chưa
4 VICIntSelect
Chọn nguồn ngắt đã được cho phép là IRQ hay
FIQ.Ghi 1 vào các bit tương ứng với 32 nguồn
ngắt sẽ thiết lập ngắt đó là FIQ.Ghi 0 là IRQ.Mặc
định IRQ
5 VICEnable
Các bit trong thanh ghi này tương ứng với từng
nguồn ngắt trong 32 nguồn ngắt. Muốn ngắt nào
được cho phép hoạt động thì ghi 1 vào bit đó.Ghi
0 không có hiệu lực
6 VICEnClr
Cho phep xóa bit 1 hay nhiều bit trong
VICEnable để không cho phép ngắt đó haot5
động
7 VICSoftInt
Nếu bit tương ứng được ghi 1 thi ép ngắt đó xảy
ra
8 VICSoftIntClear Cho phép phần mềm xóa các ngắt tương ứng ơ
VICSoftInt
Dương Huỳnh Bảo_DD04KSTN
9 VICProtection
Hạn ché lại phạm vi cho phep phần mểm có thể
truy suất các thanh ghi VIC
10 VICVectAddr Chứa địa chỉ của chương trình phụ vụ ngắt IRQ để PC có thể nhay tới khi ngắt xảy ra
11 VICDefVectAddr
Giữ dịa chỉ của chương trình phục vụ ngắt(ISR)
của non_vectorIRQ
11 VICVectAddr0 tới 15 Giữ địa chỉ của ISR của ngắt IRQ
12 VICVectCntl0 tới 15
Điều khiển tương ứng mỗi một VICVectAddr
thứ i nào đó chưa ISR phục vụ cho nguồn ngắt
nào trong 16 nguồn ngắt IRQ
4. Các bươc thực hiện 1 chương trình ngắt:
4.1 Đối với ngắt FIQ:
Nó có độ ưu tiên cao nhất .Theo khuyến cáo thì trong chương trình chỉ nên có 1
nguồn ngắt FIQ được yêu cầu. Trong chương trình Keil CARM thì chỉ khai báo 1
nguồn ngắt FIQ .Nhưng nếu có hơn 1 ngắt FIQ thì ARM thực hiện phép ORED. Và
để biết được nguồn ngắt nào bị tác động thì trong FIQ ISR ta đọc VICFIQStatus.
vi dụ Keil C :
…………………..
Void ham_ngat(void)__fiq;
…………
main()
{……
VICIntSelect=0x…..//chọn nguồn ngắt là FIQ nếu bit tương ứng =1
//nếu không tác động thì default la IRQ va non IRQ
VICIntEnable=0x…//bit tương ứng với nguồn ngắt =1 thi cho phép nó enable
…
}
Void ham_ngat(void)__fiq
{
Kiểm tra FIQVICStatus xem ngắt nào được thực thi, và thực thi nhiệm vụ của ngắt đó
}
4.2 Đối với ngắt IRQ :
Ngắt vecto có độ ưu tiên nhỏ hơn ngắt FIQ.Và nếu cùng loại ngắt IRQ thì nó cũng có
độ ưu tiên khác nhau tùy theo địa chỉ mà chương trình phục vụ ngắt đó chiếm trong
dải các thanh ghi VICVecAddrx(x=0..15) mà có độ ưu tiên thấp dần từ x= 0->15
Các bước thực hiện chương trình bằng KEIL C
…………………..
Void ham_ngat1(void)__irq;
Void ham_ngat2(void)__irq; //nếu chuong trình sử dụng nhiều ngắt Irq
……
main()
{……
VICIntSelect=0x…..//chọn nguồn ngắt là FIQ nếu bit tương ứng =1
//nếu không tác động thì default la IRQ va non IRQ
Dương Huỳnh Bảo_DD04KSTN
//để chon là IRQ thì nó phải bằng 0
VICVectCtrlx=0x…. ;
//kiểm soát slot thứ x ưng với VICVectAddrx , 4 bit đầu của thanh ghi này tương ứng
với số thứ tự nguồn ngắt(VIC chanel#).Nó dùng để chọn nguồn ngắt nào được phục
vụ bởi chương trình ISR có địa chỉ chứa trong VICVectAddrx. Bit thứ 5 Enable Slot
thứ x nếu =1
VICVectAddrx= (unsigned)ham_ngatx;
VICIntEnable=0x…//bit tương ứng với nguồn ngắt =1 thi cho phép nó enable
…
}
Void ham_ngat1(void)_irq
Dương Huỳnh Bảo_DD04KSTN
Void ham_ngat2(void)_irq
4.3 Đối với ngắt non IRQ :
Ngắt này có độ ưu tiên thấp nhất.Trong chương trình chỉ khai báo 1 trình phục vụ
ngắt cho non IRQ(giống ngắt FIQ). Rồi sau đó trong ISR tiến hành kiểm tra xem
nguồn ngắt nào được thực hiện bằng VICIRQstatus.
Các bước thực hiện chương trình Keil C
Void ham_ngat(void)_irq; //chi có 1 ngắt non IRQ
Main()
{
…
VICIntSelect =0x..//(bit tuong ung phai la 0 để là non IRQ)
VICDefVectAddr=(unsigned) ham_ngat;
VICIntEanble=0x.. ;//cho phep ngat tuong ung
}
Void ham_ngat(void)_irq
{Kiểm tra nguồn ngắt nào được thực hiện bằng VICIRQstatus.
Chương trình phục vụ ngắt tương ứng
}
Chú ý:
Các việc cần làm trước khi rời khỏi ISR
Xóa cờ ngắt tương ứng với nguồn ngắt được thự thi;
VICVectAddr=0;
D. Sử dụng các thanh ghi xuất nhập đa dụng: (GPIO):
Đa số các chân mặc định là GPIO sau khi reset.Khi sử dụng chức năng này ta có thể xuất
nhập dữ liệu số , để điều khiển các ngoại vi như động cơ, led,hay button….
Các thanh ghi:
Slow GPIO register
STT Loại Mô tả
1 IODIR0 va IODIR1
Chọn hướng xuất nhập cho từng PIN của PORT0
và PORT1 ứng với từng bit : nbit=1 output pin,
nbit=0 input Pin
2 IOCLR0 và IOCLR1 Đưa Pin tuong ưng với bit =1 trong thanh ghi này
xuống mức thấp khi đã thiết lập là Output pin
3 IOSET0 và IOSET1
Đưa Pin tuong ưng với bit =1 trong thanh ghi này
lên mức cao khi đã thiết lập là Output pin
4 IOPIN0 và IOPIN1 Xuất /nhập nguyên 1 word ra PORT0 or PORT1
Tương tự đối với Fast GPIO:
STT Loại Mô tả
1 FIODIR0 vaF IODIR1
Chọn hướng xuất nhập cho từng PIN của PORT0
và PORT1 ứng với từng bit : nbit=1 output pin,
nbit=0 input Pin
2 FIOCLR0 và Đưa Pin tuong ưng với bit =1 trong thanh ghi này
Dương Huỳnh Bảo_DD04KSTN
FIOCLR1 xuống mức thấp khi đã thiết lập là Output pin
3 FIOSET0 và
FIOSET1
Đưa Pin tuong ưng với bit =1 trong thanh ghi này
lên mức cao khi đã thiết lập là Output pin
4 FIOPIN0 và FIOPIN1 Xuất /nhập nguyên 1 word ra PORT0 or PORT1
E. Sử dụng ADC
Khác với LPC2148 (có 2 bộ ADC mỗi bộ có 8 kênh làm việc độc lập) ,LPC2214 có 8
kênh ADC chỉ có thể cho phep từng kênh một khi hoạt động.
Các đặc điểm chính:
ARM LPC của Philipps 10 bit và thời gian chuyển đối có thể đạt tới 2.44us
Tầm đo từ 0->3V
Xung CLK có thể đạt tới 4.5Mhz
Các thanh ghi chức năng cơ bản:
STT Tên Mô tả
1 ADCR Chọn chế độ hoạt động cho ADC trước khi ADC
bắt đầu chuyển đổi
2 ADDR Chứa kết quả chuyển đổi ADC
Các bit cụ thể trong thanh ghi
Thanh ghi ADCR
Bit Tên Mô tả
7:0 SEL Chọn kênh cho ADC
15:8 CLKDIV Chia xung PCLK/( CLKDIV+1) làm xung CLK cho ADC
16 BURST START =000 khi BURST=1 nếu không thì ADC không hoạt động
19:17
CLKS
000
001
010
011
100
101
110
111
Chọn xung số xung CLK ứng với số bit chuyển đổi
11 clock/10bit chuyển đổi
10 clock/9bit chuyển đổi
9 clock/8bit chuyển đổi
8 clock/7bit chuyển đổi
7 clock/6bit chuyển đổi
6 clock/5bit chuyển đổi
5 clock/4bit chuyển đổi
4 clock/3bit chuyển đổi
21 PDN
=1:ADC done
=0 :ADC không hoạt động
23:22 TEST1:0
những bit này được sử dụng để chọn ở chế độ test hoạt
động 00=normal operation, 01=digital test mode,
10=DACest mode, and 11=simple conversion test mode.
26:24
START
000
001
Không start
Bắt đầu chuyển đổi
Dương Huỳnh Bảo_DD04KSTN
010
011
100
101
110
111
Bắt đầu chuyển đổi khi có tác động cạnh bit 27 on
P0.16/EINT0/MAT0.2/CAP0.2
Bắt đầu chuyển đổi khi có tác động cạnh bit 27 on
P0.22/CAP0.0/MAT0.0
Bắt đầu chuyển đổi khi có tác động cạnh bit 27 on MAT0.1
Bắt đầu chuyển đổi khi có tác động cạnh bit 27 on MAT0.3
Bắt đầu chuyển đổi khi có tác động cạnh bit 27 on MAT1.0
Bắt đầu chuyển đổi khi có tác động cạnh bit 27 on MAT1.1
27 EDGE
Chọn tác động cạnh lên hay canh xuống ở mỗi tác động
trên:=0 cạnh lên ;=1 canh xuống
Thanh ghi ADDR
Bit Tên Mô tả
5:0 Luôn luôn được đọc là zero(dự trữ)
15:6 V/V3A Chứa Data chuyển đổi dùng đọc kết quả chuyển đổi
23:16 Những bit này luôn được đọc là zero
26:24 CHN Chứa số thứ tự của kênh ADC vừa hoàn thành chuyển đổi
29:27 Những bit này luôn được đọc là zero
30 OVERUN
Bit này 1 trong BURST mode khi mà có nhiều hơn 1 kết
quả ADC chuyển đổi hoàn thành và ghi chồng lên kết quả
trước đó gây mất dữ liệu lần chuyển đổi trước
31 DONE
Báo hiệu hoàn thành 1 lần chuyển đổi bit này tự động xóa
khi đọc ADDR
F. UART0 và UART1:
F.1Chức năng:
Thu phát 16 bit FIFOs.
Vùng thanh ghi hợp chuẩn công nghiệp 550
Nhận điểm ngắt FIFO tại 1,4,8 và 14 bytes
Tích hợp sẵn bộ sinh tốc độ Baud.
F.2Diễn tả các chân chức năng:
Tên chân Hướng truyền Chức năng
RxD0 Vào Serial Input. Nhận dữ liệu nối tiếp.
TxD0 Ra Serial Output. Truyền dữ liệu nối tiếp.
F.3Diễn tả các thanh ghi chức năng:
UART0 có 10 thanh ghi chức năng 8 bit.
F.3.1Thanh ghi đệm truyền thu :
U0RBR là byte trên cùng của UART0 Rx FIFO, byte này chứa các kí tự truyền
nhận sau cùng và có thể đọc được nhờ bus giao tiếp. Bit 0 (LSB) là bit cuối cùng của dữ
Dương Huỳnh Bảo_DD04KSTN
liệu nhận, nếu kí tự truyền nhận ít hơn 8 bit, các bit cao của thanh ghi này sẽ tự cập nhật
giá trị ‘0’
Bit DLAB(Divisor Latch Access Bit) trong thanh ghi U0LCR phải bằng 0 để có thể
truy cập U0RBR. Thanh ghi đệm của truyền thu là thanh ghi chỉ đọc.
U0RBR Chức năng Giải thích chức năng Giá trị
Reset
7:0
Thanh ghi đệm
truyền thu
Thanh ghi đệm truyền thu chứa byte thu nhận sau nhất của UART0 Rx
FIFO
Không biết
F.3.2Thanh ghi giữ giá trị truyền phát:
Thanh ghi U0THR là thanh ghi chứa byte trên cùng của UART Tx FIFO. Thanh
ghi này chứa kí tự gần nhất của quá trình truyền phát FIFO, có thể ghi giá trị vào thanh
ghi này thông qua giao tiếp bus. Bit LSB là bit đầu tiên sẽ được truyền phát.
Bit DLAB trong thanh ghi U0LCR phải bằng 0 để có thể truy cập U0THR. Thanh
ghi đệm của truyền thu là thanh ghi chỉ được phép ghi.
U0THR Chức năng Giải thích chức năng Giá trị Reset
7:0
Thanh ghi giữ giá
trị truyền phát
Ghi giá trị vào thanh ghi giữ giá trị truyền thu UART0 thì byte đó sẽ
được xếp sau cùng vào FIFO. N/A
+Thanh ghi UART0 Divisor Latch LSB (U0DLL - 0xE000C000) truy cập được
khi DLAB = 1.
+Thanh ghi UART0 Divisor Latch MSB (U0DLM - 0xE000C004) truy cập được
khi DLAB = 1.
+UART0 Divisor Latch là số chia của bộ tạo tốc độ Baud và giá trị của nó được
dùng để chia xung clock VPB (PCLK-Xung nhịp hoạt động của ngoại vi) thành tốc độ
baud, tốc độ xung nhịp ngoại vi bằng 16x tốc độ baud mong muốn. Hai thanh ghi
U0DLL và U0DLM lập thành số chia 16 bit, U0DLL chứa 8 bit thấp và U0DLM chứa 8
bit cao. Giá trị U0DLM-U0DLL = 0x0000 được xem như 0x0001 <vì giá trị chia cho 0
không tồn tại> Bit DLAB=1 để có thể truy cập UART0 Divisor Latches.
U0DLL Chức năng Giá trị Reset
7:0 Byte thấp của bộ chia sinh tốc độ baud 0x01
Bảng 21: Byte thấp bộ chia sinh tốc độ baud cho UART0 (U0DLL-0xE000C000 khi DLAB=1)
U0DLM Chức năng Giá trị Reset
7:0 Byte cao của bộ chia sinh tốc độ baud 0x00
Nói một cách vắn tắt, để thiết lập tốc độ baud mới, phải cho bit DLAB=’1’,truy
cập các thanh ghi U0DLM- U0DLL, khi cho DLAB=’0’, khởi tạo bộ tạo tốc độ Baud. Và
lúc đó, mới có thể truy cập các giá trị từ bộ đêm thu hoặc bộ giữ phát của UART0.
F.3.3Thanh ghi cho phép ngắt truyền thông nối tiếp :
Thanh ghi U0IER được dùng để cho phép các ngắt của UART0(4 nguồn ngắt).
U0IER Chức năng Diễn giải các chức năng Giá trị Reset
0
Cho phép ngắt
RBR
o U0IER[0] = ’0’: Không cho phép ngắt RDA.
o U0IER[0] = ’1’: Cho phép ngắt RDA
Bit này cũng điều khiển ngắt do thời gian chờ truyền nhận kí tự bị Time-out.
0
Dương Huỳnh Bảo_DD04KSTN
1
Cho phép ngắt
THRE
o U0IER[1] = ’0’: Không cho phép ngắt THRE.
o U0IER[1] = ’1’: Cho phép ngắt THRE
Trạng thái của bit ngắt này có thể được đọc từ thanh ghi U0LSR[5].
0
2
Cho phép ngắt
từ đường
trạng thái Rx
o U0IER[2] = ’0’: Không cho phép ngắt trạng thái đường Rx
o U0IER[2] = ’1’: Cho phép ngắt trạng thái đường Rx bị lỗi.
Trạng thái của bit ngắt này có thể được đọc từ thanh ghi U0LSR[4:1]
0
7:3 Dự trữ Dự trữ, không được sử dụng NA
F.3.4Thanh ghi nhận dạng ngắt truyền thông nối tiếp:
U0IIR Chức năng Diễn giải các chức năng Giá trị Reset
0 Chờ ngắt
o U0IIR[0] = ’0’: Có ít nhât 1 ngắt đang chờ
o U0IIR[0] = ’1’: không có ngắt nào đang chờ
Lưu ý rằng U0IIR0 tích cực ở mức thấp. Các trạng thái ngắt có thể được
diễn tả bởi các giá trị trong 3 bit trạng thái U0IER3:1.
1
3:1 Nhận dạng ngắt
o U0IIR[3:1] = ’011’: Có ngắt do trạng thái đường truyền UART lên
mức tích cực(RLS).
o U0IIR[3:1] = ’010’ 2a: Báo hiệu dữ liệu nhận sẵn sàng
o U0IIR[3:1] = ’110’ 2b: Báo hiệu thời gian chờ truyền nhận kí tự bị
Time-out. (CTI)
o U0IIR[3:1] =’001’ 3: Ngắt THRE
o Các tổ hợp bit khác đều không hợp lệ.
U0IER[3:1] nhận dạng ngắt đáp ứng với UART0 Rx FIFO.
0
5:4 Dự trữ Dự trữ, không được sử dụng NA
7:6 Cho phép FIFO 2 bit này tương đương với U0FCR0. 0
Các thường trình ngắt được đề cập ở bảng sau. Biết các giá trị của U0IIR[3:0],
thường trình ngắt có thể biết nguồn sinh ngắt và cách để xóa ngắt đó. Thanh ghi U0IIR
phải được đọc để xóa các ngắt ưu tiên và thoát khỏi thường trình ngắt.
Ngắt do đường truyền nhận UART bị lỗi là ngắt có độ ưu tiên cao nhất và nó có
thể tích cực khi 1 trong 4 nguyên nhân gây lỗi Rx xuất hiện: lỗi tràn(OE), sai parity(PE),
sai framing(FE) và break interrupt (BI). Điều kiện gây lỗi UART0 Rx tạo ngắt có thể
được biết nhờ tổ hợp bit U0LSR[4:1]. Thường trình ngắt sẽ xóa các bit này ngay sau khi
đọc U0LSR.
Ngắt RDA (U0IIR3:1=010) cùng mức ưu tiên (mức 2) với ngắt
CTI(U0IIR3:1=110).
Ngắt RDA tích cực khi UART Rx FIFO bằng mức kích định nghĩa bởi
U0FCR[7:6] và nó được xóa nhờ UART0 Rx FIFO xuống thấp hơn mức kích. Khi ngắt
này tích cực, CPU có thể đọc khối dữ liệu được định nghĩa bởi mức kích.
Ngắt CTI tích cực khi khi UART0 Rx FIFO chứa ít nhất 1 kí tự và không có
UART0 Rx FIFO tích cực xuất hiện trong khoảng thời gian truyền 3.5 đến 4.5 kí tự.
Nguồn ngắt UART0 Rx FIFO tích cực (đọc hoặc ghi UART0 RSR) sẽ xóa ngắt này.
Thường trình phục vụ ngắt UART0 RBR sẽ hoàn tất khi dữ liệu truyền thông đã
được nhận mà không vi phạm các mức kích.
Ví dụ: Ngoại vi cần nhận 105 kí tự và mức kích ở 10 kí tự, CPU sẽ nhận được 10
ngắt RDA (tức là 100 kí tự) còn lại 5 kí tự chưa được nhận, sẽ sinh ra ngắt CTI, và mức
kích cần phải điều chỉnh (ở 1 đến 5 kí tự) để hoàn tất quá trình truyền nhận.
Dương Huỳnh Bảo_DD04KSTN
U0IIR[3:0]
Mức ưu
tiên
Loại ngắt Nguồn ngắt Điều kiện để xóa
ngắt
0001 - không không -
0110 Cao nhất Lỗi trên đường
truyền nhận Rx OE hoặc PE hoặc FE hoặc BI U0LSR được đọc
0100 Mức 2 Dữ liệu Rx đã
sẵn sàng Dữ liệu Rx đã sẵn sàng hoặc (U0FCR0=1)
U0RBR được đọc
hoặc UART0 FIFO
xuống dưới mức kích
1100 Mức 2
Báo hiệu thời
hạn truyền nhận
bị Time-out
Thời gian Time-out = [(word length)x7 - 2]x8 +
{(mức kích – số kí tự)x8 + 1] RCLKs U0 RBR được đọc
0010 Mức 3 THRE THRE
U0IIR được đọc(nếu là
nguồn ngắt) hoặc ghi
vào THR
Các giá trị U0IIR[3:0] = {"0000", “0011”, “0101”, “0111”, “1000”, “1001”, “1010”, “1011”,”1101”,”1110”,”1111”} đều không
hợp lệ
Ngắt UART0 THRE(U0IIR3:1=001) có mức ưu tiên thứ 3 và được tích cực khi
UART0 THR FIFO được làm rỗng.
F.3.5 Thanh ghi điều khiển FIFO cho truyền thông nối tiếp:
Thanh ghi này điều khiển hoạt động của bộ FIFO Rx và Tx.
U0FCR Chức năng Giải thích Giá trị Reset
0
Cho phép
FIFO
Tích cực mức cao sẽ cho phép truy cập UART0 Rx, Tx FIFOs và
U0FCR[[7:1]. Bit này phải được cho bằng 1 để UART0 hoạt động đúng. Sự
chuyển đổi trên bit này sẽ tự động xóa bộ UART0 FIFOs.
0
1 Reset FIFO
Rx
Ghi mức 1vào bit U0FCR[1] sẽ xóa tất cả các byte hiện đang lưu trữ trên
UART0 Rx FIFO và Reset con trỏ về vị trí hợp lý. Bit này có thể tự xóa. 0
2 Reset FIFO Tx
Ghi mức 1vào bit U0FCR[2] sẽ xóa tất cả các byte hiện đang lưu trữ trên
UART0 Tx FIFO và Reset con trỏ về vị trí hợp lý. Bit này có thể tự xóa. 0
5:3 Dự trữ Dự trữ, không được sử dụng NA
7:6 Chọn mức
ngắt Rx
00: ngắt ở mức 0 (mặc định= truyền nhận 1 kí tự)
01: ngắt ở mức 1 (mặc định= truyền nhận 4 kí tự)
10: ngắt ở mức 2 (mặc định= truyền nhận 8 kí tự)
11: ngắt ở mức 3 (mặc định= truyền nhận 14 kí tự)
Tổ hợp 2 bit này cho biết có bao nhiêu kí tự được nhận từ UART FIFO sẽ
gây ngắt. 4 mức kích này có thể được định nghĩa bởi người lập trình tùy
vào số kí tự ở bộ FIFO.
0
F.3.6 Thanh ghi điều khiển đường truyền cho truyền thông nối tiếp<U0LCR -
0xE000C00C>:
Thanh ghi này cho biết dạng của kí tự dữ liệu truyền (phát hoặc nhận).
U0LCR Chức năng Giải thích Giá trị Reset
1:0 Lựa chọn
chiều dài từ
00: Kí tự dài 5 bit
01: Kí tự dài 6 bit
10: Kí tự dài 7 bit
11: Kí tự dài 8 bit
0
2
Chọn số Bit
dừng
0: 1 stop bit
1: 2 stop bits (1.5 nếu U0LCR[1:0]=00) 0
3 Parity Enable
0: không cho phép tạo và kiểm tra parity
1: cho phép tạo và kiểm tra parity 0
Dương Huỳnh Bảo_DD04KSTN
5:4 Chọn Parity
00: parity lẻ
01: parity chẵn
10: gán “1” là parity
11: gán “0” là parity
0
6 l
Break Control
0: Không cho phép dừng truyền dữ liệu
1: Cho phép dừng truyền dữ liệu
Ngõ ra của chân UART0 TxD sẽ bj gán = 0 khi U0LCR6 tích cực mức cao.
0
7
Divisor Latch
Access Bit
0: Không cho phép truy cập Divisor Latches
1: Cho phép truy cập Divisor Latches 0
F.3.7 Thanh ghi điều khiển trạng thái cho đường truyền cho truyền thông nối
tiếp:
Thanh ghi này cho biết trạng thái thông tin trên các khối UART0 Tx và Rx, thuộc
tính chỉ đọc.
U0LSR
Chức
năng Giải thích
Giá trị
Reset
0
Sẵn sàng
nhận dữ liệu
(RDR)
0: U0RBR rỗng.
1: U0RBR chứa các giá trị hợp lệ
U0LSR0=’1’ khi U0RBR giữ các kí tự không đọc được và được xóa khi UART0
RBR FIFO được làm rỗng.
0
1 Lỗi tràn (OE)
0: Không bị tràn.
1: bị tràn
Điều kiện lỗi tràn ngay lập tức sẽ đưa bit này lên tích cực, U0LSR được đọc sẽ
xóa U0LSR[1].
U0LSR[1]=’1’ khi UART0 RSR nhận được kí tự mới trong khi bộ UART0 RBR
FIFO đã đầy. Trong trương hợp này, UART0 RBR FIFO sẽ không ghi đè lên và
giá trị muốn vào UART0 RSR sẽ bị mất.
0
2 Kiểm tra lỗi
Parity(PE)
0: kiểm tra Parity không lỗi
1: kiểm tra Parity bị lỗi
Khi bit parity từ kí tự nhận được bị lỗi, sẽ xuất hiện lỗi parity,U0LSR đọc và xóa
U0LSR2.
0
3
Khung lỗi
(FE)
0: Không có lõi khung
1: Lỗi khung.
Khi bit dừng của kí tự truyền nhận=’0’. Lỗi khung xuất hiện.U0LSR đọc sẽ xóa bit
này.
0
4
Ngắt dừng
truyền thông
nối tiếp(BI)
0: Trạng thái dừng ngắt truyền thông không tích cực
1: Trạng thái dừng ngắt truyền thông tích cực
Khi RxD0 được giữ trong thời gian bằng 1 lần truyền kí tự (start, data, parity,
stop), trạng thái ngắt truyền thông nối tiếp lên mức tích cực. Khi bit này lên mức
tích cực, bộ nhận sẽ ở trạng thái rỗi (Idle). Bộ nhận sẽ bắt đầu hoạt động lại khi
nào tất cả các bit(start, data, parity, stop) lên 1. U0LSR đọc sẽ xóa bit này.
0
5
Thanh ghi
giữ giá trị
truyền phát
đã rỗng
(THRE)
0: U0THR chứa dữ liệu hợp lệ
1: U0THR rỗng.
THRE=’1’ ngay sau khi phát hiện UART0 THR rỗng và được xóa khi ghi dữ liệu
vào U0THR
1
6
Quá trình
truyền phát
là rỗng
(TEMT)
0: U0THR và/hoặc U0TSR chứa các dữ liệu hợp lệ
1: U0THR và U0TSR rỗng.
TEMT=’1’ khi cả U0THR và U0TSR đều rỗng. TEMT được xóa khi U0TSR hoặc
U0THR chứa các dữ liệu hợp lệ.
1
7
Lỗi do Rx
FIFO (RxFE)
0: U0RBR không có lỗi UART0 Rx hoặc U0FCR0=0.
1: UART0 RBR có ít nhất 1 lỗi UART0 Rx .
U0LSR[7]=’1’ khi kí tự với lỗi truyền nhận như lỗi khung, lỗi parity, hay ngắt dừng
truyền thông được load vào U0RBR. Bit này sẽ được xóa khi thanh ghi U0LSR
đọc và không có lỗi tương tự xuất hiện ở UART0 FIFO.
0
F.4 Kiến trúc của bộ truyền thông nối tiếp UART0:
Dương Huỳnh Bảo_DD04KSTN
Giao tiếp VPB cung cấp đường truyền thông giữa CPU hay host với UART0.
Khối thu UART0: U0Rx, quản lý đường vào nối tiếp, RxD0, cho tín hiệu vào hợp
lệ. thanh ghi dịch UART0 Rx (U0RSR) nhận các dữ liệu hợp lệ thông qua RxD0.
Dương Huỳnh Bảo_DD04KSTN
Sau khi các kí tự hợp lệ vào U0RSR, nó sẽ qua thanh ghi đệm UART0 Rx FIFO
và chờ CPU hay máy chủ truy cập thông qua giao tiếp chung.
Khối nhận UART0: U0Tx, cho phép dữ liệu từ CPU hay host được giữ ở bộ đệm
dữ liệu UART0 Tx FIFO (U0THR). Thanh ghi dịch UART0 Tx(U0TSR) đọc dữ
liệu chứa trong U0THR và tập hợp chúng để gởi qua chân TxD.
Khối sinh tốc độ Baud UART0: U0BRG, tạo thời gian cho phép sử dụng khối
UART0 Tx. Xung nhịp của U0BRG bắt nguồn từ xung nhịp của VPB(PCLK),
NBAUDOUT = PCCK/16x với x=[ U0DLM-U0DLL].
Giao diện ngắt bao gồm 2 thanh ghi U0IER và U0IIR.
Các file đính kèm theo tài liệu này:
- Đề tài tìm hiểu vi điều khiển arm7 lpc2214.pdf