Tải bản đầy đủ (.doc) (89 trang)

nghiên cứu, mô phỏng hoạt động của timer, interrupt, adc, uarts, ssi, i2c, can trên vi điều khiển arm cortex-m3 lm3s8962 của hãng texas intstruments

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.91 MB, 89 trang )

Ha Noi university of industry FEE2-K2
BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA : ĐIỆN TỬ
NGHIÊN CỨU, MÔ PHỎNG HOẠT ĐỘNG CỦA TIMER,
INTERRUPT, ADC, UARTS, SSI, I2C, CAN TRÊN VI ĐIỀU KHIỂN
ARM CORTEX-M3 LM3S8962 CỦA HÃNG TEXAS INTSTRUMENTS
Giáo viên hướng dẫn: Phạm Văn Chiến
Sinh viên thực hiện: Nguyễn Văn Tấn
Trương Đình Hà
Lớp: ĐH CNKT ĐT2- K2
Hà Nội – 06/201
_________________________________________________________________________
Faculty of Electronics Engineering
Ha Noi university of industry FEE2-K2
Mục lục
Chương V. Giao diện liên vi mạch (I2C) 42
Chương VII : Bộ chuyển đổi tương tự - số (ADC) 69
7.4 Bản đồ thanh ghi 77
Chương VIII: UARTs 79
8.1 Sơ đồ khối 80
8.2 Mô tả chức năng 80
8.2.2 Tốc độ baud 81
_______________________________________________________________________
Faculty of Electronics Engineering
1
Ha Noi university of industry FEE2-K2
Lời mở đầu
Ngày nay, các dòng vi điều khiển ngày càng có vị trí quan trọng trong các lĩnh
vực điện tử, không khó để nhận ra rằng hầu hết trong các lĩnh vực đời sống có sự
tham gia của vi điều khiển. Có nhiều ho vi điều khiển để chúng ta nghiên cứu, tìm


hiểu và ứng dụng như: 8051, PIC, PSoc, AVR… Trong nhiều năm trước, các dòng
vi điều khiển 8051 được sinh viên sử dụng nhiều với tính năng đơn giản, dễ sử
dụng; AVR được sử dụng nhiều trong các cuộc thi Robocon nhờ tốc độ xử lý khá
cao, ổn định; PIC với ưu thế tốc độ cao, chi phí thấp hơn cũng được nghiên cứu, sử
dụng nhiều, đặc biệt là trong các cuộc thi lập trình tay nghề khu vực và thế giới…
Nhưng trong một vài năm trở lại đây, có một dòng vi điều khiển mới, càng ngày
càng nắm vị trí quan trọng trong các lĩnh vực đòi hỏi tốc độ xử lý cao như điện tử
viễn thông, giám sát, an ninh… Đó là họ vi điều khiển ARM. Với rất nhiều thế hệ
đã ra đời, với nhiều tính năng, công dụng khác nhau.
Tình hình nghiên cứu ở nước ngoài:
Chíp ARM được nghiên cứu phát triển và ứng dụng rất rộng rãi trong đo lường
và điều khiển. Đặc biệt chíp ARM được nghiên cứu ứng dụng để sản xuất các thiết
bị cầm tay như điện thoại, máy ảnh và các thiết bị đòi hỏi tốc độ xử lý cao như tivi,
các thiết bị xử lý tín hiệu số…
Các hãng sản xuất chíp đã đưa vào rất nhiều các ngoại vi để phục vụ mục đích
giao tiếp, đo lường và điều khiển của ngưởi phát triển các ứng dụng.
Tình hình nghiên cứu ở trong nước:
Chíp ARM đã được các cá nhân và một cố công ty nghiên cứa và ứng dụng,
Nhưng chưa được trường nào đưa vào để giảng dạy cho sinh viên. Bởi vì nó có kiến
trúc phức tạp, nhiều chuẩn giao tiếp và tài nguyên hiện đại mà chưa được nghiên
cứu rộng rãi để ứng dụng.
Với nhiều tính năng vượt trội của ARM và xu thế lựa chọn dòng vi điều khiển
mới ở Việt Nam nên trong đề tài nghiên cứu khoa học này, dưới sự giúp đỡ của
Thầy Phạm Văn Chiến, chúng tôi thực hiện đề tài nghiên cứu về chip ARM Cortex
M3 LM3S8962 của hãng Texas Instruments.
_______________________________________________________________________
Faculty of Electronics Engineering
2
Ha Noi university of industry FEE2-K2
Trong giới hạn thời gian cho phép, đồng thời có hạn chế về nguồn tài liệu và hỗ

trợ nghiên cứu, đề tài nghiên cứu của tôi còn nhiều thiếu sót, còn nhiều lỗi kỹ thuật
trong báo cáo, nên rất mong được sự đóng góp ý kiến của Hội đồng bảo vệ và các
thầy cô để đề tài nghiên cứu của chúng tôi được hoàn thiện hơn.
Cuối cùng chúng tôi xin chân thành cảm ơn thầy Vũ Trung Kiên, thầy Phạm
Văn Chiến, thầy Nguyễn Văn Tùng, các thầy cô trong khoa Điện Tử và anh Nguyễn
Xuân Kiên- đại diện TI Việt Nam đã giúp chúng tôi hoàn thành đề tài nghiên cứu
này!
Nhóm sinh viên thực hiện
Nguyễn Văn Tấn
Trương Đình Hà
_______________________________________________________________________
Faculty of Electronics Engineering
3
Ha Noi university of industry FEE2-K2
Chương I: Tổng quan kiến trúc ARM Cortex M3
Các dòng vi điều khiển Stellaris – ARM ® ™ Cortex-M3 đầu tiên - mang lại
những ứng dụng vi điều khiển nhúng hiệu suất cao 32-bit. Những bộ phận tiên
phong cung cấp cho khách hàng 32-bit hoạt động tại một chi phí tương đương với
các vi điều khiển kế thừa 8 bit và 16bit
Các Stellaris cung cấp hiệu suất hiệu quả và hội nhập sâu rộng, thiết bị định vị
thuận lợi với chi phí hợp lý, các ứng dụng đòi hỏi phải kiểm soát quá trình đáng kể
và khả năng kết nối. Dòng Stellaris LM3S8000 kết hợp công nghệ Bosch Controller
Area Network với cả 10/100 Ethernet Media Access Control (MAC) và lớp vật lý
(PHY).
Các vi điều khiển LM3S8962 là mục tiêu cho các ứng dụng công nghiệp, bao
gồm cả giám sát từ xa, máy bán điện tử, thiết bị kiểm tra và đo lường, thiết bị mạng
và thiết bị chuyển mạch, nhà máy tự động hóa, HVAC và kiểm soát các tòa nhà,
thiết bị chơi game, điều khiển chuyển động, thiết bị y tế, cứu hỏa và an ninh.
Đối với các ứng dụng yêu cầu tiết kiệm năng lượng, LM3S8962 đề cao
một mô-đun pin hiệu quả đi theo, đưa năng lượng tiêu hao của LM3S8962 đến một

trạng thái năng lượng thấp trong thời gian dài không hoạt động. Với một chuỗi
power-up/power-down, một đồng hồ thời gian thực lien tục (RTC), một cặp thanh
ghi phù hợp, một giao diện APB với bus hệ thống, và bộ nhớ không bay hơi dành
riêng, các mô-đun Hibernation, các vi điều khiển LM3S8962 hoàn hảo cho các ứng
dụng pin.
Ngoài ra, các vi điều khiển LM3S8962 cung cấp những lợi thế của ARM phổ
biến rộng rãi với các công cụ phát triển, System-on-Chip (SoC) các ứng dụng cơ sở
hạ tầng IP, và một cộng đồng lớn người dùng. Ngoài ra, vi điều khiển ARM sử
dụng Thumb ® tương thích Thumb-2 hướng dẫn thiết lập để giảm bộ nhớ yêu cầu
và, do đó chi phí giảm theo. Cuối cùng, các vi điều khiển LM3S8962 là mã tương
thích cho tất cả các thành viên của gia đình Stellaris rộng, cung cấp sự linh hoạt để
phù hợp chính xác nhu cầu của khách hàng.
1.1 Tính năng sản phẩm
Các vi điều khiển LM3S8962 bao gồm các tính năng sau:
■ 32-bit RISC
_______________________________________________________________________
Faculty of Electronics Engineering
4
Ha Noi university of industry FEE2-K2
- 32-bit ARM Cortex ® ™-M3 v7M kiến trúc tối ưu hóa với chân linh kiện nhỏ
cho ứng dụng nhúng.
- Hệ thống hẹn giờ (SysTick), cung cấp đơn giản, 24-bit tự động nạp lại, tạo sự
kiện ngắt khi bộ đếm xuống mức zero, truy cập với một cơ chế điều khiển linh hoạt,
được thiết kế cho hệ điều hành thời gian thực.
- Thumb ® tương thích Thumb-2-nhằm đạt được hiệu suất cao của tập lệnh
ARM-32bit với mật độ ma chương trình tối ưu của tập lệnh Thumb 16bit.
- Hoạt động 50-MH
- Chia phần cứng và khuếch đại chu trình đơn.
- Tích hợp Bộ điều khiển vector ngắt lồng nhau (NVIC) cung cấp tính quyết
định xử lý ngắt

- 36 ngắt với tám cấp độ ưu tiên
- Khối bảo vệ bộ nhớ (MPU), cung cấp một chế độ đặc quyền cho cấu trúc hệ
điều hành được bảo vệ
- Truy cập dữ liệu độc lập, cho phép dữ liệu được đóng gói vào bộ nhớ hiệu
quả
- Thao tác bit (dải bit), cung cấp sử dụng bộ nhớ tối đa và kiểm soát các thiết bị
ngoại vi hợp lý.
■ ARM Cortex ® ™-M3 Processor Core
- Lõi thu gọn.
- Thumb-2, cung cấp các tính năng cao dự kiến của một lõi ARM trong kích
thước bộ nhớ thường được kết hợp với 8 - và 16-bit thiết bị; thường trong khoảng
một vài kilobyte bộ nhớ cho các ứng dụng lớp vi điều khiển.
- Nhanh chóng thực hiện thông qua các ứng dụng kiến trúc Harvard bằng các
bus đặc trưng riêng biệt cho điều khiển và dữ liệu.
- Xử lý gián đoạn vượt trội, bằng cách thực hiện các thao tác thanh ghi cần thiết
để xử lý một gián đoạn trong phần cứng.
- Tính quyết định, xử lý ngắt nhanh chóng: trong 12 chu kỳ, hoặc chỉ có 6 chu
kỳ với kỹ thuật tail-chaining
- Đơn vị bảo vệ bộ nhớ (MPU) cung cấp một chế độ ưu tiên để thực hiện các
ứng dụng phức tạp.
_______________________________________________________________________
Faculty of Electronics Engineering
5
Ha Noi university of industry FEE2-K2
- Dịch chuyển từ các gia đình bộ xử lý ARM7 ™ cho hiệu năng tốt hơn và hiệu
quả về năng lượng.
- Đầy đủ tính năng giải pháp gỡ rối
• JTAG Debug Serial Port (SWJ-DP)
• Flash Patch và Breakpoint (FPB) đơn vị để thực hiện các điểm ngắt
• DataWatchpoint và Trigger (DWT) đơn vị thực hiện watchpoints, nguồn trigger và

hệ thống hồ sơ.
• Instrumentation Trace Macrocell (ITM) để hỗ trợ gỡ rối các kiểu printf
• Trace Port Interface Unit (TPIU) để chuyển tiếp đến Trace Port Analyzer
- Tối ưu hóa cho việc sử dụng flash đơn chu kỳ
- Ba chế độ ngủ với điện năng thấp
- Hướng dẫn đơn chu kỳ và phân chia phần cứng
- Hoạt động nguyên tử
- ARM Thumb2 16-/32-bit tập lệnh hỗn hợp
- 1.25 DMIPS/MHz
■ JTAG
- IEEE 1.149,1-1990 tương thích điều khiển Test Access Port (TAP)
- Bốn-bit thanh ghi điều khiển (IR) để lưu trữ chỉ thị JTAG
- Tiêu chuẩn chỉ thị IEEE: BYPASS, IDCODE, SAMPLE/PRELOAD,
EXTEST và INTEST
- ARM thêm chỉ thị: APACC, DPACC và ABOR
- Tích hợp ARM Serial Wire Debug (SWD)
■ Hibernation
- Hệ thống điều khiển công suất sử dụng bộ điều chỉnh bên ngoài riêng biệt
- Pin chuyên dụng để báo một tín hiệu bên ngoài
- Phát hiện pin thấp, báo hiệu và tạo ngắt
- Đồng hồ thời gian thực (RTC) 32-bit
- Hai thanh ghi RTC 32-bit phù hợp cho thức dậy và tạo ngắt
- Xung nhịp nguồn từ một bộ dao động bên ngoài 32,768-kHz hoặc một thạch
anh 4,194304-MHz
- RTC vi chỉnh để điều chỉnh tốt với tỷ lệ xung nhịp
_______________________________________________________________________
Faculty of Electronics Engineering
6
Ha Noi university of industry FEE2-K2
- 64 từ nhớ 32-bit không bay hơi

- Có thể lập trình ngắt cho RTC phù hợp, đánh thức bên ngoài, và các sự kiện
pin thấp
■ Bộ nhớ trong
- 256 KB flash
- 64 kB SRAM
■ GPIOs
- 5-42 GPIOs, tùy thuộc vào cấu hình
- 5-V, tùy vào cấu hình đầu vào
- Có thể lập trình điều khiển cho ngắt GPIO
• Tạo ngắt
• Gây ra ngắt theo sườn: lên, xuống hoặc cả hai
• Ngắt theo mức : cao hoặc thấp
- Đọc và ghi hoạt động các bit thông qua các dòng địa chỉ
- Có thể bắt đầu một chuỗi mẫu ADC
- Các Pin cấu hình như các đầu vào kỹ thuật số là các Schmitt-Trigger
- Có thể lập trình điều khiển để cấu hình các chân GPIO
• Điện trở kéo lên nguồn, hoặc kéo xuống mass.
• 2-mA, 4-mA, và 8-mA để giao tiếp kỹ thuật số; có thể được cấu hình lên đến
18-mA cho các ứng dụng cần dòng lớn.
• Cho phép đầu vào kỹ thuật số
■ General-Purpose Timers
- 4 bộ General-Purpose Timer Modules (GPTM), mỗi bộ cung cấp hai bộ
timer/counter 16-bit. Mỗi GPTM có thể được cấu hình để hoạt động độc lập:
• Là một bộ đếm thời gian 32-bit
• Là một đồng hồ thời gian thực 32-bit (RTC) để nắm bắt sự kiện
• Dùng cho điều chế rộng xung (PWM)
• Để kích hoạt chuyển đổi tương tự - số
- Chế độ Timer 32-bit
• Có thể lập trình one-shot thời gian
• Có thể lập trình theo chu kỳ thời gian

_______________________________________________________________________
Faculty of Electronics Engineering
7
Ha Noi university of industry FEE2-K2
• Real-Time Clock sử dụng một xung nhịp 32,768-KHz bên ngoài như đầu vào
• Người dùng có thể dừng trong quá trình gỡ rối
• Kích hoạt ADC
- Chế độ Timer 16-bit
• Chức năng như độ định thời với một bộ chia 8-bit (cho chế độ one-shot và
chế độ theo chu kỳ)
• Có thể lập trình one-shot thời gian
• Có thể lập trình theo chu kỳ thời gian
• Người dùng có thể dừng trong quá trình gỡ rối
• Kích hoạt ADC
- Chế độ Input Capture 16-bit
• Capture đầu vào theo sườn
• Capture đầu vào theo thơi gian
- Chế độ PWM 16bit
• Chế độ PWM đơn giản với đầu ra có thể lập trình phần mềm của tín hiệu
PWM
■ Watchdog Timer
- Bộ đếm xuống 32-bit với một thanh ghi tải có thể lập trình.
- Xung watchdog riêng biệt
- Có thể lập trình tạo ngắt
- Khóa thanh ghi bảo vệ từ phần mềm sai
- Thiết lập lại bằng logic với một phép / vô hiệu hóa
- Người dùng có thể dừng trong quá trình gỡ rối
■ ADC
- Bốn kênh đầu vào analog
- Cảm biến nhiệt độ bên trong on-chip

- Tốc độ lấy mẫu 500.000 mẫu / giây
- Dễ dàng cấu hình chuyển đổi tương tự - số
- Linh hoạt trong kích hoạt các điều khiển
• Bộ điều khiển (phần mềm)
• Timers
_______________________________________________________________________
Faculty of Electronics Engineering
8
Ha Noi university of industry FEE2-K2
• So sánh tương tự
• PWM
• GPIO
- Phần cứng trung bình lên đến 64 mẫu để cải thiện độ chính xác
- Chuyển đổi sử dụng một tham chiếu 3-V nội
- Nguồn và mass cho các mạch tương tự là tách biệt với nguồn và mass của
mạch kỹ thuật số.
■ UART
- Hai chuẩn lập trình đầy đủ 16C550-loại UARTs với hỗ trợ IrDA
- 16x8 truyền (TX) và nhận (RX) FIFOs riêng biệt để giảm tải ngắt CPU
- Có thể lập trình cho phép tốc độ lên tới 3,125 Mbps
- Các mức độ FIFO 1 / 8, 1 / 4, 1 / 2, 3 / 4, và 7 / 8
- Tiêu chuẩn giao tiếp không đồng bộ với các bit bắt đầu, dừng lại, và tính chẵn
lẻ
- Phát hiện và sửa lỗi đường truyền
- Lập trình đầy đủ các đặc tính giao diện nối tiếp
• 5, 6, 7, hoặc 8 bit dữ liệu
• Tạo và kiểm tra bit chẵn, lẻ hoặc không
• Tạo 1 hoặc 2 bit dừng
- Cung cấp bộ mã hóa / giải mã IrDA serial -IR (SIR)
• Lập trình sử dụng IrDA Serial Infrared (SIR) hoặc đầu vào / đầu ra UART

• Hỗ trợ chức năng mã hóa / giải mã IrDA SIR cho tốc độ dữ liệu lên đến 115,2
Kbps bán song công
• Hỗ trợ mức năng lượng 3 / 16 bình thường và mức năng lượng thấp (1,41-2,23
μs) thời lượng bit
• Có thể lập trình lấy xung clock là bộ chia 1-256 cho chế độ năng lượng thấp
■ Giao diện nối tiếp đồng bộ (SSI)
- Hoạt động master hoặc slave
- Có thể lập trình xung nhịp tốc độ bit và chia xung nhịp
- Truyền và nhận FIFOs riêng biệt, 16 bit rộng, 8 vị trí sâu
_______________________________________________________________________
Faculty of Electronics Engineering
9
Ha Noi university of industry FEE2-K2
- Có thể lập trình giao diện hoạt động các giao diện nối tiếp đồng bộ của
Freescale SPI, MICROWIRE, hay Texas Instruments
- Lập trình khung dữ liệu 4-16 bit
- Chế độ kiểm tra ngược bên trong để kiểm tra phán đoán / gỡ rối
■ I2C
- Các thiết bị trên bus I2C có thể được chỉ định là master hoặc slave
• Hỗ trợ cả việc gửi và nhận dữ liệu như một master hoặc slave
• Hỗ trợ hoạt động đồng thời master và slave
- Bốn chế độ I2C
• Master truyền
• Master nhận
• Slave truyền
• Slave nhận
- Hai tốc độ truyền dẫn: Tiêu chuẩn (100 Kbps) và nhanh (400 Kbps)
- Nguồn ngắt master và slave
• Master tạo ra ngắt khi hoạt động truyền hoặc nhận hoàn thành (hoặc hủy bỏ do
lỗi)

• Slave tạo ra ngắt khi dữ liệu đã được gửi hoặc yêu cầu của master
- Master với phân xử và xung nhịp đồng bộ, hỗ trợ đa chủ, và chế độ 7-bit địa
chỉ
■ Controller Area Network (CAN)
- CAN giao thức phiên bản 2.0 A / B
- Tốc độ bit lên đến 1 Mbps
- 32 tin nhắn với nhận dạng mask cá nhân
- Ngắt mask
- Vô hiệu hoá chế độ tự động gửi lại cho ứng dụng Time-Triggered CAN
(TTCAN)
- Lập trình kiểm tra ngược cho chế độ tự kiểm tra
- Cho phép lập trình FIFO lưu trữ của nhiều đối tượng nhắn tin
- Kèm theo một giao diện CAN bên ngoài thông qua các tín hiệu CANnTX và
CANnRX
_______________________________________________________________________
Faculty of Electronics Engineering
10
Ha Noi university of industry FEE2-K2
■ 10/100 Ethernet Controller
- Phù hợp với các đặc điểm kỹ thuật IEEE 802,3-2002
• 10Base-T/100Base-TX IEEE-802,3
• 10Base-T/100Base-TX ENDEC, 100BASE-TX Scrambler / descrambler
- Nhiều chế độ hoạt động
• Song công và bán song công 100 Mbps
• Song công và bán song công 10 Mbps
• Chế độ tiết kiệm điện và giảm công suất xuống
- Cấu hình cao
• Lập trình địa chỉ MAC
• Lựa chọn hoạt động LED
• Hỗ trợ chế độ pha tạp

• Điều khiển loại bỏ lỗi CRC
•Người dùng cấu hình ngắt
- Thao tác truyền thông vật lý
• Tự động MDI / MDI-X qua chỉnh sửa
• Tự động điều chỉnh phân cực và tiếp nhận tín hiệu 10BASE-T
- IEEE 1588 Giao thức Thời gian chính xác - cung cấp thời gian chính xác cao cho
các gói cá nhân
Bộ so sánh tương tự
- Tích hợp một bộ so sánh tương tự
- Cấu hình cho đầu ra để điều khiển chân đầu ra, tạo ra một ngắt, hoặc bắt đầu
một mẫu ADC trình tự.
- So sánh đầu vào chân bên ngoài hoặc để lập trình điện áp tham chiếu bên
trong
- So sánh một điện áp kiểm tra đối với bất kỳ một trong những điện áp
• Một điện áp tham chiếu cá nhân bên ngoài
• Một điện áp tham chiếu chia sẻ duy nhất bên ngoài
• Một điện áp tham chiếu chia sẻ nội bộ
■ PWM
_______________________________________________________________________
Faculty of Electronics Engineering
11
Ha Noi university of industry FEE2-K2
- Ba khối tạo PWM 16-bit, hai bộ so sánh PWM, một khối tạo tín hiệu PWM,
một máy phát băng tần chết, và một bộ lựa chọn ngắt /kích hoạt ADC
- Một lỗi đầu vào trong phần cứng để tăng độ trễ thấp tắt máy
- Bộ đếm 16 bit:
• Đếm xuống hoặc chế độ Lên / Xuống
• Tần số đầu ra được điều khiển bởi một giá trị nạp 16-bit
• Cập nhật giá trị nạp có thể được đồng bộ
• Tạo ra tín hiệu zero và giá trị tải

- Hai bộ so sánh PWM
• Cập nhật giá trị so sánh có thể được đồng bộ
• Tạo ra các tín hiệu đầu ra khi so sánh đúng
- Bộ tạo PWM
• Đầu ra tín hiệu PWM được xây dựng dựa trên các hoạt động như là một kết
quả của bộ đếm và tín hiệu so sánh PWM đầu ra
• Tạo ra hai tín hiệu PWM độc lập
- Bộ tạo Dead-band
• Tạo ra hai tín hiệu PWM với lập trình trễ băng tần chết phù hợp để điều khiển
nửa cầu H
• Có thể được bỏ qua, để lại các tín hiệu PWM đầu vào không sửa đổi
- Kiểm soát đầu ra linh hoạt với cho phép đầu ra PWM của mỗi tín hiệu PWM
• Cho phép đầu ra PWM của mỗi tín hiệu PWM
• Các tùy chọn đảo đầu ra của mỗi tín hiệu PWM (phân cực điều khiển)
• Tùy chọn xử lý lỗi cho mỗi tín hiệu PWM
• Đồng bộ hóa các bộ timer trong các khối tạo PWM
• Đồng bộ hoá cập nhật các bộ đếm /bộ so sánh giữa các khối tạo PWM
• Tóm tắt tình trạng ngắt các khối tạo PWM
- Có thể bắt đầu một chuỗi lấy mẫu ADC
■ QEI
- Hai module QEI, với các tính năng sau đây:
- Chức vụ tích hợp, theo dõi vị trí mã hóa
- Chụp tốc độ bằng cách sử dụng tích hợp bộ đếm thời gian
_______________________________________________________________________
Faculty of Electronics Engineering
12
Ha Noi university of industry FEE2-K2
- Tần số đầu vào của các đầu vào QEI có thể cao bằng 1 / 4 của tần số bộ xử lý
- Tạo ngắt:
• Chỉ số xung

• Hẹn giờ tốc độ hết hạn
• Hướng thay đổi
• Phát hiện lỗi góc
■ Power
- Low Drop-Out (LDO) ổn áp on-chip, với người dùng lập trình điều chỉnh đầu
từ 2,25 V đến 2,75 V
- Module hibernation xử lý các chuỗi power-up/down 3.3 V và kiểm soát mạch
kỹ thuật số logic và mạch tương tự
- Tùy chọn mức năng lượng thấp trên bộ điều khiển: chế độ Sleep và Deep-
Sleep
- Tùy chọn mức năng lượng thấp cho các thiết bị ngoại vi: điều khiển bằng phần
mềm tắt máy của các thiết bị ngoại vi cá nhân
- Phát hiện nguồn cung cấp 3.3V bị gián đoạn và báo cáo ngắt hoặc reset
■ Các nguồn reset linh hoạt
- Power-on reset (POR)
- Xác nhận reset pin
- Brown-out (BOR) phát hiện cảnh báo cho hệ thống nguồn giảm
- Reset bằng Phần mềm
- Đặt lại Watchdog timer
- Low drop-out (LDO) bên trong
1.2 Mục tiêu ứng dụng
■ Giám sát từ xa
■ Máy bán hàng điện tử (POS)
■ Thiết bị kiểm tra và đo lường
■ Thiết bị mạng và thiết bị chuyển mạch
■ Nhà máy tự động hóa
■ HVAC và kiểm soát các tòa nhà
■ Thiết bị chơi game
_______________________________________________________________________
Faculty of Electronics Engineering

13
Ha Noi university of industry FEE2-K2
■ Điều khiển động cơ
■ Thiết bị y tế
■ Báo cháy và an ninh
■ Điện năng và năng lượng
■ Giao thông vận tải
1.3 Sơ đồ khối
_______________________________________________________________________
Faculty of Electronics Engineering
14
Ha Noi university of industry FEE2-K2
Hình 1-1: Sơ đồ khối LM3S8962
_______________________________________________________________________
Faculty of Electronics Engineering
15
Ha Noi university of industry FEE2-K2
Chương II: Cấu trúc, hoạt động của TIMER
2.1 Tổng quan về Timer trong LM3S8962
Hình 2-1: Sơ đồ khối GPTM
Chương trình timers có thể sử dụng để đếm hoặc các sự kiện thời gian bên
ngoài từ chân timer đầu vào. Ở stellaris General-Purpose Timer Module bao gồm 4
khối GPTM(Timer0, Timer1, Timer2, và Timer3). Mỗi khối GPTM thường có hai
bộ timers/counters(timerA, timerB) 16-bít, nó có thể cấu hình để hoạt động độc lập
với timer hoặc sự kiện đếm , hoặc có thể cấu hình để hoạt động như một timer 32-
bít hoặc một 32-bít Real-Time-Clock(RTC).
Thêm vào đó, timers có thể sử dụng để làm trigger analog-to-digital
conversions(ADC). Đối với ADC trigger tín hiệu từ tất cả của General-Puurpose-
timers là ORed trước khi liên tục đọc ADC module. Như vậy chỉ một timer sẽ được
dùng làm trigger sự kiện ADC.

GPT module là một phương thức đếm thời gian được sử dụng trong vi điều
khiển Stellaris. Các phương thức timer khác bao gồm System Timer(Sys tick) và
PWM timer trong module PWM.
General purpose timers có những đặc điểm như sau:
_______________________________________________________________________
Faculty of Electronics Engineering
16
Ha Noi university of industry FEE2-K2
 Bốn General-Purpose-Timer-module(GPTM), với mỗi bộ có hai 16-
bít timers/counters. Mỗi bộ GPTM cũng có thể cấu hình để hoạt động độc lập.
o Với timer 32-bít đơn
o Với một RTC 32-bít để event capture
o Dùng cho PWM.
o Làm trigger cho ADC.
 Chế độ timer 32-bít
o Chương trình one-shot timer
o Chương trình chu kỳ timer.
o RTC khi sử dụng xung nhịp ngoài 32.768KHz đưa vào.
o Dùng cho phép dừng khi điều khiển đòi CPU dựng cờ khi debug.
o Trigger sự kiện cho ADC.
 Chế độ timer 16-bít
o General-purpose-timer chức năng với 8-bít prescaler(chỉ cho chế độ
one-shot và chu kỳ )
o Chương trình one-shot timer
o Chương trình chu kỳ timer.
o RTC khi sử dụng xung nhịp ngoài 32.768KHz đưa vào.
o Dùng cho phép dừng khi điều khiển đòi CPU dựng cờ khi debug.
o Trigger sự kiện cho ADC.
 Chế độ đầu vào capture 16-bít
o Đầu vào sườn đếm capture.

o Đầu vào sườn thời gian capture.
 Chế độ PWM 16-bít
o Chế độ PWM đơn với chương trình – phần mềm đầu ra đảo của tín
hiệu PWM.
2.2 Mô tả chức năng hoạt động
Cấu tạo chính của một khối GPTM là hai khối đếm 16-bít up/down đếm tự
do(timer A, timer B), hai thanh ghi 16-bít macth, hai thanh ghi prescaler macth, hai
_______________________________________________________________________
Faculty of Electronics Engineering
17
Ha Noi university of industry FEE2-K2
thanh ghi 16-bít load/initialization và ba liên kết điều khiển chức năng. Chính xác
chức năng của mỗi GPTM là điều khiển bởi phần mềm và cấu hình tới bề mặt thanh
ghi.
Cấu hình GPTM dùng thanh ghi GPTM configuration(GPTM), thanh ghi
GPTM TimerA Mode(GPTMAMR), và thanh ghi GPTM TimerB
Mode(GPTMBMR). Khi trong một của chế độ 32-bít, timer chỉ có thể act với timer
32-bít. Tuy nhiên, khi cấu hình chế độ 16-bít, GPTM có thể làm với cấu hình 2 bộ
timer 16-bít trong một sự kết hợp của chế độ 16-bít.
2.2.1 Điều kiện Reset GPTM
Sau khi reset sẽ là ứng dụng với GPTM module, module trong trạng thái
không hoạt động, và tất cả mọi điều khiển xóa thanh ghi, và nó trở lại trạng thái mặc
định. Counters TimerA và TimerB khởi trạo giá trị 0xFFFF, độ dài với nó tương
ứng với tải của các thanh ghi: thanh ghi GPTM TimerA Interval Load(GPTMAILR)
và thanh ghi GPTM TimerB Interval Load (GPTMBILR). Biến đếm Prescale được
khởi tạo tới 0x00: thanh ghi GPTM TimerA Prescale (GPTMAPR), và thanh ghi
GPTM TimerB Prescale (GPTMBPR).
2.2.2 Chế độ timer 32-bít mở
Đây là sự miêu tả lựa chọn ba chế độ GPTM timer 32-bít (one-shot/periodic và
RTC) và cấu hình nó.

GPTM nơi đặt chế độ 32-bít bởi lựa chọn 0 (one-shot, periodic) hoặc 1(RTC)
tới thanh ghi GPTM Configuration (GPTMCFG). Trong cả hai cấu hình đó, thanh
ghi GPTM nào đó liên kết với nhau tới từ một thanh ghi 32-bít giả. Các thanh ghi
bao gồm:
 GPTM TimerA Interval Load (GPTMTAILR)
 GPTM TimerB Interval Load (GPTMTBILR)
 GPTM TimerA(GPTMATR)
 GPTM TimerB(GPTMBTR)
Trong chế độ one-shot và periodic timer 32-bít, sự rang buộc thanh ghi
TimerA và Timer B cấu hình với counter down 32-bít. Lựa chọn chế độ one-shot
hay periodic là được xác định bởi gí trị viết trong TAMR của thanh ghi GPTM
_______________________________________________________________________
Faculty of Electronics Engineering
18
Ha Noi university of industry FEE2-K2
TimerA Mode(GPTMTAMR) và nó không cần viết vào thanh ghi GPTM TimerB
Mode(GPTMTBR).
Khi phần mềm tác động tới bít TAEN của thanh ghi GPTM Control
(GPTMCTL), timer bắt đầu đếm xuống từ giá trị vừa tải. Sẽ trải qua một trạng thái
0x0000.0000, timer sẽ tải lại giá trị lúc bắt đầu từ chuỗi liên kết GPTMAILR trong
chu trình tiếp theo. Nếu cấu hình timer là one-shot, timer dừng đếm và xóa bít
TAEN trong thanh ghi GPTMCTL. Nếu cấu hình periodic, quá trình tiếp tục đếm.
Trong khi thêm giá trị đếm vào, GPTM cơ bản ngắt và trigger khi nó trải qua
trạng thái 0x0000.0000, GPTM đặt bít TATORIS trong thanh ghi GPTM Raw
Interrupt Status (GPTMRIS), và chờ khối đó xóa bởi thanh ghi GPTM Interrupt
Clear(GPTMICR). Nếu cho phép ngắt ngoài timer trong thanh ghi GPTM Interrupt
Mask(GPTMIMR), cũng như vậy GPTM đặt bít TATOMIS trong thanh ghi GPTM
Masked Interrupt Status (GPTMMIS). Trigger ADC được cho phép bởi thiết lập bít
TAOTE trong thanh ghi GPTMCTL.
Nếu phần mềm tải lại thanh ghi GPTMAILR trong lúc bộ đếm đang hoạt động,

bộ đếm sẽ tải lại giá trị trong chu kỳ clock tiếp sau và tiếp tục đếm từ giá trị mới.
Nếu bít TASTALL trong thanh ghi GPTMCTL được thiết lập, timer đừng đếm
lúc bộ xử lý tạm nghỉ bởi debugger. Timer đếm trở lại khi bộ xử lý hoạt động trở
lại.
2.2.3 Chế độ timer RTC 32-bít
Trong chế độ RTC, liên kết version của thanh ghi Timer A và Timer B được
cấu hình với bộ đếm tiến 32-bít. Khi chế độ RTC được chọn thì thời gian đầu tiên,
biến đếm được tải giá trị 0x0000.0001. Tất cả các giá trị sau này được viết tới thanh
ghi GPTM TimerA Match(GPTMTAMATCHR) bởi bộ điều khiển.
Xung clock đầu vào đều đòi hỏi đầu vào CCP với mức 32768KHz trong chế
độ RTC. Tín hiệu clock khi đó được chia xuống tốc độ 1KHz để hợp với độ dài đầu
vào của bến đếm 32-bít.
Khi phần mềm viết lên bít TAEN trên thanh ghi GPTMCTL, biến đếm bắt đầu
hoạt động đếm tiến bắt đầu từ giá trị đặt trước 0x0000.0001. Khi quá trình đếm giá
trị matches ấy thì tải giá trị đặt trước từ thanh ghi GPTMTAMATCHR, nó sẽ đưa
về giá trị trên về giá trị 0x0000.0000 và tiếp tục đếm cho đến khi có một reset phần
_______________________________________________________________________
Faculty of Electronics Engineering
19
Ha Noi university of industry FEE2-K2
cứng sảy ra, hoặc không cho phép bởi phần mềm (xóa bít TAEN). Khi match sảy ra,
GPTM đòi xác nhận bít RTCRIS trên thanh ghi GPTMRIS. Khi ngắt RTC cho phép
trên GPTMRIS, GPTM cũng đặt bít RTCMIS trên thanh ghi GPTMMIS và tạo điều
khiển ngắt. Cờ báo xuất hiện và được xóa bởi viết lên bít RTCCINT trên thanh ghi
GPTMICR.
2.2.4 Chế độ hoạt động timer 16-bít
GPTM là nơi để toàn bộ chế độ 16-bít viết giá trị 0x4 lên thanh ghi GPTM
Configuration (GPTMCFG). Mỗi lựa chọn mô tả GPTM chế độ 16-bít của hoạt
động. TimerA và TimerB đồng nhất chế độ, như vậy mô tả sủ dụng đơn lẻ hoặc cả
hai.

2.2.4.1 Chế độ timer One-shot/periodic
Trong chế độ timer one-shot và periodic, timer được cấu hình như biến đếm lùi
16-bít với tùy chọn 8-bít prescale cho hiệu quả kéo dài dải đếm của timer đến 24-
bít. Sự lựa chọn chế độ của one-shot hoặc periodic được xác định bởi giá trị ghi vào
khung TnMR của thanh ghi GPTMTnMR. Việc tùy chọn Prescale là đưa giá trị đến
thanh ghi GPTM Timern Prescale (GPTMTnPR).
Khi phần mềm ghi đến bít TnEN trên thanh ghi GPTMCTL, timer bắt đầu hoạt
động đếm xuống từ giá trị đưa vào. Một trong những trạng thái 0x0000 được đưa ra,
timer tải lại giá trị từ thanh ghi GPTMTnILR và GPTMTnPR trong chu kỳ máy tiếp
theo. Nếu cấu hình timer là one-shot, timer dừng đếm và xóa bít TnEN trên thanh
ghi GPTMCTL. Nếu cấu hình timer là Periodic thì tiếp tục đếm.
Trong khi thêm vào cho đến giá trị đếm cập nhật lại, timer tạo ra ngắt và
trigger khi nó được đua tới trạng thái 0x0000. GPTM đặt bít TnTORIS trên thanh
ghi GPTMRIS,và chờ điều đó cho tới khi điều đó được xóa bởi thanh ghi
GPTMICR. Nếu thời gian ngắt ngoài cho phép trên thanh ghi GPTMIMR, GPTM
cũng đặt bít TnTOMIS trên thanh ghi GPTMSR và tạo ra điều khiển ngắt. Trigger
ADC sẽ được cho phép bởi việc cài đặt bít TnOTE trên thanh ghi GPTMCTL.
Nếu phần mềm tải lại giá trị thanh ghi GPTMTAILR cho tới khi biến đếm hoạt
động, biến đếm cập nhật giá trị mới trong chu kỳ máy tiếp sau đó và tiếp tục đếm từ
giá trị mới.
_______________________________________________________________________
Faculty of Electronics Engineering
20
Ha Noi university of industry FEE2-K2
Nếu bít TnSTALL trên thanh ghi GPTMCTL được đặt, timer dừng việc đếm
cho đến khi bộ xử lý dừng bởi debugger. Timer bắt đầu đếm lại khi bộ xử lý thực
hiện lại.
Những ví dụ sau đây cho ta thấy sự khác nhau của việc cấu hình timer hoạt
động tự do 16-bít lúc sử dụng precaler. Tất cả các giá trị giả sử ở 50MHz xung
clock, và chu kỳ Tc=20 ns.

Percale #clock(Tc)
a
Thời gian tối
đa
Đơn vị
00000000 1 1.3107 mS
00000001 2 2.6214 mS
00000010 3 3.9322 mS
mS
11111101 254 332.9229 mS
11111110 255 334.2336 mS
11111111 256 335.5443 mS
Với a là chu kỳ xung clock.
2.2.4.2 Chế độ đếm sườn đầu vào 16-bít
Trong chế độ đếm sườn đầu vào, timer cấu hình với khả năng có thể đếm tiến
của nó, có ba kiểu sự kiện: rising edge, falling edge, hoặc cả hai. Đánh giá timer
trong chế độ đếm edge, bít TnCMR của thanh ghi GPTMTnMR được đặt giá trị 0.
Kiểu của edge của đếm timer được xác định bằng dải TnEVENT của thanh ghi
GPTMCTL. Trong lúc cài đặt, thanh ghi GPTM Timern
Match(GPTMTnMATCHR) được cấu hình như vậy ta thấy được sự khác nhau giữa
giá trị trên thanh ghi GPTMTnILR và thanh ghi GPTMTnMATCHR ngang như số
của edge sự kiện phải đếm.
Khi phần mềm viết lên bít TnEN trên thanh ghi GPTM Control(GPTMCTL),
timer cho phép sự kiện capture. Mỗi sự kiện đưa vào trong chân CCP được giảm
biến đếm 1, cho đến khi đếm sự kiện matches GPTMTnMATCHR. Khi đếm match,
GPTM đòi bít CnMRIS trên thanh ghi GPTMRIS.
Biến đếm khi cập nhật sử dụng giá trị trên thanh ghi GPTMTnILR, và dừng từ
khi GPTM tự động xóa bít TnEN trên thanh ghi GPTMCTL. Một sự kiện đến sẽ trải
_______________________________________________________________________
Faculty of Electronics Engineering

21
Ha Noi university of industry FEE2-K2
qua, mọi sự kiện khác sẽ được bỏ qua cho tới khi TnEN được cho phép trở lại bằng
phần mềm.
Hình dưới cho ta thấy làm việc của chế độ đếm edge đầu vào. Trong trường
hợp này, timer bắt đầu giá trị là đặt GPTMTnILR=0x000A và match giá trị đặt là
GPTMTnMATCHR=0x0006 như vậy bốn edge sự kện biến đếm. Biến đếm được
cấu hình để nhận được cả hai tín hiệu vào.
Chú ý rằng sau khi hai edges không đếm từ khi timer tự động xóa bít TnEN
sau giá trị đếm match hiện thời trên thanh ghi GPTMTnMATCHR.
Hình 2-2:Ví dụ về chế độ đếm 16-bít edge đầu vào.
2.2.4.3 Chế độ timer 16-bít edge đầu vào
Trong chế độ timer edge, timer được cấu hình với hoạt động đếm tiến tự do cài
đặt giá trị đưa vào trên thanh ghi GPTMTnILR(hoặc 0xFFFF lúc reset). Đây là chế
độ cho phép sự kiện capture hoặc kéo lên hoặc rơi xuống, nhưng không là cả hai.
Timer là đặt vào thời gian edge vào chế độ bởi việc cài đặt bít TnCMR trên thanh
ghi GPTMTnMR, và kiểu của sự kiện timer capture là được xác định bởi bít
TnEVENT của thanh ghi GPTMCTL.
Khi phần mềm đề cập tới bít TnEN trên thanh ghi GPTMCTL, timer cho phép
sự kiện ngoài capture. Khi lựa chọn đầu vào sự kiện ngoài được xác nhận, giá trị
_______________________________________________________________________
Faculty of Electronics Engineering
22
Ha Noi university of industry FEE2-K2
đếm Tn là capture trên thanh ghi GPTMTnR và cho phép truy cập đến bởi điều
khiển đọc. GPTM sau đó đòi bít CnERIS(và bít CnEMIS, nếu ngắt không masked).
Sau khi các sự kiện ngoài đã được capture, timer không thể dừng đếm. điều đó
tiếp tục đếm cho tới khi bít TnEN được xóa. Khi timer đưa tới trạng thái 0x0000, nó
sẽ cập nhật lạ giá trị từ thanh ghi GPTMTnILR.
Hình dưới mô tả chế độ làm việc của đầu vào edge. Trên biểu đồ, điều đó như

một bắt đầu giá trị của timer là giá trị mặc định của 0xFFFF, và timer được cấu hình
capture sụ kiện edge kéo lên.
Mỗi thời điểm sự kiện edge kéo lên được thu, giá trị đếm hiện tại được đưa
đến thanh ghi GPTMTnR, và giữ lại cho đến khi sự kiện khác được cập nhật.
Hình 2-3:Ví dụ về chế độ đầu vào timer edge 16-bít
2.2.4.4 Chế độ PWM 16-bít
Prescale không thể thực hiện trong chế độ PWM 16 bít.
GPTM hỗ trợ chế độ tạo ra PWM đơn, trong chế độ PWM, timer cấu hình như
bộ đếm lùi với bắt đầu từ giá trị khai báo bởi GPTMTnILR. Trong chế độ này, tần
số và chu kỳ đồng bộ với sự kiện ngoài và như vậy đảm bảo các sự kiện nhỏ. Chế
độ PWM cho phép với thanh ghi GPTMTnMR bởi việc cài đặt bít TnAMS tới 0x1,
bít TnCMR tới 0x0, và field tới 0x2.
_______________________________________________________________________
Faculty of Electronics Engineering
23
Ha Noi university of industry FEE2-K2
Khi phần mềm truy cập tới bít TnEN trên thanh ghi GPTMCTL, biến đếm bắt
đầu đếm lùi cho tới khi gặp trạng thái 0x0000. Trên chu kỳ đếm tiếp theo, biến đếm
cập nhật lại và bắt đầu từ giá trị trên GPTMCTL và tiếp tục đếm cho tới khi bị khóa
bởi phần mềm xóa bít TnEN trên thanh ghi GPTMCTL. Không có bít ngắt hoặc tình
trạng đòi hỏi trong chế độ PWM.
Tín hiệu PWM đầu ra đưa ra khi biến đếm với giá trị của thanh ghi
GPTMTnILR, và deasserted khi giá trị biến đếm bằng giá trị của thanh ghi GPTM
Timern Match (GPTMTnMATCHR). Phần mềm có khả năng đảo tín hiệu đầu ra
PWM bởi cài đặt bít TnPWML trên thanh ghi GPTMCTL.
Hình vẽ bên dưới cho ta thấy việc tạo đầu ra PWM với chu kỳ 1-ms với 66%
duty với xung clock đầu vào 50-MHz và TnPWML=0. Với ví dụ này, giá trị bắt đầu
là GPTMTnIRL=0x350 và giá trị Match là GPTMTnMATCHR=0x411A.
Hình 2-4:Ví dụ về chế độ PWM 16-bít.
2.3 Cài đặt và cấu hình

Với mục đích tạo ra và sử dụng timer, phạm vi xung clock được cho phép bởi
việc cài đặt bít TIMER0, TIMER1, TIMER2, và TIMER3 trên thanh ghi RCGC1.
Đây là sự lựa chọn cho thấy modul cài đặt và cấu hình mẫu cho mỗi chế độ
timer được hỗ trợ.
_______________________________________________________________________
Faculty of Electronics Engineering
24

×