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

xây dựng các bài thí nghiệm trên hệ thống nhúng arm cortex

66 504 0

Đ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

Định dạng
Số trang 66
Dung lượng 7,05 MB

Nội dung

Nhằm nâng cao kiến thức cho người nghiên cứu, và triển khai tài liệu học tập đếnsinh viên, giúp sinh viên tiếp cận với một họ vi điều khiển 32 bit mới: người nghiêncứu tiến hành thực hiệ

Trang 1

THÀNH PHỐ HỒ CHÍ MINH

BÁO CÁO TỔNG KẾT

ĐỀ TÀI KH&CN CẤP TRƯỜNG

XÂY DỰNG CÁC BÀI THÍ NGHIỆM TRÊN HỆ THỐNG NHÚNG ARM CORTEX

MÃ SỐ: T2011 - 11

S 0 9

S KC 0 0 3 6 1 9

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

THÀNH PHỐ HỒ CHÍ MINH

BÁO CÁO TỔNG KẾT

ĐỀ TÀI KH&CN CẤP TRƯỜNG

MÃ SỐ : T2011-11

Tp.HCM,THÁNG 2 NĂM 2012

XÂY DỰNG CÁC BÀI THÍ NGHIỆM TRÊN HỆ

THỐNG NHÚNG ARM CORTEX

Trang 3

NGƯỜI THAM GIA ĐỀ TÀI

Chủ nhiệm đề tài: Lê Minh

Học vị, chức danh khoa học: Kỹ sư, Giảng viên

Thành viên: Phạm Văn Khoa

Học vị, chức danh khoa học: Kỹ sư, Trợ Giảng

Đơn vị phối hợp: Khoa Điện – Điện Tử, trường ĐH Sư Phạm Kỹ Thuật TPHCM

Trang 4

Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex

Trang ii

MỤC LỤC

NGƯỜI THAM GIA ĐỀ TÀI i

DANH SÁCH HÌNH iv

DANH SÁCH BẢNG vi

THÔNG TIN KẾT QUẢ NGHIÊN CỨU vii

Chương 1 1

GIỚI THIỆU 1

1.1 Tình Hình Nghiên Cứu 1

1.2 Tính Cấp Thiết Của Đề Tài 2

1.3 Mục Tiêu Nghiên cứu 2

Chương 2 3

VI ĐIỀU KHIỂN ARM CORTEX M3 3

2.1 Giới Thiệu Về Vi Điều Khiển ARM Cortex – M3 3

2.2 Kiến Trúc Vi Điều Khiển ARM Cortex – M3 4

2.2.1 Lõi Cortex – M3 4

2.2 2 Bộ điều khiển vector ngắt lồng nhau (NVIC) 9

2.2.3 Các nhánh của bộ xử lý Cortex 10

2.2.4 Ngoại vi của STM32 – Cortex – M3 11

Chương 3 18

KIT OPENCMX – STM3210D 18

3.1 Đặc Tả Phần Cứng Board KIT 18

3.2 Đặc Tính Kỹ Thuật Của MCU STM32F103RTD6 19

3.3 Sơ Đồ Thiết Kế Phần Cứng Từng Khối Chức Năng Của Board 25

Chương 4 29

XÂY DỰNG BÀI THÍ NGHIỆM TRÊN BOARD STM32 29

4.1 Giới Thiệu Về CMSIS 29

4.2 Các Bài Thí Nghiệm 31

4.2.1 Giao Tiếp Led Đơn GPIO 31

Trang 5

4.2.2 Cách Cấu Hình Cho Công Cụ KeilC Biên Dịch Và Nạp Chương Trình 36

4.2.3 Giao Tiếp LCD Chế Độ 4bit 38

4.2.3 Lập trình External Interrupt với STM32 42

4.2.4 Lập trình USART với STM32 44

4.2.5 Lập trình ADC với STM32 46

4.2.6 Thiết kế phần mềm giao tiếp với KIT 49

Chương 5 55

KẾT LUẬN 55

5.1 Tổng kết nhận xét 55

5.2 Tồn tại và hướng phát triển của đề tài 55

5.2.1 Tồn tại 55

5.2.2 Hướng phát triển của đề tài 55

Trang 6

Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex

Trang iv

DANH SÁCH HÌNH

Hình 2.1 Kiến trúc hệ thống 4

Hình 2.2 Cấu trúc của VĐK Cortex-M3 6

Hình 2.3 Bản đồ bộ nhớ 7

Hình 2.4 Mô tả bit-banding trong Cortex-M3 8

Hình 2.5 Kiến trúc ngoại vi Cortex-M3 11

Hình 2.6 Cấu trúc của SPI 13

Hình 2.7 Cấu trúc của USART 14

Hình 2.8 Hỗ trợ giao tiếp ở chế độ hafl-duplex 14

Hình 2.9 Giao tiếp với smartcard và hồng ngoại 15

Hình 2.10 Hỗ trợ giao tiếp đồng bộ SPI 15

Hình 2.11 Sơ đồ khối của DAC 17

Hình 3.1 Hình ảnh thực tế của board 18

Hình 3.2 Khối VDK STM32F103RD 25

Hình 3.3 Khối giao tiếp nối tiếp bất đồng bộ UART 26

Hình 3.4 Khối chuyển đổi tương tự-số và điều rộng xung 26

Hình 3.5 Khối cảm biến nhiệt độ 27

Hình 3.6 Khối giao tiếp led đơn GPIO 27

Hình 3.7 Khối giao tiếp LCD, CAN, PS2 28

Hình 4.1 Kiến trúc các lớp trừu tượng hoá của CMSIS 30

Hình 4.2 Kết nối phần cứng cho led đơn 32

Hình 4.3 Thanh ghi GPIOx_CRL 33

Hình 4.4 Thiết lập thiết bị VDK STM32F103RD để biên dịch 36

Hình 4.5 Cấu hình file nạp cho VDK 37

Hình 4.6 Thiết lập cấu hình cho thiết bị nạp ULINK 38

Hình 4.7 Giao tiếp LCD chế độ 4bit 38

Hình 4.8 Giao tiếp với nút nhấn ngắt ngoài 42

Hình 4.9 Khối giao tiếp UART 44

Trang 7

Hình 4.10 Giao tiếp với biến trở điều chỉnh ADC 47

Hình 4.11 Tab “Config” 50

Hình 4.12 Tab “File mode” 51

Hình 4.13 Tab “DAC mode” 52

Hình 4.14 Tab “ADC mode” 53

Hình 4.15 Tab “LED mode” 54

Trang 8

Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex

Trang 9

THÔNG TIN KẾT QUẢ NGHIÊN CỨU

ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ CẤP TRƯỜNG

1.Thông tin chung:

Tên đề tài: Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex – M3

Mã số: T2011-11

Chủ nhiệm đề tài: Ks Lê Minh Tel.: 0978446916 E-mail:

Cơ quan chủ trì đề tài: Trường Đại học Sư Phạm Kỹ Thuật, TP HCM

Cơ quan và cá nhân phối hợp thực hiện: KS Phạm Văn Khoa

Thời gian thực hiện: Từ 15/05/2011 đến 25/02/2012

2 Mục tiêu: Xây dựng các bài thí nghiệm trên KIT thí nghiệm sử dụng vi điều

khiển ARM Cortex – M3

3 Nội dung chính: Nghiên cứu về họ vi điều khiển ARM Cortex – M3, KIT thí

nghiệm OPENCMX – STM3210D, xây dựng các bài thí nghiệm trên KIT này

4 Kết quả chính đạt được (khoa học, ứng dụng, đào tạo, kinh tế – xã hội, v.v…)

- Khoa học: tìm hiểu và khai thác được một họ vi điều khiển 32 bit lõi ARM

và xây dựng được các bài thí nghiệm trên KIT sử dụng vi điều khiển này

- Ứng dụng: Tạo cơ sở khoa học cho việc tiếp cận dòng vi điều khiển mớinhanh, ứng dụng trong nhiều lãnh vực

- Đào tạo: Có thể sử dụng làm tài liệu nghiên cứu cho sinh viên và tài liệutham khảo thêm cho giảng viên

Trang 10

Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex

Trang viii

5 Điểm mới

- Đây là họ vi điều khiển tương đối mới ở thị trường Việt nam

- Chưa được sử dụng rộng rãi trong việc giảng dạy ở các trường Đại học

6 Địa chỉ ứng dụng

Kết quả của đề tài có thể được ứng dụng cho:

- Sinh viên trường ĐH SPKT TPHCM

- Các sinh viên, kỹ sư điện tử, điện tử viễn thông, kỹ thuật máy tính khác có quantâm

Trưởng Đơn vị Chủ nhiệm đề tài

(ký, họ và tên, đóng dấu) (ký, họ và tên)

Lê Minh

Trang 11

kỹ thuật đã giúp giải phóng sức người và cho năng xuất lao động rất cao, đồng thời

nó cho ra những sản phẩm tinh vi mà chỉ máy móc mới có thể làm được tất cảnhững hoạt động này được điều khiển bởi con chip vi xử lý

Để có được sự phát triển như ngày nay thì thì chúng ta đã trải qua rất nhiều các cuộccách mạng khoa học kỹ thuật các thiết bị máy móc ngày càng hiện đại, sự hiện đại

ấy được chúng ta đánh giá thông qua tốc độ xử lý thông tin, khả năng làm đồng thờinhiều việc cùng một lúc, tốn ít năng lượng, bộ nhớ lớn để chứa được nhiều chươngtrình xử lý khác nhau Có nhiều khối giao tiếp với bên ngoài Tất cả các yếu tố đặctrưng kể trên nó được tích hợp trong con chip vi xử lý, vì vậy con chip vi xử lýchính là bộ não chỉ huy hoạt động của máy móc

Theo thời gian khả năng làm việc và tốc độ xử lý thông tin của các loại chip cũngđược nâng lên Từ những con chip sơ với khai tốc độ xử lý dữ liệu chỉ bằng khoảngmột ngàn người tính toán thì ngày nay những con chip đã có khả năng tính toánbằng cả tỉ người cộng lại

Hiện nay các chip vi xử lý 32 bit và 64 bit đã được sử dụng rộng rãi thay cho cácchip 8 bit và 16 bit trước đó Các chip 32 bit này có ưu điểm là khả năng xử lý tốc

độ cao, tiêu tốn ít năng lượng, bộ nhớ lớn và đặc biệt một số chip được thiết kế để

Trang 12

Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex

Chính vì thế, tác giả quyết định nghiên cứu thiết kế các bài thí nghiệm trên KIT sẵn

có trên thị trường của vi điều khiển ARM Cortex M3 để phục vụ cho việc giảng dạycủa giáo viên và học tập nghiên cứu của sinh viên

1.2 Tính Cấp Thiết Của Đề Tài

Hiện tại các yêu cầu ứng dụng thực tế đều cần các chip xử lý với tốc độ nhanh, khảnăng lập trình linh động và đặc biệt là có thể chạy được hệ điều hành Do vậy,thường các vi xử lý và vi điều khiển 8 bit hoặc 16 khó có thể đáp ứng được các yêucầu này Để giải đáp ứng các yêu cầu này, hầu hết các lập trình viên đều sử dụng các

vi xử lý, vi điều khiển 32 bit Trong khi sinh viên đó, hầu hết các sinh viên vẫn đanghọc tập và thí nghiệm trên các dòng vi điều khiển 8bit, 16 bit Khi sinh viên ratrường thường khó ứng dụng vào các yêu cầu thực tế hoặc khó đáp được yêu cầucủa các nhà tuyển dụng Khi đó, sinh vien lại phải mất thời gian đi học tập để tiếpcận với công nghệ mới trước khi làm việc

Nhằm nâng cao kiến thức cho người nghiên cứu, và triển khai tài liệu học tập đếnsinh viên, giúp sinh viên tiếp cận với một họ vi điều khiển 32 bit mới: người nghiêncứu tiến hành thực hiện đề tài : Xây dựng các bài thí nghiệm trên hệ thống nhúngARM Cortex M3

1.3 Mục Tiêu Nghiên cứu

Xây dựng các bài thí nghiệm mẫu trên KIT OPENCMX – STM3210D sử dụng viđiều khiển ARM Cortex M3

Trang 13

Chương 2.

VI ĐIỀU KHIỂN ARM CORTEX M3

2.1 Giới Thiệu Về Vi Điều Khiển ARM Cortex – M3

Cấu trúc ARM (Acorn RISC Machine) là một loại cấu trúc vi xử lý 32-bit kiểu RISC(Reduced Instructions Set Computer - Máy tính với tập lệnh đơn giản hóa) được sửdụng rộng rãi trong các thiết kế nhúng Do có đặc điểm tiết kiệm năng lượng, các bộCPU ARM chiếm ưu thế trong các sản phẩm điện tử di động, mà với các sản phẩmnày việc tiêu tán công suất thấp là một mục tiêu thiết kế quan trọng hàng đầu

Giải pháp thiết kế SoC (System-On-Chip) dựa trên bộ vi xử lý nhúng ARM đượcứng dụng vào rất nhiều thị trường khác nhau bao gồm các ứng dụng doanh nghiệp,các hệ thống ô tô, mạng gia đình và công nghệ mạng không dây Dòng vi xử lýARM Cortex dựa trên một kiến trúc chuẩn đủ để đáp ứng hầu hết các yêu cầu vềhiệu năng làm việc trong tất cả các lĩnh vực trên ARM Cortex được chia làm ba cấuhình khác nhau của kiến trúc ARMv7: cấu hình A cho các ứng dụng yêu cầu caochạy trên các hệ điều hành mở và phức tạp như Linux, Android…; cấu hình R dànhcho các hệ thống thời gian thực và cấu hình M được tối ưu cho các ứng dụng vi điềukhiển, cần tiết kiệm chi phí Bộ vi xử lý Cortex-M3 là bộ vi xử lý ARM đầu tiên dựatrên kiến trúc ARMv7-M và được thiết kế đặc biệt để đạt được hiệu suất cao trongcác ứng dụng nhúng cần tiết kiệm năng lượng và chi phí, chẳng hạn như các vi điềukhiển, hệ thống cơ ô tô, hệ thống kiểm soát công nghiệp và hệ thống mạng khôngdây Thêm vào đó là việc lập trình được đơn giản hóa đáng kể giúp kiến trúc ARMtrở thành một lựa chọn tốt cho ngay cả những ứng dụng đơn giản nhất Ngày nay,hơn 75% CPU nhúng 32-bit là thuộc họ ARM, điều này khiến ARM trở thành cấutrúc 32-bit được sản xuất nhiều nhất trên thế giới CPU ARM được tìm thấy khắpnơi trong các sản phẩm thương mại điện tử, từ thiết bị cầm tay như: PDA, điện thoại

Trang 14

Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex

và 16-bit truyền thống trước đây như PIC16F, AVR32…

2.2 Kiến Trúc Vi Điều Khiển ARM Cortex – M3

Các chip ARM7 được các nhà sản xuất bán dẫn thiết kế với giải pháp riêng củamình, đặc biệt là phần xử lí các các ngắt đặc biệt (exception) và các ngắt thôngthường (interrupt) Là một nhánh trong kiến trúc ARMv7, Cortex-M3 đưa ra một lõi

vi điều khiển chuẩn nhằm cung cấp phần tổng quát, quan trọng nhất của một vi điềukhiển, bao gồm hệ thống ngắt (interrupt system), SysTick timer (được thiết kế cho

hệ điều hành thời gian thực), hệ thống kiểm và sửa lỗi (debug system) và bản đồvùng nhớ (memory map)

Hình 2.1 Kiến trúc hệ thống

Khối trung tâm của VĐK STM32 dùng trong đề tài là bộ xử lí Cortex-M3 Bộ xử líCortex-M3 là một vi điều khiển được tiêu chuẩn hoá gồm một CPU 32bit, cấu trúcbus (bus structure), đơn vị xử lí ngắt có hỗ trợ tính năng lồng ngắt vào nhau (nestedinterrupt unit), hệ thống kiểm lỗi (debug system) và tiêu chuẩn bố trí bộ nhớ(standard memory layout) Lõi Cortex có cấu trúc đường ống gồm 3 tầng:

Trang 15

Instruction Fetch, Instruction Decode và Instruction Execute Khi gặp một lệnhnhánh, tầng decode chứa một chỉ thị nạp lệnh suy đoán có thể dẫn đến việc thực thinhanh hơn Bộ xử lý nạp lệnh dự định rẽ nhánh trong giai đoạn giải mã Sau đó,trong giai đoạn thực thi, việc rẽ nhánh được giải quyết và bộ vi xử lý sẽ phân tíchxem đâu là lệnh thực thi kế tiếp Nếu việc rẽ nhánh không được chọn thì lệnh tiếptheo đã sẵn sàng Còn nếu việc rẽ nhánh được chọn thì lệnh rẽ nhánh đó cũng đã sẵnsàng ngay lập tức, hạn chế thời gian rỗi chỉ còn một chu kỳ Lõi Cortex-M3 chứamột bộ giải mã cho tập lệnh Thumb truyền thống và Thumb-2 mới, một ALU tiêntiến hỗ trợ nhân chia phần cứng, điều khiển logic, và các giao tiếp với các thànhphần khác của bộ xử lý Bộ vi xử lý Cortex-M3 là một bộ vi xử lý 32-bit, với độrộng của đường dẫn dữ liệu 32 bit, các dải thanh ghi và giao tiếp bộ nhớ Có 13thanh ghi đa dụng, hai con trỏ ngăn xếp, một thanh ghi liên kết, một bộ đếm chươngtrình và một số thanh ghi đặc biệt trong đó có một thanh ghi trạng thái chương trình.

Trang 16

Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex

Trang 6

Hình 2.2 Cấu trúc của VĐK Cortex-M3

Bộ vi xử lý Cortex-M3 là một hệ thống ánh xạ bộ nhớ đơn giản, quản lí vùng nhớ cốđịnh lên tới 4-gigabyte với các địa chỉ định nghĩa sẵn, dành riêng cho mã lệnh (vùng

mã lệnh), SRAM (vùng nhớ), bộ nhớ/thiết bị bên ngoài, thiết bị ngoại vi bên trong

và bên ngoài Ngoài ra còn có một vùng nhớ đặc biệt dành riêng cho nhà cung cấp.Không gian địa chỉ 4Gbyte của Cortex-M3 được chia thành các vùng cho mãchương trình, SRAM, ngoại vi và ngoại vi hệ thống Một điểm riêng không giốngvới ARM7 được thiết kế theo kiến trúc Von Neumann (bộ nhớ chương trình và bộnhớ dữ liệu chung với nhau), Cortex-M3 được thiết kế dựa theo kiến trúc Harvard(bộ nhớ chương trình và bộ nhớ dữ liệu tách biệt với nhau), và có nhiều bus choXây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex

Trang 6

Hình 2.2 Cấu trúc của VĐK Cortex-M3

Bộ vi xử lý Cortex-M3 là một hệ thống ánh xạ bộ nhớ đơn giản, quản lí vùng nhớ cốđịnh lên tới 4-gigabyte với các địa chỉ định nghĩa sẵn, dành riêng cho mã lệnh (vùng

mã lệnh), SRAM (vùng nhớ), bộ nhớ/thiết bị bên ngoài, thiết bị ngoại vi bên trong

và bên ngoài Ngoài ra còn có một vùng nhớ đặc biệt dành riêng cho nhà cung cấp.Không gian địa chỉ 4Gbyte của Cortex-M3 được chia thành các vùng cho mãchương trình, SRAM, ngoại vi và ngoại vi hệ thống Một điểm riêng không giốngvới ARM7 được thiết kế theo kiến trúc Von Neumann (bộ nhớ chương trình và bộnhớ dữ liệu chung với nhau), Cortex-M3 được thiết kế dựa theo kiến trúc Harvard(bộ nhớ chương trình và bộ nhớ dữ liệu tách biệt với nhau), và có nhiều bus choXây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex

Trang 6

Hình 2.2 Cấu trúc của VĐK Cortex-M3

Bộ vi xử lý Cortex-M3 là một hệ thống ánh xạ bộ nhớ đơn giản, quản lí vùng nhớ cốđịnh lên tới 4-gigabyte với các địa chỉ định nghĩa sẵn, dành riêng cho mã lệnh (vùng

mã lệnh), SRAM (vùng nhớ), bộ nhớ/thiết bị bên ngoài, thiết bị ngoại vi bên trong

và bên ngoài Ngoài ra còn có một vùng nhớ đặc biệt dành riêng cho nhà cung cấp.Không gian địa chỉ 4Gbyte của Cortex-M3 được chia thành các vùng cho mãchương trình, SRAM, ngoại vi và ngoại vi hệ thống Một điểm riêng không giốngvới ARM7 được thiết kế theo kiến trúc Von Neumann (bộ nhớ chương trình và bộnhớ dữ liệu chung với nhau), Cortex-M3 được thiết kế dựa theo kiến trúc Harvard(bộ nhớ chương trình và bộ nhớ dữ liệu tách biệt với nhau), và có nhiều bus cho

Trang 17

phép thực hiện các thao tác song song với nhau, do đó làm tăng hiệu suất của chip.Ngoài ra dòng Cortex cho phép truy cập dữ liệu không xếp hàng (unaligned data, vìchip ARM là kiến trúc 32bit, do đó tất cả các dữ liệu hoặc mã chương trình đềuđược sắp xếp khít với vùng bộ nhớ là bội số của 4byte) Đặc điểm này cho phép sửdụng hiệu quả SRAM nội.

Hình 2.3 Bản đồ bộ nhớ

Bộ vi xử lý Cortex-M3 cho phép truy cập trực tiếp đến từng bit dữ liệu trong các hệthống đơn giản bằng cách thực thi một kỹ thuật được gọi là bit-banding Đặc điểmnày cho phép truy cập hiệu quả tới các thanh ghi ngoại vi và các cờ được dùng trên

bộ nhớ SRAM mà không cần một bộ xử lí luận lí (Boolean processor) Bộ nhớ bao

Trang 18

Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex

Trang 8

gồm hai vùng bit-band (mỗi vùng 1MB) trong SRAM và vùng bí danh 32MB củavùng không gian ngoại vi (Mỗi byte trong vùng bí danh sẽ tương ứng với một bittrong vùng bit-band) Mỗi hoạt động nạp/lưu tại một địa chỉ trong khu vực bí danh(alias region) sẽ trực tiếp tương ứng với hoạt động trên bit được đại diện bởi bí danh

đó Cụ thể, khi ghi giá trị 0x01 vào một địa chỉ trên vùng bí danh thì có nghĩa là xácđịnh bit tương ứng sẽ có giá trị là 1, tương tự giá trị 0x00 sẽ xác định bit tương ứng

có giá trị 0 Còn đọc giá trị tại một địa chỉ vùng bí danh có nghĩa là đọc được giá trịcủa bit tương ứng Một vấn đề cần chú ý nữa là hoạt động này mang tính nguyên tử(không chia nhỏ được nữa), không thể bị gián đoạn bởi các hoạt động khác trên bus

Hình 2.4 Mô tả bit-banding trong Cortex-M3

Các hệ thống cũ dựa trên ARM7 chỉ hỗ trợ truy xuất dữ liệu thẳng hàng, chỉ chophép lưu trữ và truy xuất dữ liệu của một khối bộ nhớ mà mỗi phần tử có đơn vị làmột word Bộ vi xử lý Cortex-M3 hỗ trợ truy xuất dữ liệu không thẳng hàng, chophép chuyển dữ liệu không thẳng hàng trong một truy xuất đơn Thực tế, việcchuyển dữ liệu không thẳng hàng được biến thành việc chuyển nhiều lần dữ liệuthẳng hàng và có tính trong suốt đối với lập trình viên (nghĩa là lập trình viên hoàntoàn không cần quan tâm đến điều này) Ngoài ra bộ vi xử lý Cortex-M3 cũng hỗ trợphép nhân 32-bit hoạt động trong một chu trình đơn và các phép chia có dấu, khôngdấu với các lệnh SDIV và UDIV, mất từ 2 đến 12 chu kỳ phụ thuộc vào kích thước

Trang 19

của toán hạng Phép chia được thực thi nhanh hơn nếu số chia và số bị chia có kíchthước tương tự nhau Những cải tiến trong khả năng toán học giúp Cortex-M3 trởthành bộ vi xử lý lý tưởng cho các ứng dụng thiên về tính toán như đọc cảm biếnhoặc các hệ thống mô phỏng.

Một trong những thành phần chính của lõi Cortex-M3 là NVIC (Nested VectorInterrupt Controller) NVIC cung cấp một cấu trúc ngắt chuẩn cho tất cả các vi điềukhiển được thiết kế dựa trên lõi Cortex và cách xử lí các ngắt đặc biệt (exceptionalinterrupt) NVIC cung cấp các vector ngắt chuyên dụng lên tới 240 nguồn ngắt từngoại vi, mỗi nguồn ngắt đó có thể được ưu tiên hoá với các mức riêng biệt NVICđược thiết kế để xử lí các ngắt đòi hỏi thời gian đáp ứng cực kì nhanh (extremelyfast interrupt) Thời gian từ lúc nhận một tín hiệu ngắt cho tới khi thực thi dòng lệnhđầu tiên trong trình phục vụ ngắt chỉ là 12 chu kì xung nhịp hệ thống Công việc nàyđược thực hiện tự động bởi một vi chương trình (microcode) được cài sẵn trongCPU Trong trường hợp xuất hiện các interrupt lồng nhau (tức là xảy ra ngắt khiđang xử lí ngắt trước đó), NVIC sử dụng một phương thức gọi là “tail chain” chophép ngắt liên tiếp được phục vụ với độ trễ chỉ có 6 chu kì xung nhịp Trong suốtgiai đoạn lưu trữ dữ liệu lên vùng nhớ stack để bắt đầu thực thi chương trình phục

vụ ngắt, một ngắt có mức ưu tiên cao hơn ngắt hiện tại có thể cạnh tranh với empt) ngắt hiện tại mà không chịu bất kì trì hoãn nào Cấu trúc ngắt cũng đi kèm vớichế độ tiết kiệm năng lượng của trong lõi Cortex-M3 CPU có thể được cấu hình tựđộng vào chế độ tiết kiệm năng lượng (standby) sau khi thoát khỏi ngắt Sau đó lõitiếp tục standby cho đến khi một exception (ngắt đặc biệt) xuất hiện

(pre-Mặc dù Cortex-M3 được thiết kế như là một lõi chi phí thấp (low cost core), nhưng

nó vẫn là một CPU 32-bit và vẫn hỗ trợ hai chế độ hoạt động: Thread và Handler,mỗi chế độ có thể được cấu hình với mỗi vùng stack riêng biệt của nó, điều này chophép thiết kế các phần mềm phức tạp và hỗ trợ các hệ điều hành thời gian thực LõiCortex có hỗ trợ một timer 24-bit tự động nạp lại giá trị, nó sẽ cung cấp một ngắt

Trang 20

Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex

Trang 10

timer đều đặn cho một nhận RTOS (Real Time Operating System) Các chip ARM7

vả ARM9 có hai tập lệnh (tập lệnh ARM 32-bit và tập lệnh Thumb 16-bit), trong khi

đó dòng Cortex được thiết kế hỗ trợ tập lệnh ARM Thumb-2, tập lệnh này được phatrộn giữa tập lệnh 16 và 32-bit, nhằm đạt được hiệu suất cao của của tập lệnh ARM32-bit với mật độ mã chương trình tối ưu của tập lệnh Thumb 16-bit Tập lệnhThumb-2 được thiết kế đặc biệt dành cho trình biên dịch C/C++, tức là các ứng dụngdựa trên nền Cortex hoàn toàn có thể được viết bằng ngôn ngữ C mà không cần đếnchương trình khởi động viết bằng assembler như ARM7 và ARM9

STM32 là một vi điều khiển tiêu thụ năng lượng thấp và đạt hiệu suất cao Nó có thểhoạt động ở điện áp 2V, chạy ở tần số 72MHz và dòng tiêu thụ chỉ có 36mA với tất

cả các khối bên trong vi điều khiển đều được hoạt động Kết hợp với các chế độ tiếtkiệm năng lượng của Cortex, STM32 chỉ tiêu thụ 2µA khi ở chế độ standby Một bộdao động nội RC 8MHz cho phép chip nhanh chóng thoát khỏi chế độ tiết kiệmnăng lượng trong khi bộ dao động ngoài đang khởi động Khả năng nhanh đi vào vàthoát khỏi các chế độ tiết kiệm năng lượng làm giảm nhiều sự tiêu thụ năng lượngtổng thể

Bộ xử lí Cortex (Cortex processor) và đơn vị xử lí trung tâm Cortex (Cortex CPU)

sẽ được sử dụng để phân biệt giữa lõi Cortex được nhúng hoàn chỉnh và bộ xử lítrung tâm RISC nội (internal RISC CPU) Bộ xử lý Cortex là thế hệ lõi nhúng kếtiếp từ ARM Cortex thừa kế các ưu điểm từ các bộ xử lí ARM trước đó, nó là mộtlõi xử lý hoàn chỉnh, bao gồm bộ xử lí trung tâm Cortex và một hệ thống các thiết bịngoại vi xung quanh, tạo thành “trái tim” của một hệ thống nhúng Bộ xử lý Cortexgồm có 3 nhánh, được biểu hiện bằng các ký tự sau tên Cortex như sau:

 Cortex-A, bộ vi xử lý dành cho hệ điều hành và các ứng dụng của ngườidùng phức tạp Hỗ trợ các tập lệnh ARM, Thumb và Thumb-2

Trang 21

 Cortex-R, bộ xử lí dành cho các hệ thống đòi hỏi khắc khe về tính thời gianthực Hỗ trợ các tập lệnh ARM, Thumb, và Thumb-2.

 Cortex-M, bộ xử lí dành cho dòng vi điều khiển, được tối ưu hóa cho cácứng dụng nhạy cảm về chi phí Chỉ hỗ trợ tập lệnh Thumb-2

Con số nằm cuối tên Cortex cho biết mức độ hiệu suất tương đối, với 1 là thấp nhất

và 8 là cao nhất Hiện nay dòng Cortex-M có mức hiệu suất cao nhất là mức 3.STM32 dựa trên bộ xử lý Cortex-M3

Hình 2.5 Kiến trúc ngoại vi Cortex-M3

STM32 có hai bộ chuyển đổi ADC, Timer, I2C, SPI, CAN, USB và RTC Tuy nhiênmỗi ngoại vi trên đều có rất nhiều đặc điểm mới như:

 Bộ ADC 12-bit có tích hợp một cảm biến nhiệt độ để tự động hiệu chỉnh khinhiệt độ thay đổi và hỗ trợ nhiều mode chuyển đổi

Trang 22

Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex

Trang 12

 Mỗi bộ timer có 4 khối Capture Compare, mỗi khối Timer có thể liên kếtvới các khối timer khác để tạo ra một mảng các timer tinh vi Một timer caocấp chuyên hỗ trợ điều khiển động cơ, với 6 đầu ra PWM với dead time lậptrình được và một đường break input sẽ buộc tín hiệu PWM sang một trạngthái an toàn đã được cài sẵn

 Ngoại vi nối tiếp SPI có một khối kiểm tổng CRC bằng phần cứng cho 8 và

16 word hỗ trợ tích cực cho giao tiếp thẻ nhớ SD hoặc MMC

 STM32 có hỗ trợ thêm 7 kênh DMA (Direct Memory Access) Mỗi kênh cóthể được dùng để truyền dữ liệu đến các thanh ghi ngoại vi hoặc từ cácthanh ghi ngoại vi đi với kích thước từ (word) dữ liệu truyền đi có thể là8/16 hoặc 32-bit Mỗi ngoại vi có thể có một bộ điều khiển DMA (DMAcontroller) đi kèm dùng để gửi hoặc đòi hỏi dữ liệu như yêu cầu Một bộphân xử bus nội (bus arbiter) và ma trận bus (bus matrix) tối thiểu hoá sựtranh chấp bus giữa truy cập dữ liệu thông qua CPU (CPU data access) vàcác kênh DMA Điều đó cho phép các đơn vị DMA hoạt động linh hoạt, dễdùng và tự động điều khiển các luồng dữ liệu bên trong vi điều khiển

Trong đó:

Giao tiếp SPI

Hỗ trợ giao tiếp tốc độ cao với các mạch tích hợp khác, STM cung cấp 2 khối điềukhiển SPI có khả năng chạy ở chế độ song công(Full duplex) với tốc độ truyền dữliệu lên tới 18MHz Khối SPI tốc độ cao nằm trên APB2, khối SPI tốc độ thấp nằmtrên APB1 Mỗi khối SPI có hệ thống thanh ghi cấu hình độc lập, dữ liệu truyền cóthể dưới dạng 8-bit hoặc 16-bit, thứ tự hỗ trợ MSB hay LSB Chúng ta có thể cấuhình mỗi khối SPI đóng vai trò master hay slave

Trang 23

Hình 2.6 Cấu trúc của SPI

Để hỗ trợ truyền dữ liệu tốc độ cao, mỗi khối SPI có 2 kênh DMA dành cho gửi vànhận dữ liệu Thêm vào đó là khối CRC dành cho cả truyền và nhận dữ liệu KhốiCRC đều có thể hỗ trợ kiểm tra CRC8 và CRC16 Các đặc tính này rất cần thiết khi

sử dụng SPI để giao tiếp với MMC/SD card

Giao tiếp USART

Mặc dù các giao diện trao đổi dữ liệu dạng nối tiếp dần dần không còn được hỗtrợtrên máy tính, chúng vẫn còn được sử dụng rất nhiều trong lĩnh vực nhúng bởi sựtiện ích và tính đơn giản STM32 có đến 3 khối USART, mỗi khối có khả năng hoạtđộng đến tốc độ 4.5Mbps Một khối USART nằm trên APB1 với xung nhịp hoạtđộng 72MHz, các khối còn lại nằm trên APB2 hoạt động ởxung nhịp 36MHz

Trang 24

Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex

Trang 14

Hình 2.7 Cấu trúc của USART

Với mạch tích hợp cho phép chia nhỏ tốc độ BAUD chuẩn thành nhiều tốc độ khácnhau thích hợp với nhiều kiểu trao đổi dữ liệu khác nhau Mỗi khối USART có haikênh DMA dành cho truyền và nhận dữ liệu Khi hỗ trợ giaotiếp dạng UART,USART cung cấp nhiều chế độ giao tiếp Có thể trao đổi dữ liệu theo kiểu chế độhafl-duplex trên đường truyền Tx Khi hỗ trợ giao tiếp modem và giao tiếp có sửdụng điều khiển luồng (hardware flow control) USART cung cấp thêm các tín hiệuđiều khiển CTS và RTS

Hình 2.8 Hỗ trợ giao tiếp ở chế độ hafl-duplex

Trang 25

Ngoài ra USART còn có thể dùng để tạo các giao tiếp nội (local interconnect bus).Đây là mô hình cho phép nhiều vi xử lý trao đổi dữ liệu lẫn nhau USART còn cókhối encoder/decoder dùng cho giao tiếp hồng ngoại với tốc độ hỗ trợ có thể đạt đến1115200bps, hoạt động ở chế độ hafl-duplex NRZ khi xung nhịp hoạt động khoảng

từ 1.4MHz cho đến 2.12Mhz Để thực hiện giao tiếp với smartcard, USART còn hỗtrợ chuẩn ISO 7618-3

Hình 2.9 Giao tiếp với smartcard và hồng ngoại

Người dùng có thể cấu hình khối USART cho các giao tiếp đồng bộ tốc độ cao dựatrên 3 đường tín hiệu riêng biệt như SPI Khi hoạt động ở chế độ này, khối USART

sẽ đóng vai trò là SPI master và có khả năng cấu hình Clock Polarity/Phase nênhoàn toàn có thể giao tiếp với các SPI slave khác

Hình 2.10 Hỗ trợ giao tiếp đồng bộ SPI

Trang 26

Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex

Trang 16

Khối DAC

Module DAC là bộ chuyển đổi-tương tự ngõ ra điện áp, 12 bit Module này có thểđược cấu hình ở chế độ 8 hay 12 bit và có thể được dùng để liên kết với DMA Ởchế độ 12 bit, dữ liệu được sắp xếp trái hay phải Bộ DAC có 2 kênh ra, mỗi kênh cómột bộ chuyển đổi riêng Ở chế độ kênh đôi, chuyển đổi có thể được thực hiện độclập hay liên tiếp khi cả 2 kênh được nhóm với nhau để cùng nhận được sự cập nhậtđồng bộ Chân ngõ vào tham chiếu VREF+ luôn sẵn sàng để có một chuyển đổi tốthơn

Chức năng chính của DAC:

 2 bộ chuyển đổi DAC: một kênh ngõ ra cho mỗi bộ

 Ngõ ra 8-bit hay 12-bit đơn

 Sắp xếp dữ liệu trái hay phải ở chế độ 12-bit

 Khả năng cập nhật đồng bộ

 Tạo ra sóng nhiễu

 Tạo sóng tam giác

 Chuyển đổi ở chế độ kênh đôi độc lập hay đồng thời

 Hỗ trợ DMA

 Ngõ vào VREF+

Trang 27

Hình 2.11 Sơ đồ khối của DAC Hình 2.11 Sơ đồ khối của DAC Hình 2.11 Sơ đồ khối của DAC

Trang 28

Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex

Trang 29

 Vi điều khiển: ARM 32 bit CORTEX M3, mã STM32F103RDT6.

3.2 Đặc Tính Kỹ Thuật Của MCU STM32F103RTD6

STM32F103RDT6 là vi điều khiển thế hệ mới nhất của dòng ARM cho hệ thốngnhúng Nó được phát triển cho nền tảng Cortex-M cần chi phí thấp, sử dụng ít chânhơn và tiêu thụ ít năng lượng hơn, trong khi cung cấp khả năng tính toán vượt trội vàmột hệ thống đáp ứng nâng cao cho ngắt VĐK này tương thích với tất cả công cụcũng như phần mềm dành cho ARM

Dung lượng Flash lên tới 512 Kbytes cho việc lưu trữ chương trình và dữ liệu

Dung lượng SRAM lên tới 64 Kbytes được truy cập ở tốc độ xung của CPU vớitrạng thái chờ 0

Khối FSMC có 4 ngõ ra Chip Select hỗ trợ những mode: PC Card/Compact Flash,SRAM, PSRAM, NOR và NAND

Trang 30

Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex

Trang 20

FSMC có thể được thiết lập để giao tiếp trơn tru với hầu hết LCD controller Nó hỗtrợ mode của Intel 8080 cà Motorola 6800, và đủ linh hoạt để giao gắp thêm mộtgiao tiếp LCD bất kì Hỗ trợ giao tiếp LCD song, có thể sử dụng controller đượcnhúng sẵn hay một controller rời

STM32F103RDT6 nhúng một controller vector ngắt, có thể xử lý tới 60 kênh ngắt

ẩn (không bao gồm trong 16 đường ngắt của CortexTM-M3) với 16 cấp độ ưu tiên

Bộ điều khiển ngắt ngoài chứa 19 đường phát hiện trạng thái (cạnh), dùng để tạo yêucầu ngắt Mỗi đường có thể được thiết lập riêng lẻ để chọn sự kiện nẩy (cạnh lên,cạnh xuống, cả hai) và có thể được ẩn một cách độc lập Một thanh ghi ở trạng tháichờ duy trì trạng thái của yêu cầu ngắt

Xung đồng hồ hệ thống được chọn lúc khởi động, tuy nhiên bộ tạo xung nội 8 Mhzđược chọn mặc định làm xung của CPU lúc reset Một xung đồng hồ ngoại từ 4-16Mhz cũng có thể được chon, trong trường hợp này nó được theo dõi xem có lỗi haykhông Nếu có lỗi, hệ thống tự động bật lại bộ tạo xung nội Một số mạch đếm tần sốcho phép thiết lập tần số AHB Tần số tối đa của AHB và miền tần số cao APB là 72Mhz Tần số tối đa cho phép của miền tần số thấp APB là 36 Mhz

Boot loader được định vị trong System Memory, Nó được dùng để tái lập trình Flashmemory bằng cách dùng USART1 Vào lúc khởi động, chọn một trong 3 chế độboot:

 Boot từ User Flash

 Boot từ System Memory

 Boot từ SRAM

VDD = 2.0 tới 3.6 V: nguồn ngoài cung cấp cho I/O và những bộ điều chỉnh nội.Cung cấp thông qua các chân VDD VSSA, VDDA = 2.0 tới 3.6 V: nguồn ngoài(analog) cung cấp cho ADC, khối Reset, RC và PLL (giá trị thấp nhất cung cấp choVDDA là 2.4V khi dùng ADC) VDDA và VSSA phải được nối riêng tới VDD và

Trang 31

VSS VBAT = 1.8 tới 3.6 V: cấp nguồn cho RTC, bộ tạo xung ngoài 32 kHz vàthanh ghi backup (thông qua công tắt nguồn) khi không có VDD.

Thiết bị này có một mạch tích hợp Power-on reset (POR)/power-down reset (PDR)

Nó luôn được kích hoạt và đảm bảo vận hành đúng đắn ở thấp hay cao hơn từ 2V.Thiết bị vẫn trong chế độ reset khi VDD thấp hơn một ngưỡng cho trước, làVPOR/PDR, mà không cần mạch reset ngoài

Thiết bị còn tích hợp một PVD (programmable voltage detector, bộ dò điện thế lậptrình được), dùng để theo dõi nguồn cung cấp VDD/VDDA và so sánh nó vớingưỡng VPVD Một ngắt có thể được tạo ra khi VDD/VDDA rơi dưới ngưỡngVPVD và/hay khi VDD/VDDA cao hơn ngưỡng VPVD Dịch vụ ngắt sau đó tạomột cảnh báo và/hay đặt MCU vào trạng thái an toàn PVD được bật bằng phầnmềm

Bộ điều chỉnh điện thế có 3 chế độ hoạt động: main (MR), low power (LPR) vàpower down MR được dùng ở chế độ Run Power down được dùng ở chế độStandby: bộ điều chỉnh ở trạng thái trở kháng cao: Mạch điện được tắt nguồn, khôngtiêu thụ năng lượng (nhưng nội dung của các thanh ghi và SRAM bị mất) Bộ điềuchỉnh này luôn được bật sau khi reset Nó được tắt ở chế độ Standby

STM32F103RDT6 hỗ trợ 3 chế độ hoạt động tiết kiệm năng lượng, nhưng cũng đápứng được việc rút ngắn thời gian khởi động và đủ nguồn để wakeup Ở chế độ Sleep,chỉ có CPU dừng hoạt động Tất cả ngoại vi vẫn hoạt động và có thể wake up CPUkhi có ngắt Chế độ Stop tiêu hao ít năng lượng nhất trong khi vẫn giữ lại nội dungcủa SRAM và các thanh ghi Tất cả xung ở miền 1.8V được dừng, PLL , HSI RC và

bộ tạo xung nhịp HSE bị khoá Bộ điều phối nguồn có thể được đặt vào cả ở chế độbình thường hay chế độ tiết kiệm năng lượng Thiết bị có thể được đánh thức từ Stopmode bằng bất kì đường EXTI Đường EXTI có thể là một trong 16 đường ngoại,ngõ ra PVD, RTC alarm hay USB wakeup

Trang 32

Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex

Trang 22

Chế độ Standby tiêu hao ít năng lượng nhất Bộ điều phối điện áp nội được tắt do đó

cả vùng 1.8V được tắt PLL, HSI RC và bộ tạo xung nhịp HSE cũng được tắt Saukhi vào chế độ Standby, SRAM và nội dung các thanh ghi bị mất ngoại trừ các thanhghi trong vùng Backup và mạch Standby

Thiết bị thoát khỏi chế độ Standby khi một tín hiệu Reset ở ngoài (chân NRST), mộttín hiệu reset IWDG, một cạnh lên từ chân WKUP hay tín hiệu báo thức của RTC

DMA với 12 kênh link hoạt cho các mục đích (7 kênh cho DMA1 và 5 kênh choDMA2) có thể quản lý truy xuất dữ liệu theo kiểu bộ nhớ-tới-bộ nhớ, ngoại vi-tới-bộnhớ và bộ nhớ-tới-ngoại vi 2 bộ điều khiển DMA hỗ trợ quản lý bộ đệm kiểu xoayvòng, không cần đến sự can thiệp của code khi các bộ điều khiển trãi ra hết bộ đệm.DMA có thể được dùng cho: SPI, I2C, USART, TIMx

RTC và thanh ghi sao lưu được cung cấp thông qua một switch lấy nguồn từ cảVDD và chân VBAT Thanh ghi sao lưu là những thanh ghi 16-bit dùng để lưu 84bytes của chương trình ứng dụng khi VDD không hiện hữu Chúng không được resetbởi một hệ thống khác hay Power reset, và không được reset khi thiết bị được đánhthức từ chế độ Standby RTC cung cấp một bộ couter chạy liên tục có thể được dùngvới một phần mềm thích hợp để cung cấp xung clock mong muốn, cung cấp mộtngắt báo thức và ngắt theo chu kỳ RTC lấy xung từ thạch anh ngoài 32768 kHz hay

từ bộ tạo xung nội năng lượng thấp

VĐK bao gồm 2 timer (điều khiển nâng cao), và tới 4 timer (cho những mục đíchthông thường), 2 timer cơ bản, 2 timer giám sát và 1 timer SysTick

Trang 33

Bảng 3.1 So sánh chức năng các Timer

STM32 có 2 giao diện I2C có thể hoạt động ở chế độ multimaster và slave Hỗ trợchế độ bình thường hay chế độ nhanh Hỗ trợ chế độ định địa chỉ 7/10-bit và chế độđịnh địa chỉ đôi 7-bit (slave Hỗ trợ CRC từ phần cứng Có thể được phục vụ bởiDMA

VĐK nhúng 3 USART (synchronous/asynchronous receiver transmitters) làUSART1, USART2 và USART3 và 2 UART (universal asynchronous receivertransmitters) là UART4 và UART5 Năm giao diện này cung cấp giao tiếp bất đồng

bộ, IrDA SIR ENDEC, chế độ giao tiếp đa bộ vi xử lý, bán song công 1 dây và cókhả năng LIN Master/Slave Giao diện USART1 có thể giao tiếp ở tốc độ lên tới 4.5Mbit/s, những giao tiếp khác ở tốc độ tới 2.25 Mbit/s USART1, USART2 vàUSART3 còn cho phép quản lý phần cứng tín hiệu CTS và RTS, chế độ Smart Card

và SPI Tất cả đều đươc DMA phục vụ ngoại trừ UART5

Hỗ trợ 3 giao diện ngoại vi nối tiếp Serial peripheral interface (SPI) có thể giao tiếp

ở tốc độ lên tới 18 Mbits/s ở chế độ slave hay master, song công và đơn công Bộchia tần số (prescaler) 3 bit cung cấp 8 chế độ tần số master và frame có thể đượccấu hình 8 bit hay 16 bit Bộ kiểm tra/tạo CRC hỗ trợ chế độ basic SD Card/MMC.Tất cả SPI đều có thể được DMA controller phục vụ

Bảng 3.1 So sánh chức năng các Timer

STM32 có 2 giao diện I2C có thể hoạt động ở chế độ multimaster và slave Hỗ trợchế độ bình thường hay chế độ nhanh Hỗ trợ chế độ định địa chỉ 7/10-bit và chế độđịnh địa chỉ đôi 7-bit (slave Hỗ trợ CRC từ phần cứng Có thể được phục vụ bởiDMA

VĐK nhúng 3 USART (synchronous/asynchronous receiver transmitters) làUSART1, USART2 và USART3 và 2 UART (universal asynchronous receivertransmitters) là UART4 và UART5 Năm giao diện này cung cấp giao tiếp bất đồng

bộ, IrDA SIR ENDEC, chế độ giao tiếp đa bộ vi xử lý, bán song công 1 dây và cókhả năng LIN Master/Slave Giao diện USART1 có thể giao tiếp ở tốc độ lên tới 4.5Mbit/s, những giao tiếp khác ở tốc độ tới 2.25 Mbit/s USART1, USART2 vàUSART3 còn cho phép quản lý phần cứng tín hiệu CTS và RTS, chế độ Smart Card

và SPI Tất cả đều đươc DMA phục vụ ngoại trừ UART5

Hỗ trợ 3 giao diện ngoại vi nối tiếp Serial peripheral interface (SPI) có thể giao tiếp

ở tốc độ lên tới 18 Mbits/s ở chế độ slave hay master, song công và đơn công Bộchia tần số (prescaler) 3 bit cung cấp 8 chế độ tần số master và frame có thể đượccấu hình 8 bit hay 16 bit Bộ kiểm tra/tạo CRC hỗ trợ chế độ basic SD Card/MMC.Tất cả SPI đều có thể được DMA controller phục vụ

Bảng 3.1 So sánh chức năng các Timer

STM32 có 2 giao diện I2C có thể hoạt động ở chế độ multimaster và slave Hỗ trợchế độ bình thường hay chế độ nhanh Hỗ trợ chế độ định địa chỉ 7/10-bit và chế độđịnh địa chỉ đôi 7-bit (slave Hỗ trợ CRC từ phần cứng Có thể được phục vụ bởiDMA

VĐK nhúng 3 USART (synchronous/asynchronous receiver transmitters) làUSART1, USART2 và USART3 và 2 UART (universal asynchronous receivertransmitters) là UART4 và UART5 Năm giao diện này cung cấp giao tiếp bất đồng

bộ, IrDA SIR ENDEC, chế độ giao tiếp đa bộ vi xử lý, bán song công 1 dây và cókhả năng LIN Master/Slave Giao diện USART1 có thể giao tiếp ở tốc độ lên tới 4.5Mbit/s, những giao tiếp khác ở tốc độ tới 2.25 Mbit/s USART1, USART2 vàUSART3 còn cho phép quản lý phần cứng tín hiệu CTS và RTS, chế độ Smart Card

và SPI Tất cả đều đươc DMA phục vụ ngoại trừ UART5

Hỗ trợ 3 giao diện ngoại vi nối tiếp Serial peripheral interface (SPI) có thể giao tiếp

ở tốc độ lên tới 18 Mbits/s ở chế độ slave hay master, song công và đơn công Bộchia tần số (prescaler) 3 bit cung cấp 8 chế độ tần số master và frame có thể đượccấu hình 8 bit hay 16 bit Bộ kiểm tra/tạo CRC hỗ trợ chế độ basic SD Card/MMC.Tất cả SPI đều có thể được DMA controller phục vụ

Ngày đăng: 04/09/2016, 14:47

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w