Đồ án: Thiết Kế Chế Tạo Kit Phát Triển STM32 cho Sinh Viên Đại Học

Khám phá kit STM32 cho sinh viên: Thiết kế, chế tạo và ứng dụng thực tế. Hướng dẫn chi tiết, sơ đồ mạch và tài liệu tham khảo hữu ích.

Trường đại học

Trường Đại Học Mở Hà Nội

Người đăng

Ẩn danh

Thể loại

Đồ Án Tốt Nghiệp Đại Học

2017-2021

68
13
0

Phí lưu trữ

30 Point

Mục lục chi tiết

MỞ ĐẦU

LỜI CẢM ƠN

MỤC LỤC

1. CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VỀ STM32

1.1. Giới Thiệu Về Vi Điều Khiển ARM

1.2. Lịch sử phát triển của ARM

1.3. Giới thiệu chung vể ARM Cortex

1.4. Giới thiệu ARM Cortex M3

1.5. Giới thiệu dòng chip STM32

1.6. Giới thiệu về chip STM32F103C8T6

1.7. Kiến trúc chip ARM STM32F103C8T6

1.8. Cấp xung Clock

1.9. Cấu hình BOOT cho STM32

1.10. Kết nối với các giao tiếp khác

2. MẠCH NẠP ST-LINK V2

2.1. Thông số kỹ thuật

2. CHƯƠNG 2: THIẾT KẾ PHẦN CỨNG

2.1. Sơ đồ khối hệ thống

2.2. Thiết kế sơ đồ nguyên lý

2.3. Thiết kế mạch in

3. CHƯƠNG 3 CHỨC NĂNG TỪNG KHỐI

3.1. Khối trung tâm điều khiển

3.2. Khối hiển thị

3.2.1. Khối hiển thị LCD 16X2

3.2.2. Khối hiển thị led 7 thanh

3.2.3. Khối hiển thị led đơn

3.3. Khối module WIFI ESP-8266

3.4. Khối cảm biến nhiệt độ, độ ẩm

3.5. Khối module RFID RC522

DANH MỤC TÀI LIỆU THAM KHẢO

DANH MỤC HÌNH ẢNH

DANH MỤC BẢNG

DANH MỤC CÁC CỤM TỪ VIẾT TẮT

Tóm tắt

I. Tổng Quan Về Kit STM32 Khám Phá Tiềm Năng Ứng Dụng

Ngày nay, sự phát triển vượt bậc của ngành điện tử đã biến những ý tưởng sáng tạo thành hiện thực. Điện tử và ứng dụng của nó đóng vai trò quan trọng trong cuộc sống hiện đại. Trong lĩnh vực kỹ thuật, đặc biệt là Điện tử - Viễn thông và Tự động hóa, kỹ năng thực hành và làm việc thực tế là yếu tố then chốt. Để hỗ trợ quá trình nghiên cứu và thực hành, cần có những công cụ trực quan và dễ tiếp cận. Đồ án này tập trung vào việc thiết kế và chế tạo một kit phát triển STM32 đa năng, sử dụng vi điều khiển trung tâm STM32F103C8T6. Mục tiêu là nâng cao chất lượng giảng dạy và đào tạo, giúp sinh viên tiếp cận xu hướng công nghệ hiện đại và tăng cơ hội việc làm sau khi tốt nghiệp. Dự án này phù hợp với chủ trương phát triển và nâng cao chất lượng đào tạo của Khoa Công nghệ Điện tử Thông tin, Trường Đại học Mở Hà Nội, mang đến một công cụ trực quan giúp sinh viên dễ dàng tiếp cận kiến thức và công nghệ mới, đồng thời là tiền đề xây dựng hệ thống IoT quan trắc môi trường hoàn chỉnh. Dòng chip STM32F103C8T6 có tốc độ xử lý nhanh, tần số xung lên đến 72 MHz, bộ nhớ Flash 64 KB, SRAM 20 KB, hỗ trợ đầy đủ các chuẩn giao tiếp ngoại vi. Với ứng dụng rộng rãi: từ điện tử dân dụng, xe hơi đời mới, game, mobile , laptop, chỗ nào ARM cũng có mặt. Dòng STM32 tiêu thụ năng lượng cực thấp trong khi đó hiệu suất cực cao và việc lập trình cũng rất dễ dàng. Với sự đồ sộ về ngoại vi (GPIO, I2C, SPI, ADC, USB, Ethernet, CAN.), ST cung cấp cho chúng ta các thư viện trực tiếp cho mỗi dòng ARM (gọi là CMSIS - Cortex Microcontroller Software Interface Standard), nhiệm vụ của chúng ta không thể dễ dàng hơn: khai báo và sử dụng mà thôi. Mà giá thành cũng khá rẻ so với các dòng chip hiện có trên thị trường. "Để thuận tiện hơn trong quá trình thực hành, nghiên cứu cần có những công cụ trực quan rõ ràng."

1.1. Giới thiệu về kit phát triển STM32 đa năng cho sinh viên

Kit phát triển STM32 đa năng này sử dụng vi điều khiển trung tâm STM32F103C8T6, được thiết kế để cung cấp một nền tảng thực hành toàn diện cho sinh viên. Nó bao gồm nhiều module học tập, đặc biệt tập trung vào giao tiếp và kết nối. Mục tiêu là nâng cao chất lượng giảng dạy và đào tạo, giúp sinh viên nắm bắt xu hướng phát triển công nghệ trên thế giới và mở rộng cơ hội việc làm sau khi tốt nghiệp. Kit này được xây dựng với mục tiêu tạo ra một giáo cụ trực quan, giúp sinh viên tiếp cận kiến thức và công nghệ mới một cách dễ dàng hơn. Các ngoại vi được tích hợp giúp sinh viên làm quen với các chuẩn giao tiếp khác nhau phục vụ cho các ứng dụng nhúng sau này.

1.2. STM32 cho sinh viên Tầm quan trọng của thực hành và ứng dụng

Trong ngành kỹ thuật điện tử, kỹ năng thực hành và làm việc thực tế đóng vai trò then chốt. Kit phát triển STM32 được thiết kế để cung cấp một công cụ trực quan, giúp sinh viên thực hành và áp dụng kiến thức đã học vào các dự án thực tế. Điều này giúp sinh viên hiểu rõ hơn về các khái niệm lý thuyết và phát triển kỹ năng giải quyết vấn đề. Khả năng ứng dụng thực tế là yếu tố quan trọng giúp sinh viên tự tin và sẵn sàng cho công việc sau khi tốt nghiệp. Sử dụng các tài liệu hướng dẫn đi kèm cùng các ví dụ mẫu sẽ giúp sinh viên dễ dàng làm quen và thực hiện các dự án một cách nhanh chóng.

II. Thách Thức và Giải Pháp Thiết Kế Mạch STM32 Cho Người Mới

Việc thiết kế mạch STM32 có thể gặp nhiều thách thức, đặc biệt đối với người mới bắt đầu. Các thách thức bao gồm lựa chọn linh kiện phù hợp, thiết kế mạch in, lập trình và gỡ lỗi. Để vượt qua những thách thức này, cần có kiến thức nền tảng về điện tử, vi điều khiển và phần mềm lập trình. Ngoài ra, việc sử dụng các công cụ hỗ trợ thiết kế và các tài liệu hướng dẫn chi tiết cũng rất quan trọng. Một trong những khó khăn chính là lựa chọn phần mềm thiết kế mạch in phù hợp và làm quen với giao diện của nó. Các phần mềm như Altium Designer, Eagle hoặc KiCad có thể được sử dụng để thiết kế mạch in. Việc tìm hiểu về các chuẩn giao tiếp và giao thức truyền thông cũng rất quan trọng để đảm bảo mạch hoạt động đúng cách. Các kiến thức về điện trở, tụ điện, transistor và các linh kiện điện tử cơ bản khác cũng cần được nắm vững để thiết kế mạch hiệu quả. "Khi hỗ trợ giao tiế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ế độ haflfl-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."

2.1. Thiết Kế Mạch STM32 cho sinh viên Vấn đề lựa chọn linh kiện

Lựa chọn linh kiện phù hợp là một trong những thách thức lớn nhất khi thiết kế mạch STM32. Cần phải xem xét các yếu tố như điện áp hoạt động, dòng điện tiêu thụ, tần số và các yêu cầu khác của dự án. Việc lựa chọn sai linh kiện có thể dẫn đến mạch hoạt động không ổn định hoặc thậm chí hư hỏng. Nên tham khảo datasheet của linh kiện để lựa chọn cho phù hợp. Lựa chọn Kit phát triển STM32 có sẵn cũng là một giải pháp tốt cho người mới bắt đầu.

2.2. Cách đơn giản hóa quá trình chế tạo mạch STM32 Hướng dẫn từng bước

Quá trình chế tạo mạch STM32 có thể được đơn giản hóa bằng cách tuân theo một quy trình từng bước rõ ràng. Bắt đầu bằng việc thiết kế sơ đồ nguyên lý, sau đó thiết kế mạch in và cuối cùng là lắp ráp và kiểm tra mạch. Sử dụng các công cụ hỗ trợ thiết kế và các tài liệu hướng dẫn chi tiết có thể giúp giảm thiểu sai sót và tăng hiệu quả. Tìm hiểu các phương pháp hàn và sử dụng các công cụ hỗ trợ hàn cũng rất quan trọng để đảm bảo mạch hoạt động tốt.

2.3. Bí quyết tối ưu hóa thiết kế mạch STM32 để giảm nhiễu và tăng độ ổn định

Để tối ưu hóa thiết kế mạch STM32 và giảm nhiễu, cần tuân thủ các nguyên tắc thiết kế mạch in cơ bản. Điều này bao gồm sử dụng đường dẫn ngắn, tránh các góc vuông, sử dụng lớp mass và nguồn riêng biệt, và đặt các tụ lọc ở gần các chân nguồn của vi điều khiển. Kiểm tra cẩn thận sau khi lắp ráp cũng rất quan trọng để phát hiện và sửa chữa các lỗi trước khi cấp nguồn cho mạch.

III. Hướng Dẫn Lập Trình STM32 Cơ Bản Từ Khởi Đầu Đến Dự Án Mẫu

Lập trình STM32 là một kỹ năng quan trọng để khai thác tối đa tiềm năng của vi điều khiển này. Có nhiều công cụ và môi trường phát triển khác nhau có thể được sử dụng, chẳng hạn như STM32CubeIDE, Keil MDK và IAR Embedded Workbench. Việc làm quen với các thư viện HAL và LL cũng rất quan trọng để viết code hiệu quả. Ngoài ra, cần phải hiểu rõ về các khái niệm như ngắt, DMA và các ngoại vi khác của vi điều khiển. Để bắt đầu, có thể tham khảo các ví dụ mẫu và các STM32 tutorial trực tuyến. Với sư đồ sộ về ngoại vi (GPIO, I2C, SPI, ADC, USB, Ethernet, CAN.), ST cung cấp cho chúng ta các thư viện trực tiếp cho mỗi dòng ARM (gọi là CMSIS - Cortex Microcontroller Software Interface Standard), nhiệm vụ của chúng ta không thể dễ dàng hơn: khai báo và sử dụng mà thôi.

3.1. STM32CubeIDE Môi trường phát triển tích hợp cho lập trình STM32

STM32CubeIDE là một môi trường phát triển tích hợp (IDE) miễn phí do STMicroelectronics cung cấp. Nó cung cấp một giao diện thân thiện và nhiều công cụ hỗ trợ, giúp đơn giản hóa quá trình lập trình STM32. STM32CubeIDE tích hợp các công cụ cấu hình, biên dịch, gỡ lỗi và nạp chương trình, giúp người dùng tiết kiệm thời gian và công sức. Ngoài ra, nó cũng hỗ trợ các thư viện HAL và LL, giúp viết code dễ dàng hơn.

3.2. Sử dụng STM32 HAL library để lập trình STM32 hiệu quả

STM32 HAL (Hardware Abstraction Layer) library cung cấp một lớp trừu tượng phần cứng, giúp đơn giản hóa việc lập trình STM32. HAL library cung cấp các hàm API dễ sử dụng để truy cập và điều khiển các ngoại vi của vi điều khiển, giúp người dùng tập trung vào logic ứng dụng hơn là chi tiết phần cứng.

3.3. Các STM32 project examples cho người mới bắt đầu

Có rất nhiều STM32 project examples trực tuyến và trong các tài liệu hướng dẫn của STMicroelectronics. Các ví dụ này cung cấp một điểm khởi đầu tốt cho người mới bắt đầu, giúp họ làm quen với các khái niệm cơ bản và cách sử dụng các công cụ và thư viện. Ví dụ mẫu có thể bao gồm các ứng dụng như điều khiển LED, đọc cảm biến, giao tiếp UART và SPI.

IV. Bí Quyết Chế Tạo Mạch STM32 Hướng Dẫn Chi Tiết và Thực Tế

Quá trình chế tạo mạch STM32 đòi hỏi sự tỉ mỉ và cẩn thận. Bắt đầu bằng việc thiết kế mạch in, sau đó in mạch, khoan lỗ, hàn linh kiện và kiểm tra mạch. Sử dụng các công cụ hỗ trợ chế tạo mạch như máy khoan, máy hàn và kính lúp có thể giúp tăng hiệu quả và độ chính xác. Việc tuân thủ các quy tắc an toàn khi làm việc với điện cũng rất quan trọng. Nên tham khảo các STM32 tutorial về chế tạo mạch để có thêm kinh nghiệm và kỹ năng. Thiết kế lưu đồ giải thuật và viết chương trình điều khiển cho vi điều khiển. Thiết kế Kit bằng phần mềm Altium designer. Thiết kế mô hình và lắp ráp các khối điều khiển. Chạy thử nghiệm mô hình, cân chỉnh hệ thống.

4.1. Phương pháp chế tạo mạch STM32 thủ công tại nhà

Việc chế tạo mạch STM32 thủ công tại nhà có thể được thực hiện bằng cách sử dụng các phương pháp như in mạch bằng bàn ủi, sử dụng hóa chất ăn mòn và khoan lỗ bằng tay. Tuy nhiên, phương pháp này đòi hỏi nhiều thời gian và công sức, và độ chính xác có thể không cao. Sử dụng dịch vụ chế tạo mạch in chuyên nghiệp có thể là một lựa chọn tốt hơn nếu yêu cầu độ chính xác cao.

4.2. Sử dụng dịch vụ chế tạo mạch STM32 chuyên nghiệp

Có nhiều dịch vụ chế tạo mạch STM32 chuyên nghiệp có thể cung cấp các mạch in chất lượng cao với giá cả hợp lý. Các dịch vụ này thường cung cấp các tùy chọn như in mạch nhiều lớp, phủ lớp bảo vệ và kiểm tra điện. Sử dụng dịch vụ chuyên nghiệp có thể giúp tiết kiệm thời gian và công sức, và đảm bảo chất lượng của mạch.

4.3. Các lưu ý quan trọng khi chế tạo mạch STM32 để đảm bảo hoạt động ổn định

Để đảm bảo mạch STM32 hoạt động ổn định, cần tuân thủ các lưu ý quan trọng như kiểm tra kỹ sơ đồ nguyên lý và mạch in trước khi chế tạo, sử dụng linh kiện chất lượng cao, hàn linh kiện cẩn thận và kiểm tra mạch sau khi lắp ráp. Việc cung cấp nguồn điện ổn định và bảo vệ mạch khỏi tĩnh điện cũng rất quan trọng.

V. Ứng Dụng Thực Tế STM32 IoT Dự Án Quan Trắc Môi Trường

STM32 là một nền tảng lý tưởng cho các ứng dụng IoT, đặc biệt là các dự án quan trắc môi trường. Với khả năng kết nối mạng, thu thập dữ liệu từ cảm biến và xử lý dữ liệu mạnh mẽ, STM32 có thể được sử dụng để xây dựng các hệ thống quan trắc môi trường hiệu quả và tiết kiệm chi phí. Một ví dụ điển hình là dự án quan trắc nhiệt độ, độ ẩm, ánh sáng và các thông số khác của môi trường. Dữ liệu thu thập được có thể được truyền lên đám mây và hiển thị trên một trang web hoặc ứng dụng di động. Với những phân tích ở trên, cùng với những chủ trương phát triển, nâng cao chất lượng đào tạo của Khoa Công nghệ Điện tử Thông tin, Trường Đại học Mở Hà Nội, thì việc thực hiện đề tài “Nghiên cứu thiết kế, chế tạo kit phát triển Stm32 đa năng phục vụ giảng dạy” là hết sức thiết thực, phù hợp với xu thế phát triển, đem lại giáo cụ trực quan giúp sinh viên tiếp cận với kiến thức, công nghệ mới dễ dàng hơn và còn là tiền đề xây dựng nên một hệ thống IoT quan trắc môi trường hoàn chỉnh.

5.1. STM32 IoT Kết nối và truyền dữ liệu cảm biến môi trường

Để kết nối STM32 với mạng và truyền dữ liệu cảm biến môi trường, có thể sử dụng các module như ESP8266, ESP32 hoặc SIM800. Các module này cung cấp khả năng kết nối Wi-Fi, Bluetooth hoặc GPRS/3G, giúp truyền dữ liệu lên đám mây một cách dễ dàng. Ngoài ra, cần phải lựa chọn các giao thức truyền thông phù hợp như MQTT, HTTP hoặc CoAP.

5.2. Sử dụng STM32 để thu thập và xử lý dữ liệu cảm biến môi trường

STM32 có thể được sử dụng để thu thập dữ liệu từ nhiều loại cảm biến môi trường khác nhau, chẳng hạn như cảm biến nhiệt độ, độ ẩm, ánh sáng, áp suất và chất lượng không khí. Dữ liệu thu thập được có thể được xử lý bằng các thuật toán lọc, hiệu chỉnh và chuyển đổi đơn vị để đảm bảo độ chính xác. Sau đó, dữ liệu có thể được lưu trữ cục bộ hoặc truyền lên đám mây.

5.3. Hiển thị và phân tích dữ liệu quan trắc môi trường từ STM32

Dữ liệu quan trắc môi trường từ STM32 có thể được hiển thị trên một trang web hoặc ứng dụng di động bằng cách sử dụng các công nghệ như HTML, CSS, JavaScript và các thư viện như Chart.js. Ngoài ra, có thể sử dụng các công cụ phân tích dữ liệu như Python, R hoặc MATLAB để phân tích dữ liệu và đưa ra các dự đoán hoặc cảnh báo.

VI. Kết Luận và Hướng Phát Triển Kit STM32 Cho Sinh Viên

Đề tài thiết kế và chế tạo kit phát triển STM32 đã đạt được những kết quả khả quan, cung cấp một công cụ học tập và nghiên cứu hiệu quả cho sinh viên. Tuy nhiên, vẫn còn nhiều hướng phát triển có thể được khám phá, chẳng hạn như tích hợp thêm các module và cảm biến mới, cải thiện tính năng kết nối mạng và phát triển các ứng dụng phần mềm phức tạp hơn. Việc tiếp tục nghiên cứu và phát triển kit STM32 sẽ giúp sinh viên nâng cao kiến thức và kỹ năng, đồng thời đóng góp vào sự phát triển của ngành điện tử và IoT. Mục tiêu nghiên cứu: Tìm hiểu về dòng chip STM32 cùng các ngoại vi giao tiếp, tìm hiểu về cái module như I2C, ESP 8266, RFID,… Nội dung nghiên cứu: - Tìm hiểu và giao tiếp được với cảm biến nhiệt độ, Module RFID RC522, module LORA , module Wifi ESP8266 và các ngoại vi khác với chip STM32F103C8T6 - Thiết kế mô hình và lắp ráp các khối điều khiển. - Chạy thử nghiệm mô hình, cân chỉnh hệ thống. - Đánh giá kết quả thWc hiện.

6.1. STM32 beginner Tóm tắt và đánh giá kết quả đạt được

Đề tài đã hoàn thành việc thiết kế và chế tạo kit phát triển STM32, cung cấp một nền tảng thực hành cho sinh viên. Các module và cảm biến được tích hợp hoạt động ổn định và đáp ứng yêu cầu của dự án. Tuy nhiên, vẫn còn một số hạn chế như tính năng kết nối mạng còn đơn giản và thiếu các ứng dụng phần mềm phức tạp.

6.2. STM32 Tutorials for Beginners Hướng phát triển và cải tiến kit STM32

Có nhiều hướng phát triển và cải tiến kit STM32, chẳng hạn như tích hợp thêm các module và cảm biến mới, cải thiện tính năng kết nối mạng, phát triển các ứng dụng phần mềm phức tạp hơn và tạo ra các tài liệu hướng dẫn chi tiết hơn. Ngoài ra, có thể tập trung vào việc phát triển các ứng dụng IoT cụ thể như hệ thống quan trắc môi trường, hệ thống nhà thông minh và hệ thống điều khiển công nghiệp.

6.3. STM32 Online Courses Giá trị và tiềm năng của kit STM32 trong đào tạo

Kit phát triển STM32 có giá trị lớn trong đào tạo, giúp sinh viên tiếp cận với công nghệ vi điều khiển và IoT một cách dễ dàng và hiệu quả. Kit có thể được sử dụng trong các khóa học về điện tử, vi điều khiển, IoT và các lĩnh vực liên quan. Việc sử dụng kit trong đào tạo giúp sinh viên nâng cao kiến thức và kỹ năng, đồng thời chuẩn bị tốt hơn cho công việc sau khi tốt nghiệp. Có thể phát triển các STM32 online courses để tiếp cận với nhiều đối tượng học viên hơn.

22/09/2025

Trích đoạn nội dung tài liệu

Chương 1: Cơ sở lý thuyết về stm32 cập bus trong 1 đơn vị thời gian định sẵn). Sau mỗi lần CPU bị reset thì tất cả các nguồn xung clock cấp cho ngoại vi đều bị tắt hết chỉ trừ xung clock cấp cho SRAM và FLITF Hình 1. Kiến trúc của ARM STM32F103C8T6 1.7 Cấp xung Clock Có 4 loại xung clock có thể dùng làm xung clock cho hệ thống (SYSCLK-xung clock cấp cho khối xử lý): - HIS (High Speed Internal) nguồn xung clock tốc độ cao bên trong ARM. - HSE (High Speed External) nguồn xung clock tốc độ cao bên ngoài ARM.

- LSI (Low Speed Internal) nguồn xung clock tốc độ chậm 40kHz ở bên trong RM. - LSE (Low Speed External) nguồn xung clock tốc độ chậm thường được nối với thạch anh 32,768kHz từ bên ngoài, xung clock này có thể được dùng để cấp cho RTC. Mỗi nguồn xung clock có thể được bật, tắt độc lập nhằm tiết kiệm năng lượng. Chú ý: Muốn hệ thống hoạt động ở tần số cao nhất (72MHz) ta phải sử dụng HSE (4 – 16MHz) kết hợp với mạch nhân tần số PLLMUL.

Thông thường ta chọn giá trị HSE bằng 8MHz, điều này có nghĩa là ta phải kết nối thạch anh hoặc một nguồn xung clock 8MHz bên ngoài ARM theo cách được mô tả bên dưới. Nguyễn Mạnh Hùng 7 SVTH:Nguyễn Khắc Hiển Đồ án tốt nghiệp Đại học Chương 1: Cơ sở lý thuyết về stm32 Hình 1.6 : Cách kết nối nguồn xung 8MHz Hình 1.7: Sơ đồ cây xung Clock Ngoài ra ARM cũng còn có nguồn xung clock phụ HIS tốc độ tối đa 64Mhz GVHD:ThS. Nguyễn Mạnh Hùng 8 SVTH:Nguyễn Khắc Hiển Đồ án tốt nghiệp Đại học Chương 1: Cơ sở lý thuyết về stm32 Hình 1.8: Kết nối nguồn xung cho RTC Muốn dùng RTC định thời một cách chính xác ta phải sử dụng LSE bằng cách kết nối thạch anh hoặc bộ giao động có tần số 32.768kHz vào 2 chân OSC32_IN và OSC32_OUT theo cách hình 2.8 Cấu hình BOOT cho STM32 Dòng STM32F1 có 3 chế độ BOOT được chọn bởi 2 chân BOOT [1:0] theo bảng sau: Bảng 1. Các chế độ BOOT trong STM32 Trạng thái chân boot Chế độ boot Giải thích BOOT1 BOOT0 x 0 Bộ nhớ Flash chính Chọn Boot từ bộ nhớ Flash chính 0 1 Bộ nhớ hệ thống Chọn Boot từ bộ nhớ hệ thống 1 1 SRAM Chọn Boot từ bộ nhớ SRAM Trạng thái của các chân BOOT được cập nhật vào thời điểm có cạnh lên thứ 4 của xung SYSCLK sau khi Reset.

Việc chọn chế độ BOOT phụ thuộc vào việc cài đặt của người dùng đối với 2 chân BOOT1 và BOOT0 và trạng thái các chân BOOT này sẽ được cập nhật lại sau mỗi lần thoát khỏi chế độ Standby. Đối với dòng low, medium, high density thì boot loader sử dụng UART1 để nạp chương trình vào Flash. Đổi với dòng conectivity line thì boot loader sử dụng USART1, USART2 (remap), CAN (remap) hoặc USB OTG FS hoạt động ở chế độ DFU-Device Firmware Upgrade. Trong chế độ này USART sẽ hoạt động nhờ giao động nội 8MHz (HSI) còn CAN và USB chỉ có thể hoạt động nhờ dao động ngoại HSE khi kết nối với thạch anh 8 MHz, 14,7546MHz hoặc 25MHz.

Nguyễn Mạnh Hùng 9 SVTH:Nguyễn Khắc Hiển Đồ án tốt nghiệp Đại học Chương 1: Cơ sở lý thuyết về stm32 1.9 Kết nối với các giao tiếp khác STM32 hỗ trợ 5 loại giao tiếp ngoại vi khác nhau. STM32 có giao diện SPI và I2C để giao tiếp với các mạch tích hợp khác. Hỗ trợ giao tiếp CAN cho các module, USB cho giao tiếp PC và giao tiếp USART. 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ều khiể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ằm trê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ứ tW hỗ trợ MSB hay LSB. Chúng ta có thể cấu hình mỗi khối SPI đóng vai trò master hay slave.9 Giao tiếp SPI Chức năng của SPI: SPI sử dụng phương thức truyền: Nối tiếp - Đồng bộ - Song công. Nối tiếp: Truyền một bit dữ liệu trên mỗi nhịp truyền.

Đồng bộ: Có xung nhịp đồng bộ quá trình truyền. Song công: Cho phép gửi, nhận đồng thời. SPI là phương thức Master – Slave. Thiết bị đóng vai trò Master điều khiển xung đồng bộ (SCK).

Tất cả các thiết bị Slaver bị điều khiển bởi xung đồng bộ phát ra bởi Master. Cấu hình ghép nối cơ bản trong giao tiếp SPI: GVHD:ThS. Nguyễn Mạnh Hùng 10 SVTH:Nguyễn Khắc Hiển Đồ án tốt nghiệp Đại học Chương 1: Cơ sở lý thuyết về stm32 Cấu hình ghép nối 1 thiết bị Hình 1. Ghép nối một thiết bị Cấu hình ghép nối nhiều thiết bị - MISO (Master Input Slave Output): Đường truyền tín hiệu từ Master đến Slave.

- MOSI (Master Output Slave Input): Đường truyền tín hiệu từ Slave đến Master. - SCK: xung đồng bộ. Các thiết bị sử dụng giao tiếp SPI rất đa dạng bao gồm: thẻ nhớ SD/MMC, bộ nhớ, cảm biến ảnh, LCD, ADC……. Ghép nối nhiều thiết bị Để 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ối GVHD:ThS. Nguyễn Mạnh Hùng 11 SVTH:Nguyễn Khắc Hiển Đồ án tốt nghiệp Đại học Chương 1: Cơ sở lý thuyết về stm32 CRC đề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.12 Giao tiếp SPI với SD card b.

I2C Tương tW như SPI, chuẩn I2C cũng được STM32 hỗ trợ nhằm giao tiếp với các mạch tích hợp ngoài. Giao diện I2C có thể được cấu hình hoạt động ở chế độ slave, master hay đóng vai trò bộ phân xử đường trong hệ thống multi-master. Giao diện I2C hỗ trợ tốc độ truyền chuẩn 100kHz hay tốc độ cao 400kHz. Ngoài ra còn hỗ trợ 7 hoặc 10 bit địa chỉ.

Được thiết kế nhằm đơn giản hóa quá trình trao đổi với 2 kênh DMA cho truyền và nhận dữ liệu. Hai ngắt một cho nhân Cortex, một cho định địa chỉ và truyền nhận.13 Giao tiếp I2C Thêm nữa để đảm bảo tính chính xác dữ liệu truyền, khối kiểm tra lỗi dữ liệu (PAC – packet error checking) được tích hợp thêm vào giao diện I2C cho phép kiểm tra mã CRC-8 bit. Thao tác này được thWc hiện hoàn toàn tW động bởi phần cứng. Nguyễn Mạnh Hùng 12 SVTH:Nguyễn Khắc Hiển Đồ án tốt nghiệp Đại học Chương 1: Cơ sở lý thuyết về stm32 Hình 1.14 Kiểm tra lỗi trên I2C c.

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 vWc nhúng bởi sW 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. 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.15 Giao diện USART có khả năng hỗ trợ giao tiếp không đồng bộ UARTS, modem cũng như giao tiếp hồng ngoại và Smartcard 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ác nhau thích hợp với nhiều kiểu trao đổi dữ liệu khác nhau. Mỗi khối USART có hai kênh DMA dành cho truyền và nhận dữ liệu.

Khi hỗ trợ giao tiếp dạng UART, GVHD:ThS. Nguyễn Mạnh Hùng 13 SVTH:Nguyễn Khắc Hiển Đồ án tốt nghiệp Đại học Chương 1: Cơ sở lý thuyết về stm32 USART cung cấp nhiều chế độ giao tiếp. Có thể trao đổi dữ liệu theo kiểu chế độ haflfl-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.16 Hỗ trợ giao tiếp ở chế độ hafl-duplex dựa trên một đường truyền 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 đến 1115200bps, hoạt động ở chế độ hafl-duplex NRZ khi xung nhịp hoạt động khoảng từ 1.4MHz cho đến 2. Để thWc hiện giao tiếp với smartcard, USART còn hỗ trợ chuẩn ISO 7618-3.17 Giao tiếp 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 dWa trê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ên hoàn toàn có thể giao tiếp với các SPI slave khác.

Nguyễn Mạnh Hùng 14 SVTH:Nguyễn Khắc Hiển Đồ án tốt nghiệp Đại học Chương 1: Cơ sở lý thuyết về stm32 Hình 1.18 Hỗ trợ giao tiếp đồng bộ SPI d. CAN Khối điều khiển CAN cung cấp một điểm giao tiếp CAN đầy đủ hỗ trợ chuẩn CAB 2.0B Active và Passive với tốc độ truyền dữ liệu 1 Mbit/s. Ngoài ra khối CAN còn có khối mở rộng hỗ trợ giao tiếp truyền dữ liệu dạng deterministic dWa trên thẻ thời gian Time-trigger CAN(TTCAN).19 khối điều khiên CAN Tên đầy đủ của CAN là bxCAN, trong đó bx là viết tắt của Base eXtended. Một giao diện cơ bản CAN tối thiểu phải hỗ trợ bộ đệm đơn truyền và nhận dữ liệu, trong khi đó các giao diện mở rộng cung cấp nhiều bộ đệm.

bxCan là sW kết hợp giữa hai kiến trúc trên. bxCan có 3 bộ đệm dữ liệu cho truyền và 2 bộ đệm nhận, các bộ đệm này thường được gọi là mailbox(hộp thư). Mỗi mailbox được tổ chức như một FIFO hàng đợi. Nguyễn Mạnh Hùng 15 SVTH:Nguyễn Khắc Hiển Đồ án tốt nghiệp Đại học Chương 1: Cơ sở lý thuyết về stm32 Hình 1.20 Khối CAN có 3 mailbox cho truyền dữ liệu với đánh nhãn thời gian tự động cho chuẩn TTCAN Một điểm quan trọng nữa của CAN là lọc gói tin nhận(receive message filter).

Vì giao thức CAN truyền dữ liệu dWa trên địa chỉ đích nhận, do đó gói tin sẽ được phát trên toàn bộ mạng, chỉ có điểm nào có địa chỉ giống như địa chỉ nhận trên gói tin sẽ dùng gói tin đó. Lọc gói tin giúp các điểm trên mạng CAN tránh xử lý các gói tin không phù hợp.STM32 cung cấp 14 bộ lọc(14 filters bank) được đánh số từ 0 -13 cho phép lọc toàn bộ các gói tin không cần thiết. Mỗi bộ lọc gồm 2 thanh ghi 32-bit CAN_FxR0 vàCAN_FxR1.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ