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 1THÀ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 2BỘ 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 3NGƯỜ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 4Xâ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 54.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 6Xâ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 7Hì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 8Xây dựng các bài thí nghiệm trên hệ thống nhúng ARM Cortex
Trang 9THÔ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 10Xâ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 11kỹ 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 12Xâ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 13Chươ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 14Xâ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 15Instruction 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 16Xâ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 17phé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 18Xâ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 19củ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 20Xâ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 22Xâ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 23Hì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 24Xâ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 25Ngoà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 26Xâ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 27Hì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 28Xâ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 30Xâ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 31VSS 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 32Xâ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 33Bả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ụ