1. Trang chủ
  2. » Luận Văn - Báo Cáo

tổng quan kiến trúc arm cortex m3

92 1,4K 6

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tổng Quan Kiến Trúc Arm Cortex M3
Tác giả Nguyễn Văn Tấn, Trương Đình Hà
Người hướng dẫn Phạm Văn Chiến
Trường học Ha Noi University of Industry
Chuyên ngành Điện Tử
Thể loại Đề Tài Nghiên Cứu Khoa Học
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 92
Dung lượng 2,76 MB

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

Nội dung

- 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

Trang 1

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

Trương Đình Hà

Hà Nội – 06/201

_

Trang 2

Mục lục

Lời mở đầu 4

Chương I: Tổng quan kiến trúc ARM Cortex M3 6

1.1 Tính năng sản phẩm 6

1.2 Mục tiêu ứng dụng 15

1.3 Sơ đồ khối 16

Chương II: Cấu trúc, hoạt động của TIMER 18

2.1 Tổng quan về Timer trong LM3S8962 18

2.2 Mô tả chức năng hoạt động 19

2.2.1 Điều kiện Reset GPTM 20

2.2.2 Chế độ timer 32-bít mở 20

2.2.3 Chế độ timer RTC 32-bít 21

2.2.4 Chế độ hoạt động timer 16-bít 22

2.3 Cài đặt và cấu hình 26

2.3.1 Chế độ timer 32-bít one-shot/periodic 27

2.3.2 Chế độ RTC 32-bít 27

2.3.3 Chế độ one-shot/periodic 28

2.3.4 Chế độ đếm đầu vào edge 16-bít 28

2.3.5 Chế độ định thời edge đầu vào 16-bít 29

2.3.6 Chế độ PWM 16-bít 29

2.4 Mô tả thanh ghi 30

2.4.1 Sơ đồ thanh ghi GPTM 30

Chương III: Cấu trúc và hoạt động của Interrupts 32

3.1 Xử lý ngắt 32

3.2 Bộ điều khiển vector ngắt lồng nhau 32

3.2.1 Phương pháp nhập và thoát khỏi một ngoại lệ của NVIC 33

3.2.2 Chế độ xử lý ngắt cao cấp 35

3.3 Cấu hình sử dụng NVIC 35

Chương IV Giao diện nối tiếp đồng bộ (SSI) 37

4.1 Sơ đồ khối 37

4.2 Mô tả chức năng 37

4.2.2 Hoạt động FIFO 38

4.2.3 Ngắt 38

4.2.4 Định dạng khung 39

4.3 Khởi tạo và cấu hình 43

Chương V Giao diện liên vi mạch (I2C) 44

5.1 Sơ đồ khối 44

Trang 3

5.2.1 Tổng quan chức năng bus I2C 45

5.2.2 Chế độ tốc độ có sẵn 48

5.2.3 Ngắt 48

5.2.4 Hoạt động lặp 49

5.3 Khởi tạo và cấu hình 49

5.4 Bản đồ thanh ghi 50

Chương VI: Module điều khiển mạng (CAN) 52

6.1 Sơ đồ khối 53

6.2 Mô tả chức năng 54

6.2.1 Khởi tạo 55

6.2.2 Hoạt động 57

6.2.3 Truyền đối tượng tin nhắn 58

6.2.5 Cập nhật một đối tượng tin nhắn truyền 59

6.2.6 Chấp nhận đối tượng tin nhắn nhận 59

6.2.7 Nhận khung dữ liệu 60

6.2.8 Nhận khung từ xa 60

6.2.9 Ưu tiên truyền/nhận 61

6.2.10 Cấu hình đối tượng tin nhắn nhận 62

6.2.11 Xử lý đối tượng tin nhắn nhận 63

6.2.12 Xử lý ngắt 66

6.2.13 Chế độ kiểm tra 68

6.2.14 Suy xét lỗi cấu hình thời gian bit 68

6.2.15 Thời gian bit và tốc độ bit 68

6.3 Bản đồ thanh ghi 68

Chương VII : Bộ chuyển đổi tương tự - số (ADC) 71

7.1 Sơ đồ khối 72

7.2 Mô tả chức năng: 72

7.2.1 Bộ sắp xếp dãy mẫu 72

7.2.2 Module điều khiển 73

7.2.3 Phần cứng lấy mẫu trung bình 74

7.2.4 Bộ chuyển đổi tương tự - số 75

7.2.5 Mẫu vi phân 75

7.2.6 Chế độ kiểm tra 77

7.2.7 Cảm biến nhiệt độ nội 77

7.3 Khởi tạo và cấu hình 78

7.3.1 Khởi tạo module 78

7.3.2 Cấu hình bộ sắp xếp dãy mẫu 79

7.4 Bản đồ thanh ghi 79

Chương VIII: UARTs 82

8.1 Sơ đồ khối 83

8.2 Mô tả chức năng 83

8.2.1 Logic nhận/phát 83

Trang 4

8.2.2 Tốc độ baud 84

8.2.3 Dữ liệu bộ phát 84

8.2.4 SIR 85

8.2.5 Hoạt động FIFO 86

8.2.6 Ngắt 86

8.2.7 Hoạt động kiểm tra ngược 87

8.2.8 Khối IrDA sir 87

8.3 Khởi tạo và cấu hình 87

Chương IV: Một số hình ảnh LM3S8962 89

Kết luận 90

Tài liệu tham khảo 91

Trang 5

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ĩnhvự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ìmhiể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àycà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 đíchgiao 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ếntrú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êncứ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ểnmới ở Việt Nam nên trong đề tài nghiên cứu khoa học này, dưới sự giúp đỡ củaThầy Phạm Văn Chiến, chúng tôi thực hiện đề tài nghiên cứu về chip ARM CortexM3 LM3S8962 của hãng Texas Instruments

Trang 6

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ậttrong 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ácthầ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ạmVăn Chiến, thầy Nguyễn Văn Tùng, các thầy cô trong khoa Điện Tử và anh NguyễnXuâ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ứunày!

Nhóm sinh viên thực hiện

Nguyễn Văn Tấn Trương Đình Hà

Trang 7

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ạinhững ứng dụng vi điều khiển nhúng hiệu suất cao 32-bit Những bộ phận tiênphong cung cấp cho khách hàng 32-bit hoạt động tại một chi phí tương đương vớicá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 ControllerArea 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, baogồ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 đề caomột mô-đun pin hiệu quả đi theo, đưa năng lượng tiêu hao của LM3S8962 đến mộttrạ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ỗipower-up/power-down, một đồng hồ thời gian thực lien tục (RTC), một cặp thanhghi phù hợp, một giao diện APB với bus hệ thống, và bộ nhớ không bay hơi dànhriêng, các mô-đun Hibernation, các vi điều khiển LM3S8962 hoàn hảo cho các ứngdụ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ụngThumb ® 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íchcho 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

Trang 8

- 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ệnhARM-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ệuquả

- 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íchthước bộ nhớ thường được kết hợp với 8 - và 16-bit thiết bị; thường trong khoảngmộ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ácbus đặ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

Trang 9

- Dịch chuyển từ các gia đình bộ xử lý ARM7 ™ cho hiệu năng tốt hơn và hiệuquả 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ạchanh 4,194304-MHz

- RTC vi chỉnh để điều chỉnh tốt với tỷ lệ xung nhịp

Trang 10

- 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ệnpin 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 đến18-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

Trang 11

• 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ệuPWM

■ 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

Trang 12

• 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ủamạ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ẵnlẻ

- 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,2Kbps 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 bits) 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

Trang 13

- Có thể lập trình giao diện hoạt động các giao diện nối tiếp đồng bộ củaFreescale 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

- 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ỏ dolỗ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 địachỉ

■ Controller Area Network (CAN)

- CAN giao thức phiên bản 2.0 A / B

- 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

Trang 14

• 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

- 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 chocác gói cá nhân

- 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

Trang 15

- 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ó 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

Trang 16

- 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ý

- 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à Sleep

Deep 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ầnmề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

Trang 17

■ Đ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

Trang 18

Hình 1-1: Sơ đồ khối LM3S8962

Trang 19

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ênngoài từ chân timer đầu vào Ở stellaris General-Purpose Timer Module bao gồm 4khố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ậpvớ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-digitalconversions(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ẽ đượcdù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ềukhiể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:

Trang 20

 Bốn General-Purpose-Timer-module(GPTM), với mỗi bộ có hai bít timers/counters Mỗi bộ GPTM cũng có thể cấu hình để hoạt động độc lập.

16-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ínhiệ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

Trang 21

thanh ghi 16-bít load/initialization và ba liên kết điều khiển chức năng Chính xácchứ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 thanhghi.

Cấu hình GPTM dùng thanh ghi GPTM configuration(GPTM), thanh ghiGPTM TimerA Mode(GPTMAMR), và thanh ghi GPTM TimerBMode(GPTMBMR) Khi trong một của chế độ 32-bít, timer chỉ có thể act với timer32-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áikhô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 đượckhởi tạo tới 0x00: thanh ghi GPTM TimerA Prescale (GPTMAPR), và thanh ghiGPTM TimerB Prescale (GPTMBPR)

GPTM TimerA Interval Load (GPTMTAILR)

GPTM TimerB Interval Load (GPTMTBILR)

Trong chế độ one-shot và periodic timer 32-bít, sự rang buộc thanh ghiTimerA và Timer B cấu hình với counter down 32-bít Lựa chọn chế độ one-shothay periodic là được xác định bởi gí trị viết trong TAMR của thanh ghi GPTM

Trang 22

TimerA Mode(GPTMTAMR) và nó không cần viết vào thanh ghi GPTM TimerBMode(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ái0x0000.0000, timer sẽ tải lại giá trị lúc bắt đầu từ chuỗi liên kết GPTMAILR trongchu trình tiếp theo Nếu cấu hình timer là one-shot, timer dừng đếm và xóa bítTAEN 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 quatrạng thái 0x0000.0000, GPTM đặt bít TATORIS trong thanh ghi GPTM RawInterrupt Status (GPTMRIS), và chờ khối đó xóa bởi thanh ghi GPTM InterruptClear(GPTMICR) Nếu cho phép ngắt ngoài timer trong thanh ghi GPTM InterruptMask(GPTMIMR), cũng như vậy GPTM đặt bít TATOMIS trong thanh ghi GPTMMasked Interrupt Status (GPTMMIS) Trigger ADC được cho phép bởi thiết lập bítTAOTE 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 đếmlú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 đượccấ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 thanhghi 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 đầuvà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 đầuhoạ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

Trang 23

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éptrên GPTMRIS, GPTM cũng đặt bít RTCMIS trên thanh ghi GPTMMIS và tạo điềukhiể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 ghiGPTMICR.

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 GPTMConfiguration (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ùi16-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àokhung TnMR của thanh ghi GPTMTnMR Việc tùy chọn Prescale là đưa giá trị đếnthanh 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ếptheo Nếu cấu hình timer là one-shot, timer dừng đếm và xóa bít TnEN trên thanhghi 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 thanhghi GPTMRIS,và chờ điều đó cho tới khi điều đó được xóa bởi thanh ghiGPTMICR Nếu thời gian ngắt ngoài cho phép trên thanh ghi GPTMIMR, GPTMcũng đặt bít TnTOMIS trên thanh ghi GPTMSR và tạo ra điều khiển ngắt TriggerADC 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

Trang 24

Nếu bít TnSTALL trên thanh ghi GPTMCTL được đặt, timer dừng việc đếmcho đến khi bộ xử lý dừng bởi debugger Timer bắt đầu đếm lại khi bộ xử lý thựchiệ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 xungclock, và chu kỳ Tc=20 ns

Percale #clock(Tc)a Thời gian tối

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ếncủa nó, có ba kiểu sự kiện: rising edge, falling edge, hoặc cả hai Đánh giá timertrong 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 ghiGPTMCTL Trong lúc cài đặt, thanh ghi GPTM TimernMatch(GPTMTnMATCHR) được cấu hình như vậy ta thấy được sự khác nhau giữagiá 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ảmbiế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

Trang 25

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ằngphầ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ườnghợ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 đượccấ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 TnENsau 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 thanhghi GPTMTnMR, và kiểu của sự kiện timer capture là được xác định bởi bítTnEVENT 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ị

Trang 26

đếm Tn là capture trên thanh ghi GPTMTnR và cho phép truy cập đến bởi điềukhiể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ìnhcapture 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

Trang 27

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 đếmcậ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óabở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ìnhtrạ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 ghiGPTMTnILR, và deasserted khi giá trị biến đếm bằng giá trị của thanh ghi GPTMTimern Match (GPTMTnMATCHR) Phần mềm có khả năng đảo tín hiệu đầu raPWM 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ợ

Trang 28

2.3.1 Chế độ timer 32-bít one-shot/periodic

 Chắc chắn rằng timer đã bị cấm(bít TAEN trên thanh ghi GPTMCTLđược xóa) trong khi thực hiện thay đổi

 Truy cập thanh ghi GPTMCFG với giá trị 0x0

 Cài đặt bít TAEN trên thanh ghi GPTMTAILR

Ghi giá trị 0x1 cho chế độ one-shot

Ghi giá trị 0x2 cho chế độ periodic

 Cập nhật giá trị bắt đầu tới thanh ghi GPTMTAILR

 Khi đòi hỏi ngắt, cài đặt bít TATOIM trên thanh ghi GPTMIMR

 Cài đặt bít TAEN trên thanh ghi GPTMCTL cho phép timer bắt đầuđếm

 Kiểm tra vòng với bít TATORIS trên thanh ghi GPTMRIS hoặc chờngắt tạo ra Trong cả hai trường hợp, trạng thái cờ được xóa bởi ghi “1” vào bítTATOCINT của thanh ghi GPTMICR

2.3.2 Chế độ RTC 32-bít

Để dùng chế độ RTC, timer cần tín hiệu đầu vào đều đặn 32.768-KHz vàochân CCP Để cho phép RTC đặc trưng, làm theo các bước sau:

 Chắc chắn rằng timer đã được cấm

 Ghi giá trị thanh ghi GTMCFG với giá trị là 0x1

 Ghi giá trị đòi hỏi match tới thanh ghi GPTMTAMATCHR

 Cài/xóa bít RTCEN trong thanh ghi GPTMCTL

 Nếu ngắt cần thực hiện, cài đặt bít RTCIM trong thanh ghiGPTMIMR

 Khi timer đếm bằng giá trị của GPTMTAMATCHR, GPTM xác nhậnđến bít RTCRIS trong thanh ghi GPTMRIS và tiếp tục đếm cho tới khi TimerA bịcấm bởi reset phần cứng Ngắt được xóa bởi ghi tới bít RTCCINT trong thanh ghiGPTMICR

Trang 29

2.3.3 Chế độ one-shot/periodic

Timer được cấu hình cho chế độ one-shot và periodic 16-bít bởi cho phép bởicác bước liên tiếp sau:

 Chắc chắn timer bị cấm trước khi có sự thay đổi

 Ghi vào thanh ghi GPTMCFG giá trị 0x4

 Cài đặt field trong thanh ghi GPTMTnMR:

 Ghi giá trị 0x1 cho chế độ one-shot

 Ghi giá trị 0x2 cho chế độ periodic

 Nếu prescale là thường dùng, ghi giá trị prescale tới thanh ghiGPTMTnPR

 Cập nhật giá trị bắt đầu tới thanh ghi GPTMTnILR

 Nếu có đòi hỏi ngắt, cài đặt bít TnTOIM trong thanh ghi GPTMIMR

 Cài đặt bít TnEN trong thanh ghi GPTMCTL để cho phép timer bắtđầu đếm

 Kiểm tra vòng bít TnTORIS trong thanh ghi GPTMRIS hoặc chờ chongắt tạo ra Trong cả hai trường hợp, cờ trạng thái được xóa bởi ghi “1” vào bítTnTOCINT của thanh ghi GPTMICR

Trong chế độ one-shot, timer dừng đếm sau bước kiểm tra vòng hoặc chờ ngắt.Cho phép timer trở lại, lặp lại liên tục Timer cấu hình với chế độ periodic thì khôngthể dừng đếm sau điều đó sảy ra

2.3.4 Chế độ đếm đầu vào edge 16-bít

Timer cấu hình cho chế độ này trải qua các bước liên tiếp sau:

 Chắc chắn timer bin cấm trước khi thay đổi

 Ghi giá trị 0x4 vào thanh ghi GPTMCFG

 Trong thanh ghi GPTMTnMR, ghi tới field TnCMR giá trị 0x0 vàfield TnMR giá trị 0x3

 Cấu hình kiểu của sự kiện với timer capture bởi ghi field TnEVENTcủa thanh ghi GPTMCTL

 Cập nhật giá trị bắt đầu tới thanh ghi GPTMTnILR

Trang 30

 Cập nhật yêu cầu của đếm sự kiện tới thanh ghi GPTMTnMATCHR.

 Nếu yêu cầu ngắt, cài đặt bít CnMIM trong thanh ghi GPTMIMR

 Cài đặt bít TnEN trong thanh ghi GPTMCTL để cho phép timer và bắtđầu chờ edge sự kiện ngoài

 Kiểm tra vòng bít CnMRIS trong thanh ghi GPTMRIS hoặc chờ ngắtđược tạo ra Trong cả hai trường hợp trên, cờ trạng thái xóa bởi ghi vào bítCnMCINT của thanh ghi GPTMICR

Trong chế độ đếm edge đầu vào, timer dừng sau khi số yêu cầu của edge sựkiện ngoài được thu Timer được cho phép trở lại, chắc chắn bít TnEN xóa và lặp lạiquá trình cấu hình kiểu của sự kiện ngoài

2.3.5 Chế độ định thời edge đầu vào 16-bít

 Chắc chắn timer đã được cấm trong quá trình thay đổi

 Ghi vào thanh ghi GPTMCFG giá trị 0x4

 Trong thanh ghi GPTMTnMR, ghi vào field TnCMR giá trị 0x1, và fieldTnMR giá trị 0x3

 Cấu hình kiểu sự kiện ngoài timer captures bởi ghi giá trị fieldTNEVENT của thanh ghi GPTMCTL

 Cập nhật giá trị bắt đầu tới thanh ghi GPTMIMR

 Nếu yêu cầu ngắt, cài đặt bít CnEIM trong thanh ghi GPTMIMR

 Đặt bít TnEN trong thanh ghi GPTMCTL cho phép timer và bắt đầu đếm

 Kiểm tra vòng bít CnERIS trong thanh ghi GPTMRIS hoặc chờ ngắt tạo

ra Cả hai trường hợp trên, cờ trạng thái xóa bởi ghi “1” vào bít CnECINT của thanhghi GPTMICR Thời gian mà các sự kiện ngoài sảy ra có thể đạt được bởi việc đọcthanh ghi GPTMTnR

2.3.6 Chế độ PWM 16-bít

 Chắc chắn timer đã được cấm trong quá trình thay đổi

 Ghi vào thanh ghi GPTMCFG giá trị 0x4

 Trong thanh ghi GPTMTnMR, ghi vào field TnAMS giá trị 0x1, bítTnCMR giá trị 0x0, và field TnMR giá trị 0x2

Trang 31

 Cấu hình trạng thái đầu ra của tín hiệu PWM trong field TnPWML củathanh ghi GPTMCTL.

 Cập nhật giá trị timer bắt đầu tới thanh ghi GPTMTnILR

 Cập nhật thanh ghi GPTMTnMATCHR với giá trị yêu cầu

 Đặt bít TnEN trong thanh ghi GPTMCTL để cho phép timer và bắt đầutạo ra tín hiệu đầu ra PWM

2.4 Mô tả thanh ghi

2.4.1 Sơ đồ thanh ghi GPTM

Bảng dưới là danh sách thanh ghi Đối chiếu danh sách là độ lớn thập lục phân với địa chỉ thanh ghi, sự tương đối với địa chỉ cơ sở những timer

Timer0: 0x4003.0000

Timer1: 0x4003.1000

Timer2: 0x4003.2000

Timer3: 0x4003.3000

B ảng 2-1: Bản đồ thanh ghi TIMER

Offset Tên Kiểu Trạng thái

reset

Mô tả

0x000 GPTMCFG R/W 0x0000.0000 GPTM

Configuration0x004 GPTMTAMR R/W 0x0000.0000 GPTM timerA

Mode0x008 GPTMBMR R/W 0x0000.0000 GPTM timerB

Mode0x00C GPTMCTL R/W 0x0000.0000 GPTM Control0x018 GPTMIMR R/W 0x0000.0000 GPTM Interrupt

Mask0x01C GPTMRIS RO 0x0000.0000 GPTM Raw

Interrupt Status0x020 GPTMMIS RO 0x0000.0000 GPTM Masked

Interrupt Status0x024 GPTMICR W1C 0x0000.0000 GPTM Interrupt

clear0x028 GPTMTAILR R/W 0xFFFF.FFF

F

GPTM TimerAInterval Load

Trang 32

0x02C GPTMTBILR R/W 0x0000.FFFF GPTM TimerB

Interval Load0x030 GPTMTAMATCHR R/W 0x0000.0000 GPTM TimerA

Match0x034 GPTMTBMATCHR R/W 0x0000.0000 GPTM TimerB

Match0x038 GPTMTAPR R/W 0x0000.0000 GPTM TimerA

Prescale0x03C GPTMTBPR R/W 0x0000.0000 GPTM TimerB

Prescale0x040 GPTMTAPMR R/W 0x0000.0000 GPTM TimerA

Prescale Match0x044 GPTMTBPMR R/W 0x0000.0000 GPTM TimerB

Prescale Match0x048 GPTMTAR RO 0xFFFF.FFF

Một trong những cải tiến quan trọng của Cortex so với các CPU ARM trước

đó là cấu trúc ngắt và xử lý ngắt ngoại lệ Với ARM7 và ARM9 thường có 2 đường

Trang 33

ngắt: ngắt nhanh và ngắt đa dụng hai đường tín hiệu phục vụ tất cả các nguồn ngắtbên trong một vi điều khiển, trong kỹ thuật được sử dụng là như nhau nhưng việcthực hiện lại khác biệt giữa các nhà sản xuất chip Cơ cấu ngắt của ARM7 vàARM9 gặp phải hai vấn đề Trước hết nó không phải là xác định,thời gian để thựchiện việc chấm dứt hay hủy bỏ một lệnh đang được thực hiện khi sảy ra ngắt làkhông xác định Điều này không là vấn đề trở ngại cho nhiều ứng dụng, nhưng nó làvấn đề lớn cho điều khiển thời gian thực Thứ hai, cơ cấu ngắt của ARM7 và ARM9không hỗ trợ việc ngắt lồng Cần có sự hỗ trợ của phần mềm Một trong những tiêuchí quan trọng của lõi Cortex là khắc phục những hạn chế này và cung cấp một cấutrúc ngắt chuẩn cực kỳ nhanh chóng và xác định.

3.2 Bộ điều khiển vector ngắt lồng nhau

NVIC là một đơn vị tiêu chuẩn bên trong lõi Cortex Điều này có nghĩa là tất

cả các vi điều khiển dựa trên lõi Cortex sẽ có cùng một cấu trúc ngắt, bất kể nhà sảnxuất chip nào Vì vậy, mã ứng dụng và hệ điều hành có thể dễ đang luân chuyển từ

vi điều khiển này sang vi điều khiển khác và các lập trình viên khác không cần phảitìm hiều một tập thanh ghi hoàn toàn mới NVIC cũng được thiết kế để có một độtrễ đáp úng ngắt rất thấp Đây là một điểm chính của bản than bộ NVIC và của tậplệnh Thumb-2 nó cho phép thực thi các lệnh nhiều chu kỳ như lệnh tải và lệnh lưutrữ nhiều dữ liệu có thể ngắt khi đang thực thi Do đó độ trễ do khi đáp ứng ngắt làxác định, với nhiều xử lý tiên tiến, nó hỗ trợ rất tốt cho các ứng dụng thời gian thực.Như tên gọi của nó, NVIC được thiết kế để hỗ trợ ngắt lồng nhau Và trên Cortex có

16 cấp độ ưu tiên ngắt Cấu trúc ngắt NVIC được thiết kế để hoàn toàn lập trìnhbằng ANSI –C và không cần bất kỳ macro asm hoặc các chỉ dẫn non-ANSI

Trang 34

Hình 3-1: Cấu trúc của NVIC trong bộ xử lý Cortex

Mặc dù NVIC là một đơn vị đạt chuẩn bên trong lõi Cortex, để dữ cho số bongbán dẫn ở mức tối thiểu, số đường tín hiệu ngắt đi vào NVIC có thể cấu hình khi viđiều khiển được thiết kế NVIC có một ngắt không che mặt nạ và hơn 240 đường tínhiệu ngắt bên ngoài, có thể được kết nối với ngoại vi Ngoài ra còn thêm 15 nguồnngắt bên trong lõi Cortex, được sử dụng để xử lý các ngắt nội ngoại lệ trong lõiCortex

3.2.1 Phương pháp nhập và thoát khỏi một ngoại lệ của NVIC

Khi một ngắt được sinh ra bởi một thiết bị ngoại vi, NVIC sẽ được kích khởiCPU Cortex phục vụ ngắt khi CPU Cortex đi vào chế độ của nó, nó sẽ đẩy một tậpcác thanh ghi vào vùng ngăn xếp Thao tác này được thực hiên trong vi chươngtrình, vì vậy không cần viết thêm bất kỳ lệnh nào trong mã ứng dụng Trong khikhung ngăn xếp đang được lưu trữ, địa chỉ bắt đầu của trình dịch vụ chứa ngắt đãđược lấy về trên bus Icode Vì vậy, thời gian từ lúc ngắt được sinh ra cho tới khilệnh đầu tiên của trình dịch vụ ngắt được thực thi chỉ có 12 chu kỳ

Trang 35

Hình 3-2: Khung ngăn xếp trong chế độ ngắt

Khung ngăn xếp bao gồm thanh ghi trạng thái chương trình, thanh ghi bộ đếmchương trình và thanh ghi liên kết Ngăn xếp dùng để lưu ngữ cảnh mà CPU Cortexđang chạy các thanh ghi từ R0-R3 cũng được lưu Trong các chuẩn giao diện nhịphân ARM các thanh ghi này được sử dụng để truyền tham số, do đó thao tác lưutrữ các thanh ghi này sẽ được cung cấp cho chúng ta một bộ thanh ghi sẵn sangđược sử dụng bởi trình phục vụ ngắt Thanh ghi cuối cùng được lưu là R12, thanhghi này được sử dụng bởi bất kỳ mã chương trình nào đang chạy khi một cuộc gọihàm được thực hiện Ví dụ, nếu bạn đang cho phép kiểm tra ngăn xếp trong trìnhbiên dịch, mã chương trình được thêm vào khi biên dịch ra sẽ sử dụng R12 nếu nócần một thanh ghi CPU Khi kết thúc quá trình phục vụ ngắt, khung ngăn xếp đượckhôi phục tự động bởi chương trình song song với thao tác đó thì địa chỉ trở về đượclấy về, để chương trình nền có thể tiếp tục sau 12 chu kỳ

Trang 36

Hình 3-3: Đáp ứng thời gian khi một ngắt bất kỳ sảy ra của Cortex-m3

3.2.2 Chế độ xử lý ngắt cao cấp

Với khả năng xử lý một ngắt đơn rất nhanh, NVIC được thiết kế để xử lý hiệuquả nhiều ngắt trong một ứng dụng đòi hỏi khắt khe thời gian thực NVIC cóphương pháp xử lý thông minh nhiều nguồn ngắt, sao cho độ trễ giữa các ngắt là tốithiểu và đảm bảo rằng các ngắt có mức ưu tiên cao nhất sẽ được phục vụ đầu tiên

Quyền ưu tiên ngắt

NVIC được thiết kế cho phép các ngắt có mức ưu tiên cao sẽ dành quyền sovới ngắt có mức ưu tiên thấp hơn đang chạy Trong trường hợp này ngắt đang chạy

sẽ dừng và một khung ngăn xếp mới được lưu lại, thao tác này chỉ mất 12 chu kỳsau đó ngắt có mức ưu tiên cao hơn sẽ chạy Khi ngắt có mức ưu tiên cao thực hiệnxong, dữ liệu được lưu trên ngăn xếp trước đó sẽ tự động lấy ra và ngắt đó có thểtiếp tục thực hiện

3.3 Cấu hình sử dụng NVIC

Để sử dụng NVIC cần phải qua ba bước cấu hình Đầu tiên là cấu hình bảngvector ngắt mà bạn muốn dùng Tiếp theo là các thanh ghi NVIC để thiết lập cácmức ưu tiên ngắt trong NVIC và cuối cùng là phải thiết lập các thiết bị ngoại vi vàcho phép ngắt tương ứng

Bảng vector ngắt

Bảng vector ngắt của Cortex bắt đầu ở dưới cùng của bảng địa chỉ Tuy nhiênbảng vector bắt đầu tại địa chỉ 0x000000004 thay vì 0x00000000 như ARM7 vàARM9 Bốn byte đầu tiên được sử dụng để lưu trữ địa chỉ bắt đầu của con trỏ ngăn

Trang 37

Mỗi vector ngắt có độ rộng là bốn byte và giữ địa chỉ bắt đầu của trình phục vụngắt tương ứng.

Cấu hình ngắt cho thiết bị ngoại vi

Mỗi thiết bị ngoại vi được điều khiển bởi các khối thanh ghi IRQ Mỗi ngoại vi

có một bit cho phép ngắt Những bít nằm hai bên thanh ghi cho phép ngắt có chiềudài 32-bít Bên cạnh đó cũng có các thanh ghi tương ứng để cấm bất kỳ một nguồnngắt Ngoài ra NVIC cũng bao gồm các thanh ghi báo chờ và kích hoạt cho phépxác định tình trạng hiện tại của nguồn ngắt

Hình 3-4: Cấu hình ngắt cho thiết bị ngoại vi

Trang 38

Chương IV Giao diện nối tiếp đồng bộ (SSI)

Các giao diện nối tiếp đồng bộ (SSI) Stellaris là một giao diện truyền thông nốitiếp master hay slave với các thiết bị ngoại vi giao diện đồng bộ nối tiếp FreescaleSPI, MICROWIRE, hoặc Texas

Các module SSI Stellaris có các tính năng sau đây:

■ Hoạt động như master hoặc slave

■ Lập trình tốc độ bit và prescale

■ Truyền và nhận FIFOs riêng biệt, 16 bit rộng, 8 vị trí sâu

■ Lập trình hoạt động với 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 kích thước 4-16 bit

■ Chế độ kiểm tra ngược bên trong để chẩn đoán / gỡ rối

Trang 39

Đường dẫn truyền và nhận được đệm bằng bộ nhớ FIFO nội cho phép lên đến támgiá trị 16-bit được lưu trữ độc lập trong cả hai chế độ truyền và nhận.

4.2.2 Hoạt động FIFO

4.2.2.1 FIFO truyền

Các FIFO truyền là bộ nhớ đệm 16-bit, 8-địa điểm sâu, bộ CPU ghi dữ liệu tớiFIFO bằng cách ghi vào thanh ghi SSI Data (SSIDR) và dữ liệu lưu trữ trong FIFOcho đến khi nó được đọc ra bằng logic truyền

Khi cấu hình như một master hoặc slave, dữ liệu song song được ghi vào cácFIFO truyền trước khi được chuyển đổi nối tiếp và truyền tải đến slave hoặc master,thông qua các pin SSITx tương ứng

Trong chế độ slave, SSI sẽ truyền dữ liệu mỗi lần master bắt đầu một giaodịch Nếu FIFO truyền trống và master bắt đầu, slave sẽ truyền 8 giá trị gần đâynhất trong FIFO truyền Nếu ít hơn 8 giá trị đã được ghi vào FIFO truyền kể từ khixung nhịp module SSI được kích hoạt bằng cách sử dụng bit SSI trong thanh ghiRGCG1, khi đó bit 0 được truyền đi SSI có thể được cấu hình để tạo ra một ngắthoặc một yêu cầu μs) thời lượng bitDMA khi FIFO là trống rỗng

4.2.2.2 FIFO nhận

FIFO nhận là một bộ nhớ đệm 16-bit, 8-địa điểm sâu Dữ liệu nhận được từgiao diện nối tiếp được lưu trữ trong bộ đệm cho đến khi đọc bởi CPU, truy cập vàoFIFO đọc bằng cách đọc các thanh ghi SSIDR

Khi cấu hình là master hay slave, dữ liệu nối tiếp nhận được thông qua các pinSSIRx được chuyển đổi song song trước khi truyền đến FIFO nhận master hoặcslave tương ứng

Trang 40

thời điểm Bạn có thể giấu mỗi ngắt trong bốn ngắt cá nhân bằng cách thiết lập cácbit thích hợp trong thanh ghi SSI Interrupt Mask (SSIIM) Thiết lập các bit mặt nạthích hợp thành 1 để cho phép ngắt

Cung cấp các đầu ra cá nhân, cũng như một đầu ra ngắt kết hợp, cho phép sửdụng là một ngắt toàn cục thường xuyên, hoặc mô-đun điều khiển thiết bị để xử lýngắt Các ngắt động truyền và nhận đã được tách ra từ trạng thái ngắt do đó dữ liệu

có thể được đọc hoặc ghi để đáp ứng với các mức độ kích hoạt FIFO Trạng thái củanguồn ngắt cá nhân có thể được đọc từ thanh ghi SSI Raw Interrupt Status (SSIRIS)

và SSI Masked Interrupt Status (SSIMIS)

4.2.4 Định dạng khung

Mỗi khung dữ liệu dài từ 4 - 16 bit, tùy thuộc vào kích thước của dữ liệu đượclập trình, và truyền bắt đầu với bit MSB Có ba loại hình cơ bản mà có thể đượcchọn:

■ Nối tiếp đồng bộ Texas Instruments

■ Freescale SPI

■ MICROWIRE

Đối với cả ba định dạng, clock nối tiếp (SSIClk) không hoạt động trong khiSSI được nhàn rỗi, và SSIClk chuyển tiếp vào các tần số được lập trình chỉ hoạtđộng trong quá trình truyền hoặc nhận dữ liệu Các giai đoạn rảnh của SSIClk được

sử dụng để cung cấp một dấu hiệu cho thấy thời gian chờ nhận quá hạn xảy ra khiFIFO nhận vẫn còn chứa dữ liệu sau một thời gian quá hạn

Đối với các định dạng khung Freescale SPI và MICROWIRE, pin khung nốitiếp (SSIFss) hoạt động mức thấp, và được duy trì (pulled down) trong suốt quátrình truyền tải toàn bộ khung

Đối với định dạng khung nối tiếp đồng bộ Texas Instruments, các pin SSIFsstạo xung clock nối tiếp bắt đầu tại sườn lên, trước khi truyền của mỗi khung Đốivới các định dạng khung, cả SSI và thiết bị slave off-chip điều khiển dữ liệu đầu ra

ở sườn lên của SSIClk, và chốt dữ liệu tại sườn xuống

Không giống như truyền dẫn song công của hai định dạng khung khác, cácđịnh dạng MICROWIRE sử dụng kỹ thuật tin nhắn master – slave đặc biệt, hoạtđộng bán song công Trong chế độ này, khi một khung bắt đầu, một thông báo điều

Ngày đăng: 18/02/2014, 14:00

HÌNH ẢNH LIÊN QUAN

- 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 - tổng quan kiến trúc arm cortex m3
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 (Trang 8)
- 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) - tổng quan kiến trúc arm cortex m3
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) (Trang 9)
- 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ự. - tổng quan kiến trúc arm cortex m3
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ự (Trang 12)
Hình 1-1: Sơ đồ khối LM3S8962 - tổng quan kiến trúc arm cortex m3
Hình 1 1: Sơ đồ khối LM3S8962 (Trang 16)
Hình 2-1: Sơ đồ khối GPTM - tổng quan kiến trúc arm cortex m3
Hình 2 1: Sơ đồ khối GPTM (Trang 17)
 Cấu hình kiểu sự kiện ngoài timer captures bởi ghi giá trị field TNEVENT của thanh ghi GPTMCTL. - tổng quan kiến trúc arm cortex m3
u hình kiểu sự kiện ngoài timer captures bởi ghi giá trị field TNEVENT của thanh ghi GPTMCTL (Trang 28)
 Cấu hình trạng thái đầu ra của tín hiệu PWM trong field TnPWML của thanh ghi GPTMCTL. - tổng quan kiến trúc arm cortex m3
u hình trạng thái đầu ra của tín hiệu PWM trong field TnPWML của thanh ghi GPTMCTL (Trang 29)
Hình 3-1: Cấu trúc của NVIC trong bộ xử lý Cortex - tổng quan kiến trúc arm cortex m3
Hình 3 1: Cấu trúc của NVIC trong bộ xử lý Cortex (Trang 32)
Hình 3-2: Khung ngăn xếp trong chế độ ngắt - tổng quan kiến trúc arm cortex m3
Hình 3 2: Khung ngăn xếp trong chế độ ngắt (Trang 33)
3.3 Cấu hình sử dụng NVIC - tổng quan kiến trúc arm cortex m3
3.3 Cấu hình sử dụng NVIC (Trang 34)
Cấu hình ngắt cho thiết bị ngoại vi - tổng quan kiến trúc arm cortex m3
u hình ngắt cho thiết bị ngoại vi (Trang 35)
Hình 4-1. Sơ đồ khối Module SSI - tổng quan kiến trúc arm cortex m3
Hình 4 1. Sơ đồ khối Module SSI (Trang 36)
Hình 4-2 cho thấy định dạng khung nối tiếp đồng bộ Texas Instruments cho một khung truyền đơn - tổng quan kiến trúc arm cortex m3
Hình 4 2 cho thấy định dạng khung nối tiếp đồng bộ Texas Instruments cho một khung truyền đơn (Trang 39)
Hình 4-3. Định dạng khung nối tiếp đồng bộ TI (truyền liên tục) - tổng quan kiến trúc arm cortex m3
Hình 4 3. Định dạng khung nối tiếp đồng bộ TI (truyền liên tục) (Trang 40)
Hình 5-2. Cấu hình Bus I2C - tổng quan kiến trúc arm cortex m3
Hình 5 2. Cấu hình Bus I2C (Trang 44)

TỪ KHÓA LIÊN QUAN

w