Dương Huỳnh Bảo_DD04KSTN
BÁ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)
Bus mở rộng 8/16/32 bit.
ISP/IAP, thời gian ghi/xóa 1 dòng <512bytes> mất 1ms, thời gian để ghi/xóa cả
flash<256kB> mất 0.4s.
Hỗ trợ chạy mô phỏng thời gian thực ngay trên ứng dụng nhúng <EmbeddedICE-
RT>
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.
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:
Dương Huỳnh Bảo_DD04KSTN
Hì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
Ký
hiệu
Số thứ tự Loại Mô tả
P0.0
đến
P0.31
42, 49, 50, 58,59, 61,
O MAT0.0: ngõ ra của Timer 0, kênh 0
P0.3 58
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.
P0.4 59
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
P0.5 61
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 P0.6 68
I
CAP0.2: Ngõ vào capture của Timer 0, kênh
2
I
SSEL0: chọn lựa slave cho SPI0. Chọn lựa
cách giao tiếp với SPI như là slave.
O
PWM2: Ngõ ra thứ 2 của bộ điều chế độ rộng
xung.
P0.15 99
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
P0.16 100
I
CAP0.2: ngõ ra của capture của Timer 0 kênh
2
I
CAP1.2: ngõ ra của capture của Timer 1 kênh
2
I/O
SCK1: Serial Clock của SPI1. SPI clock ngõ
ra từ master hay ngõ vào của slave.
P0.17 101
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
P0.18 121
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
kênh 1
P0.27
23 O 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
P0.28 25
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
P0.29 32
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
P0.30 33
I EINT3 : ngõ vào ngắt ngoài 3
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
Dương Huỳnh Bảo_DD04KSTN
vào/ra chuẩn với điện trở kéo lên bên trong.
P1.24 70 O
TRACECLK Trace Clock. Port vào/ra chuẩn
với điện trở kéo lên bên trong.
P1.25 60 I
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.29 126 I TCK Test Clock của giao tiếp JTAG
P1.30 113 I TMS Test Mode Select của giao tiếp JTAG
P1.31 43 I TRST\ Test Reset của giao tiếp JTAG
P2.0
đến
P2.31
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ự.
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 –
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<System Control Block>:
1. Khái quát:
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ị Reset
1
Đị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
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
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