Giới thiệu hệ sinh thái STM32 và kit STM32F4DISCOVERY

1.1.1. Tổng quan vi điều khiển STM32F407VGT6 và lõi ARM Cortex-M4

  • Kiến trúc 32-bit hiệu năng cao: Khác với các dòng vi điều khiển 8-bit truyền thống (như ATmega328P trên Arduino), STM32 sử dụng kiến trúc ARM 32-bit, cung cấp băng thông rộng, tốc độ xử lý vượt trội và khả năng quản lý bộ nhớ lớn.

  • Vi điều khiển STM32F407VGT6:

    • Sử dụng lõi ARM Cortex-M4F có tích hợp bộ xử lý dấu phẩy động phần cứng (FPU – Floating Point Unit) và tập lệnh DSP chuyên dụng.

    • Tốc độ hoạt động tối đa lên đến 168 MHz.

    • Bộ nhớ tích hợp: 1 MB Flash (lưu trữ chương trình) và 192 KB RAM (biến và stack).

    • Đóng gói dạng chân LQFP100, đưa ra đầy đủ các ngoại vi công nghiệp.

1.1.2. Giới thiệu các ngoại vi tích hợp trên board STM32F4DISCOVERY

Bo mạch phát triển STM32F4DISCOVERY là nền tảng chuẩn mực để nghiên cứu và phát triển ứng dụng, tích hợp sẵn các phần cứng thực tế:

  • Hệ thống LED chỉ thị và người dùng:

    • LD1 (Đỏ/Xanh lá): Trạng thái giao tiếp USB.

    • LD2 (Đỏ): Báo nguồn 3.3V.

    • 4 LED người dùng: LD3 (Cam), LD4 (Xanh lá), LD5 (Đỏ), LD6 (Xanh dương) kết nối với các chân GPIO (PD13, PD12, PD14, PD15).

  • Hệ thống nút nhấn: Nút USER màu xanh (kết nối chân PA0) và nút RESET (B2).

  • Cảm biến chuyển động MEMS: Con quay hồi chuyển (Gyroscope) 3 trục tích hợp sẵn trên board.

  • Hệ thống âm thanh: Audio DAC (chip CS43L22) hỗ trợ jack cắm tai nghe 3.5mm và driver loa class-D.

  • Cổng giao tiếp: Cổng USB OTG FS (Micro-AB) và cổng nạp/debug ST-LINK (Mini-B).

1.1.3. Cài đặt môi trường phát triển (STM32CubeIDE, Keil C)

  • STM32CubeIDE: Môi trường phát triển tích hợp (IDE) chính thức và miễn phí từ STMicroelectronics, xây dựng trên nền Eclipse kết hợp công cụ cấu hình đồ họa STM32CubeMX và trình biên dịch GCC.

  • Keil MDK (MDK-ARM): Công cụ thương mại phổ biến trong công nghiệp, cung cấp trình biên dịch tối ưu hóa cao cho chip ARM Cortex-M và công cụ Debug chuyên sâu.

1.1.4. Thiết lập mạch nạp ST-LINK/V2-A

  • Mạch nạp/gỡ lỗi tích hợp (On-board ST-LINK/V2-A): Cho phép kết nối trực tiếp với máy tính qua cáp USB để nạp chương trình và debug thời gian thực (xem giá trị biến, đặt điểm dừng) qua chuẩn giao tiếp SWD (Serial Wire Debug – chỉ sử dụng 2 dây SWDIO và SWCLK).

  • Thiết lập phần cứng: Kiểm tra các jumper kết nối (CN3) ở trạng thái mặc định để kích hoạt chế độ nạp/debug cho chính kit trên bo.