DANH MỤC CÁC TỪ VIẾT TAT BLE Bluetooth Low Energy Tiết kiệm năng lượng Hệ thông bus truyền thông được thiết kế để CAN Controller Area Network | cho phép cac thiét bị và hệ thong điện tử
Trang 1TRUONG DAI HQC CONG NGHE THONG TIN VA TRUYEN THONG
KHOA CONG NGHE THONG TIN
TRINH XUAN MINH
THIET KE MO HINH DIEU KHIEN DEN GIAO THONG
SU DUNG KIT STM32
BAO CAO THUC TAP
NGANH CONG NGHE KY THUAT MAY TINH
THAI NGUYEN - 2024
Trang 2TRUONG DAI HQC CONG NGHE THONG TIN VA TRUYEN THONG
KHOA CONG NGHE THONG TIN
k)›đó8ôâœ42
BAO CAO THUC TAP CHUYEN NGANH
NGÀNH CễNG NGHỆ KỸ THUẬT MÁY TÍNH
THIET KE MO HINH DIEU KHIEN DEN GIAO THONG SU
Trang 3MỤC LỤC MỤC LỤC
DANH MỤC HÌNH ẢNH
LỜI MỞ ĐẦU
CHUONG |: TONG QUAN VE VI DIEU KHIEN ARM CORTEX
1.1 Giới thiệu về lõi Cortex ARM
1.1.1 Quá trình hình thành
1.1.2 Các kiến trúc lõi Cortex ARM
1.2 Cac dong chip sử dụng lối ARM Cortex
1.3 Các thanh phi của vi xu ly 161 ARM Cortex
1.4 Ngắt NVIC của vi điều khién 16i ARM Cortex
1.5 So sanh ARM Cortex M1, M2 M3, M4
CHƯƠNG 2: CÂU TRÚC PHẢN CỨNG KÍT STM32
2.1 Mô tả bài toán điều khiển đèn giao thông dùng STM32
2.2 Gidi thiéu vé dong kit STM32 FO Discovery
2.2.1 Phần cứng và bố tri kit
2.2.2 Chức năng các khối trong kít STM32F0 Discovery
2.2.3 Các thông số kỹ thuật trên kít STM32F0 Discovery
2.2.4 Sơ đỗ các khối chức năng chính
2.3 Thư viện ngoại v1 của 5TM32
2.3 Kỹ thuật viết driver cho ngoại vi
2.3.1 Khai báo các hằng số và cấu trúc ngoại vi
2.3.2 Kỹ thuật che bít và thiết lập bít
2.4 Một số thanh ghi thường dùng của module GPIO
2.4.1 Thanh ghi GPIOx _MODER
2.4.2 Thanh ghi GPIOx_OTYPER
2.4.3 Thanh ghi GPIOx_OSPEED
2.4.4 Thanh ghi GPIOx_ PUPDR
2.4.5 Thanh ghi GPIOx_ IDR
2.4.6 Thanh ghi GPIOx_ODR
Trang 42.4.7 Thanh ghi thiết lập/xóa bít GPIOx_BSRR
2.4.8 Thanh ghi chuyển đsi chức năng byte thấp (GPIOx_AFRL)
2.4.9 Thanh phi chuyển đsi chức năng byte thấp (GPIOx_AFRH)
CHƯƠNG 3: XÂY DỰNG MÔ HÌNH ĐÈN GIAO THÔNG
3.1 Mô tả bài toán
Trang 5DANH MỤC HÌNH ẢNH Hinh 1.1 Sơ đồ khối vi xử lý ARM Cortex-M4
Hình 1.2 Cac Thanh Ghi cua vi xu ly 161 ARM Cortex
Hình 1.3 Sơ đồ khối NVIC trong vi điều khién 16i ARM Cortex
Hình 1.4 Thanh ghi NVIC_ISER
Hinh 1.5 Thanh ghi NVIC_ICER
Hinh 1.6 Thanh ghi NVIC_PRI
Hinh 2.1 Hinh anh kit STM32F051R8T6-Discovery
Hình 2.7 Thông số kỹ thuật cua kit STM32F0
Hinh 2.8 Các khối chức năng trên kít STM32F0308 Discovery
Hinh 2.9 Định nghĩa địa chị bộ nhớ cho các ngoại v1
Hình 2.10 Bản đồ bộ nhớ KIT STM32F0xx
Hình 2.11 Định nghĩa cầu trúc RCC tương ứng với mỗi ngoại vi RCC
Hình 2.12 Định nghĩa cấu trúc con trỏ trỏ đến vùng nhớ của ngoại ví
Hình 2.13 Thanh ghi RCC_CFGRI
Hình 2.14 Thanh ghi GPIOx_MODER
Hình 2.15 Thanh ghi GPIOx_OTYPER
Hình 2.16 Thanh ghi GPIOx_OSPEED
Hình 2.17 Thanh ghi GPIOx_PUPDR
Hinh 2.18 Thanh ghi GPIOx_ IDR
Hinh 2.19 Thanh ghi GPIOx_ODR
Hinh 2.20 Thanh ghi GPIOx_BSRR
Hinh 2.21 Thanh ghi GPIO_AFRL
Hinh 2.22 Thanh ghi GPIO_AFRL
Hinh 3.1 Hinh anh board STM32F051R8 - Discovery
Trang 6Hình 3.2 Sơ đồ khối dự án đèn giao thông
Hình 3.3 Lưu đồ thuật dự án toán đèn giao thong
Hình 3.4 Sơ đồ nguyên lý
39
40
42
Trang 7DANH MỤC CÁC TỪ VIẾT TAT
BLE Bluetooth Low Energy Tiết kiệm năng lượng
Hệ thông bus truyền thông được thiết kế để CAN Controller Area Network | cho phép cac thiét bị và
hệ thong điện tử trao dsi
đữ liệu Kết nỗi qua internet hoặc
mạng nội bộ, tạo thành loT Internet of Things một mạng lưới liên kết
liên tục
Điều khiến tự động mà
MCU Microcontroller Unit không cần sự can thiệp
Nested Vectored NVIC Interrupt Controller Nhiệm vụ quản lý ngắt
Cho phép kết nỗi và USB Universal Serial Bus truyén dữ liệu p1ữa các thiết bị
Trang 8
LỜI MỞ ĐẦU
Ngày nay, với sự phát triển nhanh chóng của công nghệ, các thiết bị điện tử
đã trở thành công cụ thiết yếu, giúp cải thiện năng suất lao động Hệ thống mạch điện tử bên trong các thiết bị này ngày càng phức tạp, yêu cầu sự hỗ trợ của các vi điêu khiên mạnh mẽ với nhiêu tính năng hơn
Lập trình nhúng vi điều khiển là một công việc đòi hỏi rất nhiều kiến thức
chuyên môn kỹ thuật cao Cùng với sự phát triển rất nhanh của công nghệ ngày nay, các hệ thống nhúng có sử dụng hệ vi điều khiến họ Cortex ARM ngày càng trở lên phs biến, thông dụng Chính vì vậy, việc nghiên cứu và học tập về các kiến thức liên quan trone lĩnh vực này sẽ đem lại nhiều cơ hội việc làm cho các kỹ sư lập trinh nhúng và đồng thời nâng cao trình độ kỹ thuật của các kỹ sư Việt Nam so với mặt bằng chung của thế giới
Trong bối cảnh đó, việc nghiên cửu và học tập về vi điều khiển là rất quan trọng đối với kỹ sư kỹ thuật máy tính Vi điều khiển STM32, sử dụng lõi Cortex-
ARM, hiện chiếm phần lớn thị phần trong hệ thống nhúng Vì vậy, em đã chọn đề tài “Thiết kế mô hình điều khiến đèn giao thông sử dụng kít STM32” để thực hiện
báo cáo thực tập, nhằm ứng dụng kiến thức đã học vào thực tiễn
Trang 9CHUONG 1: TONG QUAN VE VI DIEU KHIEN ARM CORTEX Cùng với sự phát triển của khoa học kỹ thuật, đặc biệt là sự phát triển của
ngành công nghiệp bán dẫn, các chíp vi điều khiển ngày cảng trở lên mạnh mẽ về
tốc độ, khả năng lưu trữ dữ liệu cũng như các khối chức năng được tích hợp sẵn bên trong nó
Ngày nay, có rất nhiều dòng vi điều khiến được ra đời, mỗi loại có những tính năng khác nhau đi kèm với những ưu nhược điểm khác nhau về giá cả, tốc độ
xử lý, giới hạn bộ nhớ, Tuy nhiên, có một dòng vi điều khiển cực kì phs biến và
chiếm tới hơn 70% thị phần hệ thống nhúng trên thế giới hiện nay, đó là dong vi
điều khiến dựa trên lõi Cortex ARM Chương này sẽ trình bày về các đặc điểm, tính năng của lõi Cortex ARM
1.1 Giới thiệu về lõi Cortex ARM
1.1.1 Quả trình hình thành
Đề sản xuất ra một con chip, các nhà sản xuất phải nghiên cứu và thiết kế ra một kiến trúc cho nó, sau đó cần tốn một khoảng thời gian để sản xuất và kiêm tra thiết kế của minh, tiếp đến họ cần tốn rất nhiều chỉ phí cho việc xây dựng nhà máy
để sản xuất Từ khâu nghiên cứu, thiết kế, kiểm thử tới sản xuất hàng loạt tốn rất nhiều thời gian đi kèm với đó là công sức và chi phi, hơn nữa ngành này có tính cạnh tranh rất cao với nhiều thương hiệu nsi tiếng trên thế giới Chính vì vậy hãng Arm Holding đã quyết định không đi theo con đường sản xuất chip day rui ro nay, thay vào đó hãng Arm Holding đã quyết định thiết kế và bán những bản thiết kế của mình cho các nhà sản xuất khác
Đề có cái nhìn chỉ tiết hơn về sản phẩm của hãng Arm Holding, người dùng cần phân biệt được ba khái niệm cơ bản và đặc biệt quan trọng là Processor Core (lõi vi xử lý), Processor (vi xtr ly) va Microcontroller (vi điều khiến) Những thuật
ngữ này thường xuyên được nhắc đến vả sẽ dẫn đến rất nhiều sự nhầm lẫn nếu
người dùng không phân biệt được chúng và sử dụng không đúng mục dich
Đề phân biệt được Processor Core (lõi vi xử lý) và Processor (vi xử lý) người dùng có thé xem chi tiét trong các tài liệu chính gốc của nhà sản xuất chip Ở đây có
Trang 10thê lấy hình ảnh sơ đồ khối của vi xử lý ARM Cortex M4 trong tai ligu ARM® Cortex®— M4 Processor Technical Reference Manual lam vi dụ minh hoa
Bồ điêu khiên Đơn vi dấu (ETM)
Điểm dừng ° 8 Don vi bao ve ~ 4 Diem theo dõi ` làm
sửa đổi trong bộ nhớ và truy vet d&
bộ nhớ Flash MPU liệu
(FPB) (MPU) (DWT)
J | t | Đơn vi giao
diễn công : : —> (TPIU)
Công Debug Công truy cập Vi mạch theo
Serial-wire AHB t—} Ma tran Bus lá dỗ: công cụ
hoặc JTAG (AHB-AP) (ITM)
4 f + Giao diện công
| | truy vet Giao diễn { 4; v
Debug Serial-wire Giao diện 3 2„ „«~ Giao diện é -
hoặc JTAS lênh AHB-Lite Cao it old théng liệu AHB-Lite Bang ROM Coresight Giao diện v
ICODE DCode AHB-Lite g 2
System he thong
Debug PPB APB
Hình 1.1 Sơ đô khối vi xứ lý ARM Cortex-M4
Trong hình trên, có thể thấy bên trong vi xử lý (Cortex-M4 processor) bao
gồm 1 Processor core (Cortex-M4 core) vả nhiều ngoại vi chuyên dụng xung quanh
như NVIC (bộ quản lý ngắt), Flash Patch Breakpoint(điểm dừng sửa đsi Flash), Memory protection(bảo vệ bộ nhớ), Bus matrix(ma trận bus), Trong vị xử ly
ARM Cortex-M4 này có một lõi vi xử lý là Cortex-M4 core, một vi xử lý có thể có
một hoặc nhiều lõi (core), lõi chính là nơi chứa các bộ giải mã, thực thị lệnh,
Vi xử lý Cortex M4 processor được thiết kế bởi Arm Holdine và được bán cho các nhà sản xuất vi điều khiến khác nhau trên thế giới như STMicroelectronic, Texas Instruments, NXP, Microchip, Cac ban thiét ké nay duoc Arm Holding đóng gói thành các IP Cores, nó là các giấy phép được dùng để tạo ra các MCUs, CPUs, Systems-on-chip dya trén cac cores cua họ Các nhà sản xuat vi diéu khién nay sẽ tích hợp nguyên lý thiết kế vi xtr ly cua Arm Holding vao vi điều khiển của
8
Trang 11họ sau đó thêm vào các ngoại vĩ như UART, GPIO, USB, ADC, DMA, và đóng gói lại thành một con vi điều khiển đề bán ra thị trường
Có thể thấy, các nhà sản xuất vi điều khiến đã tiết kiệm được rất nhiều thời gian và công sức đề sản xuất từ đó tiết kiệm được chi phí khi sử dụng các bản thiết
kế vi xử lý ARM
1.1.2 Các kiến trúc lõi Corfex ARM
ARM (viết tắt của từ Advance RISC Machine) là bộ vi xử lý dựa trên kiến
trúc RISC được phát triển bởi Arm Holdings, Ltd Co rất nhiều kiến trúc khác nhau
và được ứng dụng để xây dựng các đại lõi khác nhau được sản xuất bởi ARM:
Kiến trúc Cortex-A: là kiến trúc hiệu năng với chữ A thể hiện khả năng
tương thích ứng dụng Các sản pham thường dùng dòng chip có kiến trúc này là điện thoại, máy tính bảng, tivi,
Kiến trúc Cortex-R: cung cấp các giải pháp tính toán hiệu năng cao cho các
hệ thống nhúng với độ bảo mật, tính sẵn sàng cao cùng khả năng đáp ứng thời gian thực
Kiến trúc Cortex-M: là một dạng thu nhỏ, phù hợp với không gian chật hẹp như các hệ thông điều khiển và phanh trên ô tô, máy ảnh kỹ thuật số hay các sản phẩm IoT
1.2 Cac dong chip sử dụng lõi ARM Cortex
Hiện nay, trên thị trường có rất nhiều dòng chip sử dụng lõi ARM Cortex, có thê liệt
kê một số dòng chip phs biến được sử dụng theo các hãng sản xuất như sau:
Hang STMicroelectronic:
STM32F0: Dong MCU Cortex-M0 với giá thành thấp, tiêu thụ năng lượng thấp và hiệu suất vừa phải
STM32F 1: Dong MCU Cortex-M3 với hiệu suất và tính năng mở rộng hơn
so với Cortex-M0, phủ hợp cho các ứng dụng nhúng đỏi hỏi tính linh hoạt cao
STM32F3: Dòng MCU Cortex-M4F với các tính năng đặc biệt cho điều
khiển động cơ và các ứng dụng đa cảm biến
5 TM32F4: Dòng MCU Cortex-M4F với DSP và FPU, phủ hợp cho các ứng dụng đòi hỏi xử lý tín hiệu mạnh mẽ như âm thanh và hình ảnh
Trang 12STM32F7: Dòng MCU Cortex-M7 với hiệu suất cao và các tính năng nâng cao cho các ứng dụng yêu cầu xử lý mạnh mẽ và thời gian thực
STM32L0: Dòng MCU Cortex-M0+ tối ưu hóa cho tiết kiệm năng lượng và tính năng bảo mật, phù hợp cho các ứng dụng IoT và thiết bị đeo
STM32L4: Dòng MCU Cortex-M4F với hiệu suất cao và tiêu thụ năng lượng thấp, phù hợp cho các ứng dụng di động và y tế
STM32H7: Dòng MCU Cortex-M7 với hiệu suất và tính năng cao cấp như FMC, Ethernet, va LCD-TFT controller, phi hop cho cac tng dung yéu cau tinh linh hoạt và hiệu suất cao
Kinetis K: Dòng MCU Cortex-M4F với hiệu suất cao và các tính năng bảo mật, phù hợp cho các ứng dụng loT và công nghiệp
IMX RT1050/1060/1170: Dòng MCU Cortex-M7 với hiệu suất cao và khả
năng đáp ứng nhanh, phù hợp cho các ứng dụng đòi hỏi xử lý tín hiệu mạnh mẽ và
đáp ứng thoi gian thực
LPC55S6x/7x: Dong MCU Cortex-M33 với Enhanced TrustZone và tính
năng bảo mật cao, phù hợp cho các ứng dụng an toàn va dang tin cay
Hãng Texas Instrumen((TT):
10
Trang 13SimpleLink MSP432: Dong MCU Cortex-M4F véi tính năng tiết kiệm năng lượng và tích hợp cảm biến, phù hợp cho các ứng dụng IoT, wearable và thiết bị di động
SimpleLink CC32xx: Dong MCU Cortex-M4F với khả năng kết nối mạng không dây (wifi), phù hợp cho các ứng dụng IoT kết nỗi mạng
SimpleLink CC13xx/CC26xx: Dong MCU Cortex-M4F với kết nối
Bluetooth tiết kiệm nang lwong (BLE) va Zigbee tích hợp, phù hợp cho các ứng dụng loT không dây
Tiva C Series TM4C123G: Dong MCU Cortex-M4F voi các tính năng nâng cao nhu USB, Ethernet, va CAN, phu hop cho các tng dung céng nghiép va IoT
Tiva C Series TM4C129x: Dong MCU Cortex-M4F voi két néi Ethernet tich
hợp, phù hợp cho các ứng dụng mạng và điều khiến
Hercules RM57Lx: Dong MCU Cortex-R5F véi tinh nang bao mat va dang tin cậy cao, phù hợp cho các ứng dụng an toàn như ô tô và y tế
SItara AM335x: Dòng MCU Cortex-A8 với hiệu suất cao và tính năng ổa phương tiện, phù hợp cho các ứng dụng điều khiển máy móc và nhúng đa phương tiện
1.3 Các thanh ghi của vi xử lý lõi ARM Cortex
{ RO
Thanh ghi thập
Thanh ghi tong quat
Thanh ghi cao
Trang 14Các thanh ghi từ R0 đến R12 (13 thanh ghi) là những thanh ghi được sử dụng với nhiều mục đích chung như lưu trữ đữ liệu của các phép tính toán, lưu trữ địa chỉ Tất cả những thanh ghi này đều có độ rộng 32bit
Thanh ghi R13 được gọi là con trỏ ngăn xếp (SP) Thanh ghi này được sử
dụng để theo dõi bộ nhớ ngăn xếp Bên cạnh thanh ghi R13, có thêm 2 thanh ghi
nữa được chỉ ra trên hình là PSP (Con trỏ ngăn xếp bộ xử lý) và MSP (Con trỏ ngăn xếp chính), những thanh ghi này được gọi là Banked version ofSP
Thanh phi R14 được gọi là Link Register (LR) Thanh ghi này lưu thông tin
của subroutines, function call va exceptions
Thanh ghi R15 là thanh ghi Program Counter(PC) Thanh ghi này chứa địa
chỉ câu lệnh sẽ được thực thị Khi reset, vi xử lý sẽ nạp thanh ghi PC voi gia tri reset
là 0x00000004
Ngoài các thanh ghi được sử dụng với nhiều mục đích chung (R0-R12), SP,
LR, PC thi vi xu ly ARM Cortex-M4 còn có 5 thanh ghi đặc biệt Trong đó, thanh ghi trạng thái chương trình (PSR) bao gồm các bít cung cấp thông tin trạng thái của chương trình ứng dụng với các co N,Z,C,V,Q, chương trình ngắt và các thanh ghi
liên quan đến ngăn xếp của vi xử lý
1.4 Ngắt NVIC của vi điều khiển lõi ARM Cortex
NVIC (Nested Vector Interrupt Controller) là một khối bên trong lõi ARM Cortex có nhiệm vụ quản lý ngắt
Khi một sự kiện xảy ra và sự kiện có được cầu hình có thể sinh ra ngắt thì tín hiệu ngắt sẽ được truyền tới khối NVIC để quyết định quá trình xử lý ngắt NVIC
hỗ trợ cơ chế ngắt lồng ngắt, tức là tại cũng một thời điểm có nhiều tín hiệu ngắt xảy ra và được gửi đến NVIC, NVIC sẽ dựa vào độ ưu tiên của mỗi ngắt và quyết định ngắt nao sé được thực thị trước bởi CPU Sau khi thực hiện xong ngắt có độ ưu tiên cao NVIC nhất, ngắt có độ ưu tiên tiếp theo sẽ được xử lý Nếu một ngắt có độ
ưu tiên thấp đang được được thi, hệ thống gửi tới một tín hiệu ngắt có độ ưu tiên cao hơn thì CPU sẽ dừng thực thi ngắt hiện tại, chuyền qua phục vụ ngắt có độ ưu tiên cao hơn, khi xử lý xong ngắt có độ ưu tiên cao rồi mới quay lại xử lý nốt ngắt
cũ đang xử lý trước đó
12
Trang 15
NGẮTIC2 ——>——>
NGAT DMA —_,~ A NGẮT UART —————> B Q -
8 DIEL
°
NGAT CAN 24} 1-277 NGAT TIMER —————> TT
ra thì sự kiện nhắn nút sẽ sinh ra một ngắt ở ngoại vi GPIO, ngoại vị này sé gui tin hiệu ngắt tới khối NVIC, nếu NVIC được cấu hình cho phép nhận ngắt từ ngoại vi GPIO thì NVIC sẽ gửi tín hiệu yêu cầu phục vụ ngắt tới CPU, nếu CPU cho phép ngat thi ngắt này sẽ được xử lý, nếu CPU không cho phép ngắt thi bat ky tin hiệu noắt nào sinh ra đều sẽ không được xử lý và bị bỏ qua
Cấu hình ngắt trong NVIC NVIC là một ngoại vi của lõi ARM Cortex-M4, nó có tên đầy đủ là Nested Vector Interrupt Đây là ngoại vi phục vụ việc nhận các tín hiệu ngắt tr ngoal truyén tới và phân loại, sắp xếp theo thứ tự độ ưu tiên sau đó gửi tín hiệu yêu cầu phục vụ ngắt tới CPU
Một số thanh ghi trong khối NVIC gồm:
Thanh ghi NVIC_ISER
Trang 16Thanh ghi này dùng để cài đặt cho phép ngắt từ ngoại ví nào có thể được phục vụ, nếu muốn ngắt từ ngoại vi được gửi tới CPU, bít tương ứng trong thanh ghi này cần được bật lên Nếu không, dù có tín hiệu ngắt sinh ra từ ngoại ví như (USART, GPIO, TIMER, ) thì tín hiệu ngắt đó cũng sẽ không được truyền tới CPU và ngắt đó sẽ không được phục vụ, xử lý
Thanh ghi NVIC_ICER
Thanh ghi NVIC_PRI
31 24 23 16 15 8 7 0 IPR59 PRI_239 PRI_238 PRI_237 PRI_236
IPRn PRI_4n+3 PRI_4n+2 PRI_4n+1 PRI_4n
IPRO PRI_3 PRI_2 PRI_1 PRI_0
Hinh 1.6 Thanh ghi NVIC_PRI Thanh ghi này được dùng để cài đặt độ ưu tiên cho tín hiệu ngắt Nếu một ngắt có độ ưu tiên thấp đang được xử lý mà một ngắt khác có độ ưu tiên cao hơn được gửi đến, CPU sẽ tạm dừng xử lý chương trình phục vụ ngắt hiện tại và chuyển qua xử lý ngắt có độ ưu tiên cao hơn trước sau đó mới quay lại xử lý công việc hiện tại Nếu hai tín hiệu ngắt cùng xảy ra đồng thời, tín hiệu ngắt có độ ưu tiên cao hơn
sẽ được xử lý trước
14
Trang 171.5 So sanh ARM Cortex M1, M2 M3, M4
Việc so sánh các dong vi xử ly Arm Cortex-M là một nhiệm vụ phức tap, vi mỗi dòng được thiết kế để phù hợp với các ứng dụng cụ thể và yêu cầu hiệu
suất/kích thước khác nhau Dưới đây là một số thông tin tsng quan về các dòng
Arm Cortex-M:
Arm Cortex-M0/M0~+: Cortex-M0 là dòng vi xử lý có hiệu suất thấp, tiêu thụ
điện năng thấp nhất tron họ Cortex-M Cortex-M0+ có hiệu suất cao hơn so với Cortex-M0 và được thiết kế đề tiết kiệm năng lượng hơn nữa
15
Trang 18CHƯƠNG 2: CẤU TRÚC PHẢN CỨNG KÍT STM32
2.1 Mô tả bài toán điều khiển đèn giao thông dùng STM32
Bài toán điều khiển đèn giao thông dùng STM32F0 là một ứng dụng thường gặp trong các hệ thống nhúng, yêu cầu lập trình để mô phỏng hoạt động của đèn giao thông (đỏ, vàng, xanh) đựa trên các quy tắc và thời gian định sẵn Đây là mô tả bài toán:
M6 ta bai toán:
Hệ thông đèn giao thông có ba đèn: Đèn xanh (cho phép xe đi); Đèn vàng (cảnh báo chuẩn bị chuyên đs¡); Đèn đỏ (yêu cầu dừng)
Yêu cầu chức năng:
Chu kỳ điều khiển đèn giao thông: Đèn đỏ sáng trong 10 giây Đèn vàng
sáng trong 3 giây Đèn xanh sáng trong 7 giây Lặp lai chu kỳ sau khi đèn xanh tat Hién thị trạng thái:`Đèn LED hoặc các chân GPIO của STM32F0 sẽ điều
khiển các đèn xanh, vàng, đỏ
2.2 Giới thiệu về dòng kit STM32 F0 Discovery
Kit STM32FODISCOVERY gitp ban kham pha cac tinh nang STM32F0 Cortex™-MO va dé phat trién cac tng dung mét cach dé dang STM32F051R8T6 được sử dụng trên kít, một dòng vi điều khiển STM32 FO 32-bit ARM® Cortex™
va bao gom mot cong cu gd lỗi ST-LINK/V2, đèn LED, nut bam va mét board mau
16
Trang 19Vi điều khiển STM32F051R8T6 gồm 64KB Flash, 8 MB bộ nhớ RAM trong
một g61 LQFP64
On-board ST-LINK/V2 véi ché độ lựa chọn chuyén sang sử dụng các bộ
như một độc ST-LINK/V2 (với kết nối SWD cho lập trình và gỡ lỗi)
Board cung cấp điện: bus thông qua USB hoặc từ một nguồn cung cấp điện
áp 5 V cung cấp điện bên ngoải ứng dụng bên ngoài: 3 V và 5 V
Bốn đèn LED: LDI (mau đỏ) cho 3,3 V điện vào LD2 (màu đỏ / xanh lá
cây) để giao tiếp USB LD3 (màu xanh) cho sản lượng PC9 LD4 (màu xanh) cho đầu ra PC8
bs sung được cung cấp có thể được kết nối với csnø mở rộng cho mẫu dễ dàng hơn
và thăm dò
17
Trang 202.2.1 Phần cứng và bố trí kít
STM32F0DISCOVERY được thiết kế trên vi điều khiển STM32F051R8T6
bao gồm LQFP 64-pin
Hình 2.2 minh họa các kết nỗi piữa các thiết bị ngoại vi của nó và
STM32F030R8T6 (ST- LINK/V2, nút bắm, đèn LED và kết nối)
Hình 2.3 và hình 2.4 giúp bạn xác định vị trí các tính năng trên
STM32FODISCOVERY
Hình 2.2 Sơ đồ khối phân cứng
Vi điều khiển ARM STM32F051R8T6 kết hợp hiệu suất cao Cortex - M0 32-bit RISC lõi hoạt động ở một tần số 48KHz, tốc độ cao kỷ lục (lên đến 64
18
Trang 21Kbytes bộ nhớ Flash và lên dén 8 KB SRAM ), và một loạt các thiết bị ngoại vị và Ï /O Tất cả các thiết bị cung cấp tiêu chuẩn giao điện truyền thông (lên đến hai
I2Cs , lên đến hai SPIs , và lên đến hai USARTs ), 12-bít ADC, lên đến 6 mục đích chung giờ 16 bít và một bộ đếm thời gian PWM tiên tiễn kiểm soát
Vi điều khiến STM32F051R8T6 hoạt động trong khoảng nhiệt độ từ - 40 đến
85 °C nhiệt độ, từ 2,4 V đến 3,6 V cung cấp điện Một tập hợp toàn diện các chế độ tiết kiệm năng lượng cho phép thiết kế các ứng dụng năng lượng thấp
green LED) LD3 tr | @| Pas
: ; pant LD4 (blue LED)
Trang 22Xi 2 cai wast) : —®#——— S820, S821 (X3 eryetal)
Những tính năng này làm cho các vi điều khiến STM32F051R&T6 thích hợp
cho một loạt các ứng dụng như kiêm soát ứng dụng và người sử dụng giao diện, thiết bị cầm tay, A / V thu và truyền hình kỹ thuật số, thiết bị ngoại vi máy tính , nên tảng chơi game, xe đạp điện, thiết bị tiêu đùng, máy in, máy quét, báo động hệ thống, hệ thống liên lạc video, và HVACs
Các chương trình và gỡ lỗi công cụ ST-LINK/V2 được tích hợp trên 32F051
DISCOVERY Cac 5T-LINK/V2 nhúng có thể được sử dụng theo 2 cách khác nhau tủy theo các nước
« Chương trình / gỡ lỗi MCU trên ST-Link trên kit
« Chương trình / gỡ lỗi một MCU trong mạch nạp chương trình ứng dụng bên ngoài bằng cách sử dụng một cáp kết nối với kết nỗi SWD CN3
Các ST-LINK/V2 nhúng chỉ hỗ trợ cho các thiết bị SWD STM32 Đề biết
thông tin về việc gỡ lỗi và lập trình các tính năng tham khảo hướng dẫn sử dụng UM1075 (ST-LINK/V2 trong mach debugger / lập trình cho STMS§ và STM32)
trong đó mô tả chỉ tiết tất cả các tính năng ST-LINK/V2
2.2.2 Chức năng các khối trong kit STM32F0 Discovery
Su dung ST-LINK/V2 nap chuong trinh cho kit STM32F0
Dé nap chương trình cho kít STM32F051 Discovery ta cần cắm vào hai
jumper trén CN2 như hình dưới day:
20
Trang 234 SWDIO SWD data input/output
5 NRST RESET of target MCU
21
Trang 24và 3V khi nguồn được cung cấp từ bên ngoài
Nguồn 5V và 3V có thể được sử dụng như nguồn cung cấp điện đầu ra cho các ứng dụng được kết nỗi với chân P1 và P2
Nguồn 5V cũng có thê được sử dụng như là nguồn cung cấp năng lượng đầu
vao, ví dụ, khi kết nỗi USB không được kết nối với máy PC Trong trường hợp này,
SIM32F051 DISCOVERY phải được hỗ trợ bởi một đơn vị cung cấp điện hoặc thiết bị phụ trợ tuân thủ các tiêu chuẩn EN-60.950-1: 2006 + A11/2009, và phải được an toàn điện áp với khả năng hạn chế
VDD =2,0-3,6 V: nguồn điện bên ngoài cho I / O, cung cấp bên ngoài thông qua VDD chân
VDDA = 2,0-3,6 V: bên ngoài cung cấp điện tương tự cho ADC, cải đặt lại
các khối, RCS và PLL (điện áp tối thiểu được áp dụng cho VDDA là 2,4 V khi
ADC va DAC duoc su dung) Mức điện áp VDDA phải luôn luôn lớn hơn hoặc bằng mức điện áp VDD và phải được cung cấp đầu tiên
22
Trang 25VBAT = 1,65-3,6 V: cung cấp điện cho RTC, bên ngoài đồng hồ dao động
32 KHz
Các POR giám sát chỉ cung cấp điện áp VDD Trong giai đoạn khởi động nó
là cần thiết rằng VDDA nên đến đầu tiên và lớn hơn hoặc bằng VDD
Các màn hình PDR cả VDD và điện áp cung cấp VDDA, tuy nhiên người
giam sat cung cap điện VDDA có thể bị vô hiệu hóa (bằng cách lập trình một chút Lựa chọn chuyên dụng) để giảm điện năng tiêu thụ nếu thiết kế ứng dụng đảm bao rằng VDDA cao hơn hoặc bằng VDD
Cơ quan quản lý có ba chế độ hoạt động: chính (MR), năng lượng thấp (LPR) và điện xuống MR được sử dụng trong chế độ hoạt động bình thường (Run) LPR có thể được sử dụng trong ngưng chế độ mà nhu cầu điện giảm Công suất xuống được sử dụng trong chế độ chờ: sản lượng điều là trở kháng cao: mạch hạt nhân được hỗ trợ xuống, lôi kéo không tiêu thụ (nhưng nội dung của ss đăng ký
và SRAM bị mất)
Điều này luôn được kích hoạt sau khi thiết lập lại Nó bị vô hiệu hóa ở chế
độ chờ, cung cấp trở kháng đầu ra cao
Trong chế độ ngủ, chỉ có CPU được dừng lại Tắt cả các thiết bị ngoại vi tiếp tục hoạt động và có thê thức dậy khi CPU có một ngắt/sự kiện xảy ra
Dừng chế độ chế độ Dừng đạt được mức tiêu thụ điện năng rất thấp trong khi giữ lại ndi dung cua SRAM va đăng ký Tất cả các đồng hỗ trong lĩnh vực 1,8 V được dừng lại, PLL, HSŠI RC và dao động tinh thê HSE bị vô hiệu hóa Các điều chỉnh điện áp cũng có thể được đặt trong chế độ bình thường hoặc trong chế độ điện năng thấp Thiết bị nảy có thê được đánh thức từ chế độ dừng của bất cứ dòng nào exti Nguồn dòng exti có thể là một trong số 16 dòng bên ngoài, sản lượng PVD,
RTC bao déng, COMPX, I2C1, USART1 hodc CEC Cac 12C1, USART1 va CEC
có thể được cấu hình để cho phép các bộ dao động RC HSI để xử lý dữ liệu đến Nếu điều này được sử dụng, điều chỉnh điện áp không nên được đặt ở chế độ năng lượng thấp nhưng vẫn giữ ở chế độ bình thường
Chế độ chờ Chế độ chờ được sử dụng dé đạt được mức tiêu thụ điện năng thấp nhất Các điều chỉnh điện áp nội bộ được tắt để toàn bộ miền 1,8 V được tắt
23
Trang 26PLL, HSI RC va dao d6ng tinh thé HSE cũng được tắt Sau khi vào chế độ chờ, SRAM và đăng ký nội dung bị mất ngoại trừ đăng ký trong lĩnh vực sao lưu và
mạch chờ Thiết bị nảy ra khỏi chế độ chờ khi một thiết lập lai bén ngoai (pin NRST
), một thiết lập lại IWDG, một cạnh tăng trên các chân WKUP, hoặc một báo động RTC xay ra
Den LED LD1 PWR: Red LED chi ra hé théng duoc cung cap nguén LD2 COM: Cho biết thông tin về hệ thống với các trạng thái: Nhấp nháy đỏ chậm: nguồn tr USB trước khi khởi tạo; Nhấp nháy màu đỏ nhanh: Sau khi kết nối thành công lần đầu
tiên giữa PC và Kit STLINK/V2
LED sang mau do: khi khởi tạo siữa PC và ST-LINK/V2 là thành công và
kết thúc LED sáng màu xanh lá cây: Sau khi khởi tạo truyền thông thành công với
Kít LED nhấp nháy đỏ/xanh (Red/Green): Trong suốt quá trình truyền thông với Kít LED sáng màu đó: truyền thông kết thúc và thành công LED sáng màu vàng: Truyền thông gặp lỗi
LD3 màu xanh lá cây: LED người dùng kết nối tới chân PC9 cua kit
STM32F030R8T6 LD4: LED màu xanh da trời kết nối tới chân PC8 của kít
STM32F030R8T6
Các nút ấn Nút nhắn BI USER: nút nhắn kết nối với I/O cua STM32F051R8T6 Nut
nhân B2 Reset: Nút khởi động lại STM32F051R§T6
Chuyén đối tương tự sang số (ADC) Trén kit co b6 chuyén dsi ADC 12-bit dé chuyén dsi tương tự thành tín hiệu
số (nhiệt độ cảm biến, điện áp tham chiếu, đo điện áp VBAT) kênh và thực hiện
chuyển đsi trong sinple-shot hoặc chế độ quét Trone chế độ quét, tự động chuyển dsi duoc thực hiện trên một nhóm được lựa chọn đầu vào tương tự ADC có thé
được phục vụ bởi các bộ điều khiển DMA Một tính năng giám sát tương tự cho
phép giám sát rất chính xác của điện áp chuyên đsi một, một số hoặc tất cả các kênh
được lựa chọn Một ngắt được tạo ra khi điện áp chuyên đsi nằm ngoài ngưỡng lập
trình Cảm biến nhiệt độ (TS) tạo ra một VSENSE điện áp thay đsi tuyến tính với
24
Trang 27nhiệt độ Cảm biến nhiệt độ là nội bộ kết nối với các kênh đầu vào ADC_INI16 được
sử dụng để chuyền đsi điện ap đầu ra cảm biến thành một 214 trị kỹ thuật SỐ
Cảm biến cung cấp tuyến tính tốt nhưng nó phải được hiệu chỉnh để có được
độ chính xác tsng thể tốt của phép đo nhiệt độ Như bủ đắp của cảm biến nhiệt độ thay đsi từ chíp chip đo quá trình biến đsi, cảm biến nhiệt độ bên trong chưa được hiệu chỉnh phủ hợp cho các ứng dụng phát hiện những thay ổsi nhiệt độ Để cải thiện độ chính xác của phép đo cảm biến nhiệt độ, mỗi thiết bị là máy hiệu chuẩn bởi ST Các đữ liệu hiệu chuẩn được cảm biến nhiệt độ được lưu trữ bởi ST trong khu vực bộ nhớ hệ thống, có thé truy cập trong chế độ chỉ đọc
Điện áp tham chiếu nội bộ (VREFINT) cung cấp một sn dinh (bandgap) dién
ap dau ra cho ADC va Comparators VREFINT la n6i bd kết nối với các kênh đầu vào ADC_INI7 Điện áp chính xác của VREFINT được đo riêng cho mỗi phần của
ST trong thu nghiệm sản xuất và lưu trữ trong các khu vực bộ nhớ hệ thống Nó có thê truy cập ở chế độ chỉ đọc VBAT pin giám sát nguồn điện, tính năng phần cứng nhúng này cho phép các ứng dụng để đo điện áp VBAT pin bằng cách sử dụng ADC_INI8 kênh ADC nội bộ Khi điện áp VBAT có thể cao hơn VDDA, và do đó bên ngoài phạm vi đầu vào ADC, pm VBAT là nội bộ kết nối với một cầu chia hết cho 2 Kết quả là, giá trị kỹ thuật số chuyên dsi la một nửa điện áp VBAT
Chuyén đỗi số sang tương tự DAC
Trên kít có 12-bít đệm kênh DAC có thể được sử dụng để chuyền dsi tin hiệu số thành tín hiệu điện áp tương tự Cấu trúc thiết kế được lựa chọn bao gồm dây điện trở và bộ khuếch đại tích hợp, giao diện kỹ thuật số hỗ trợ các tính năng sau: Chuyên đsi dữ liệu ngay trong chế độ 12-bit; Khả năng khả năng cập nhật đồng bộ; Chuyển đsi DMA ngoài; Đầu vào kích hoạt DAC được sử dụng trong thiết
bị DAC được kích hoạt thông qua các kết quả đầu ra hẹn giờ kích hoạt và giao diện DAC được tạo yêu cầu DMA riêng của nó
2.2.3 Các thông số kỹ thuật trên kit STM32F0 Discovery
Thông số kỹ thuật trên kít đóng vai trò rất quan cho người lập trình và thiết
kế các dự án trên kít STM32F0 Chiều rộng kít là 53.34 mm Chiều dải kít là 88.9
mm Khoảng cách giữa các chân là 2.54 mm
25