Đồ Án Tốt Nghiệp Đại Học: Thiết Kế Và Chế Tạo Kit Phát Triển Sử Dụng STM32

**SEO Description for the Article** Mô tả: Đồ án tốt nghiệp đại học về thiết kế và chế tạo kit phát triển sử dụng STM32, cung cấp kiến thức và kỹ năng thực tiễn cho sinh viên.

Trường đại học

Đại học

Chuyên ngành

Thiết kế và chế tạo

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp
68
6
0

Phí lưu trữ

30 Point

Tóm tắt

I. Giới thiệu

Đồ án tốt nghiệp 'Thiết kế và chế tạo kit phát triển sử dụng STM32' tập trung vào việc phát triển một hệ thống điều khiển dựa trên vi điều khiển STM32. Hệ thống này không chỉ giúp sinh viên nắm vững kiến thức lý thuyết mà còn thực hành kỹ năng thiết kế và chế tạo. Đồ án này có giá trị thực tiễn cao, phục vụ cho việc phát triển sản phẩm trong lĩnh vực công nghệ điện tử.

1.1 Mục tiêu

Mục tiêu chính của đồ án là thiết kế và chế tạo một kit phát triển có khả năng lập trình và điều khiển các thiết bị điện tử. Kit này sẽ bao gồm các phần cứng và phần mềm cần thiết để người dùng có thể dễ dàng thực hiện các dự án nghiên cứu và phát triển. Việc sử dụng STM32 giúp tối ưu hóa hiệu suất và tiết kiệm năng lượng cho các ứng dụng thực tế.

II. Cơ sở lý thuyết về STM32

Chương này trình bày các khái niệm cơ bản về STM32, một dòng vi điều khiển phổ biến trong ngành công nghiệp. STM32 được phát triển dựa trên kiến trúc ARM, mang lại hiệu suất cao và khả năng xử lý mạnh mẽ. Các thông số kỹ thuật của STM32 như tốc độ xung nhịp, dung lượng bộ nhớ và các giao tiếp ngoại vi được phân tích chi tiết. Điều này giúp người đọc hiểu rõ hơn về khả năng của vi điều khiển trong việc phát triển các ứng dụng thực tế.

2.1 Các tính năng nổi bật

Việc sử dụng STM32 trong thiết kế kit phát triển mang lại nhiều lợi ích. Các tính năng như khả năng lập trình nhúng, hỗ trợ nhiều giao thức giao tiếp và khả năng mở rộng phần cứng là những điểm mạnh của STM32. Những tính năng này cho phép người dùng dễ dàng phát triển và tích hợp các ứng dụng mới, từ điều khiển thiết bị đến phát triển hệ thống tự động hóa.

III. Thiết kế phần cứng

Chương này tập trung vào việc thiết kế phần cứng cho kit phát triển. Các thành phần như mạch điện, cảm biến và các thiết bị ngoại vi được lựa chọn và bố trí hợp lý để đảm bảo tính khả thi và hiệu suất cao. Việc thiết kế mạch điện không chỉ yêu cầu kiến thức về lý thuyết mà còn cần kỹ năng thực hành để đảm bảo rằng các linh kiện hoạt động đồng bộ và hiệu quả.

3.1 Mạch điện và bố trí

Mạch điện được thiết kế với sự chú ý đến việc tối ưu hóa không gian và hiệu suất. Các linh kiện như điện trở, tụ điện và vi điều khiển được sắp xếp một cách hợp lý để giảm thiểu nhiễu và tăng cường độ ổn định. Bố trí mạch cũng cần phải đảm bảo rằng các tín hiệu được truyền tải một cách chính xác và nhanh chóng, điều này rất quan trọng trong các ứng dụng thực tế.

IV. Phần mềm và lập trình

Chương này đề cập đến việc phát triển phần mềm cho kit phát triển. Các ngôn ngữ lập trình như C và C++ được sử dụng để lập trình cho STM32. Việc lập trình nhúng yêu cầu sự hiểu biết sâu sắc về cấu trúc của vi điều khiển và cách thức hoạt động của các thiết bị ngoại vi. Các thuật toán điều khiển và giao tiếp được triển khai để đảm bảo rằng kit phát triển hoạt động hiệu quả.

4.1 Giao diện người dùng

Giao diện người dùng được thiết kế thân thiện và dễ sử dụng. Người dùng có thể dễ dàng tương tác với kit phát triển thông qua các nút bấm và màn hình hiển thị. Việc thiết kế giao diện không chỉ giúp người dùng dễ dàng thao tác mà còn tạo ra trải nghiệm tốt hơn trong quá trình phát triển sản phẩm.

12/02/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 đủ

Đồ án tốt nghiệp: Thiết kế và chế tạo kit phát triển sử dụng STM32 là một bài viết chuyên sâu về việc ứng dụng vi điều khiển STM32 trong thiết kế và chế tạo các bộ kit phát triển. Bài viết cung cấp cái nhìn chi tiết về quy trình thiết kế, các thành phần cần thiết, và cách thức triển khai thực tế. Điểm nổi bật của đồ án này là việc tối ưu hóa hiệu suất và khả năng mở rộng của hệ thống, giúp người đọc có thể áp dụng vào các dự án IoT, điều khiển tự động, hoặc nghiên cứu chuyên sâu. Đây là tài liệu hữu ích cho sinh viên, kỹ sư, và những ai đam mê lập trình nhúng.

Nếu bạn quan tâm đến các ứng dụng thực tế của vi điều khiển trong hệ thống thông minh, hãy khám phá thêm Đồ án tốt nghiệp thiết kế và thi công hệ thống thiết bị điều khiển nhà thông minh. Để tìm hiểu về cách điều khiển thiết bị bằng giọng nói, bạn có thể tham khảo Đồ án tốt nghiệp điều khiển xe robot bằng giọng nói với Raspberry Pi 3. Ngoài ra, nếu bạn muốn khám phá cách tích hợp trợ lý ảo vào hệ thống điều khiển, hãy xem Đồ án tốt nghiệp điều khiển thiết bị điện thông qua trợ lý ảo Google Assistant. Mỗi bài viết đều mang đến góc nhìn mới mẻ và kiến thức chuyên sâu, giúp bạn mở rộng hiểu biết trong lĩnh vực này.