CHÉM GIÓ, BÀN LUẬN VỀ KỸ THUẬT
Lập trình STM32F4 - Phần 1: Giới thiệu STM32F4
17 Tháng Tư 2021
Bắt đầu với bước chân đầu tiên để tìm hiểu về dòng chip STM32F4, tôi muốn đưa bạn đi qua tìm hiểu một số khái niệm bao quát. Sau đó để đi vào thực hành một số ứng dụng thực tế, chúng ta sẽ cùng thực hiện việc lập trình dòng chip này thông qua một bộ KIT khá phổ biến hiện nay: STM32f407 Discovery Board. Đây là sản phẩm của công ty STMicroelectronics (http://www.st.com).
Giới thiệu tổng quan về Cortex-Family và Cortex-M4
Cortex-M4 là một kiến trúc chuẩn, thuộc nhánh Cortex-M, được xây dựng dựa trên kiến trúc RSIC. RSIC là một lõi xử lí hoàn thiện gồm 3 phân nhánh
- Dòng A dành cho các ứng dụng cao cấp.
- Dòng R dành cho các ứng dụng thời gian thực.
- Dòng M dùng cho các ứng dụng vi điều khiển chi phí thấp.
Như vậy nhận định của dòng vi điều khiển ta chuẩn bị tìm hiểu dưới đây, với lõi Cortex-M4, có nét tương đồng với kiến trúc của một số con chip sử dụng trong smart phone. Ví dụ như chiếc Samsung Galaxy A51, chipset Exynos 9611, có 8 lõi trong đó 4 lõi tốc độ thấp Cortex A53 và 4 lõi tốc độ cao Cortex A73. Như đã đề cập - dòng Cortex A để dành cho các ứng dụng cao cấp. Hình dưới đây cho bạn biết sở lược một số ứng dụng thực tế của chip sử dụng lõi Cortex.
Quay lại với dòng Cortex M-4, là một sự nâng cấp đáng kể của dòng Cortex M-3 với ưu điểm nâng cao hiệu suất hệ thống, kết hợp với tiêu thụ năng lượng thấp. Nó được sử dụng như một lõi vi điều khiển chuẩn nhằm cung cấp một cấu trúc tổng quát đầy đủ chức năng như hệ thống ngắt, SysTick timer (thiết kế cho hệ điều hành thời gian thực), hệ thống kiểm lỗi (debug system) và memory map. Các địa chỉ của Cortex M-4 đượ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. Cortex M-4 được thiết kế dựa trên cấu trúc Harvard với điểm đặc trưng là bộ nhớ chương trình và bộ nhớ dữ liệu tách biệt nhau, nó cung cấp một số lượng lớn bus cho phép thực hiện nhiều thao tác song song với nhau, làm tăng hiệu suất của chip trong xử lý đa nhiệm.
Sơ lược STM32F407 Discovery Board
- Vi điều khiển chính: STM32F407VGT6 32-bit ARM Cortex-M4 core, 1 MB Flash, 192 KB RAM.
- Nguồn cấp từ cổng Mini USB qua các IC nguồn chuyển thành 3V3 để cấp cho MCU.
- Flexible power-supply options: có các chân nguồn 3 V và 5 V để lựa chọn cấp nguồn.
- Có 4 Led và 2 nút nhấn trong đó có một nút Reset.
- Có led thông báo trạng thái nguồn và led báo trạng thái kết nôi USB.
- Hỗ trợ Audio DAC tích hợp class D speaker driver.
- Có chân cắm cho jack audio 3.5mm
- Hỗ trợ cổng cắm cho ứng dụng USB OTG FS.
- Onboard Debugger interface: mạch nạp và mạch debugger đã được thiết kế trực tiếp trên KIT
Ngoài ra có một số những hỗ trợ khác từ nhà sản xuất. Bạn đọc có thể tham khảo trực tiếp trên trang chủ của nhà phân phối
Chip STM32F407VGT6
Chip STM32F407VGT6 thuộc dòng hiệu suất cao ARM Cortex-M4 32bit STM32F4 của STMicroelectronics, nhánh STM32F407.
Bạn thấy được điều gì từ hình trên, nếu bạn là Embedded System Developer, bạn thấy nó khá hoành tráng khi nó support thật nhiều tính năng. Nếu bạn là một người không chuyên hoặc mới đặt những bước chân đầu tiên để tìm hiểu về lập trình vi điều khiển, lập trình nhúng, bạn sẽ thấy cái kiến trúc này có vẻ phức tạp và khó hiểu quá. Nhưng đừng lo, chúng ta sẽ đi từng bước để hiểu từng phần của nó trong những phần sau.
Về STM32F407VGT6, được trang bị 1MB Flash, 192KB RAM, tốc độ clock lên đến 168MHz. Nó có đầy đủ chức năng của vi điều khiển cơ bản với:
- Chế độ tiết kiệm năng lượng Sleep, Stop hoặc Standby
- 3 Bộ ADC 12 bit với 16 kênh 2.4 MSPS
- 2 Bộ DAC 12 bit
- 12 Timers 16 bit và 2 timers 32 bit có hỗ trợ encoder.
- 2 Watchdog timers, RTC (Real Time Clock).
- 82 I/Os, 2 CAN, 3 I2C, 3 SPI 42Mbits/s, 2 I2S, 4 USART, 2 UART 10.5 Mbits.
- Ngoài ra còn hỗ trợ DMA, 1 USB OTG FS và 1 USB OTG FS/HS, Ethenet, camera.
Tạm kết
Trên đây chỉ là phần liệt kê về một số tính năng hỗ trợ bởi STM32F407VGT6. Ở phần tiếp theo, chúng ta sẽ trả lời câu hỏi rằng STM32F4 được ứng dụng như thế nào, tại sao chọn STM32F4 để học lập trình vi điều khiển và thế mạnh của dòng chip này so với những dòng chip phổ biến khác.