search
- - posts/0.cortex-m-board-introduction/

STM32 보드 소개

이번 포스트에서는 STM32F411RE Nucleo-64 보드의 스펙과 하드웨어 구조를 자세히 알아본다.

사용 보드: STM32F411RE Nucleo-64

Nucleo-64 보드

핵심 스펙

STM32F411RE Nucleo-64 보드의 주요 사양은 다음과 같다:

  • MCU: STM32F411RE
  • Core: ARM Cortex-M4 (DSP 및 FPU 지원)
  • Flash Memory: 512KB
  • SRAM: 128KB
  • Maximum CPU Speed: 100MHz
  • ART Accelerator: 고성능 액세스 지원

중요: 임베디드 개발에서 보드 스펙을 정확히 아는 것은 개발의 첫걸음이다!
사용하는 보드 스펙은 정확히 알고 가자 “512KB Flash Memory, 127KB RAM, 100MHz CPU”

STM32F411RE MCU

보드 특징

해당 보드는 고성능 액세스 라인에 속하며, 다음과 같은 특징을 가진다:

  • ARM Cortex-M4 core with DSP and FPU
  • 512KB Flash memory
  • 100MHz CPU
  • ART Accelerator (고성능 메모리 액세스)

핀 구성과 LED 연결

User LD2 (사용자 LED)

우리가 제어할 수 있는 LED는 User LD2이다:

LED 연결 구조
User LD2

  • 연결 핀: PA5 (Arduino D13 핀과 동일)
  • 동작 방식:
    • HIGH (3.3V) → LED ON
    • LOW (0V) → LED OFF

핀 맵 이해

중요한 핀 맵 정보:

핀 맵
  • 같은 행의 핀들은 내부적으로 연결되어 있다
  • 암/수 커넥터의 차이만 있을 뿐 전기적으로는 동일하다
  • PA5 핀은 GPIO Output으로 설정하여 LED를 제어할 수 있다

: 핀 맵은 개발 과정에서 지속적으로 참조해야 하므로 별도로 저장해두는 것이 좋다.

System Architecture

STM32F411의 시스템 구조를 이해하는 것은 효율적인 프로그래밍의 기초가 된다.

System Architecture

주요 구성 요소

1. Core (ARM Cortex-M4)

  • 모든 instruction 제어를 수행한다
  • DSP와 FPU 기능을 내장하고 있다

2. Memory 구조

  • FLASH: Instruction Memory 역할 (ROM과 유사하지만 읽기/쓰기 가능)
  • SRAM: Data Memory 역할

3. Bus 시스템

  • AHB1 Bus: 100MHz로 동작하며, GPIO가 연결되어 있다
  • APB1/APB2 Bus: 저속 주변장치들이 연결되어 있다

4. RCC (Reset & Clock Control)

  • 시스템의 모든 클럭을 관리한다
  • 각 주변장치에 선택적으로 클럭을 공급한다

RCC의 역할과 저전력 설계

RCC의 중요성

RCC (Reset & Clock Control) 는 STM32의 핵심 구성 요소 중 하나다:

  • 클럭 관리: HCLK, APB CLK, AHB CLK를 각 버스에 제공한다
  • 선택적 공급: 사용하는 주변장치에만 클럭을 공급한다
  • 저전력 구현: 불필요한 주변장치의 클럭을 차단하여 전력을 절약한다

저전력 설계 원리

ARM Core는 저전력으로 설계되어 있어 다음과 같은 특징을 가진다:

  • 클럭 기반 동작: 클럭이 공급될 때만 동작한다
  • 선택적 활성화: 필요한 주변장치만 활성화한다
  • 전력 효율성: 사용하지 않는 기능은 클럭을 차단한다

예시: GPIOA를 사용하려면

  1. RCC에서 AHB1의 GPIOA에 클럭을 공급하도록 설정한다
  2. 나머지 GPIO (B, C, D 등)는 사용하지 않으면 클럭을 공급하지 않는다
  3. 결과적으로 불필요한 전력 소모를 방지할 수 있다

GPIO 메모리 맵

GPIOA 메모리 맵 구조

데이터시트에서 확인할 수 있는 GPIOA의 메모리 맵은 다음과 같다:

GPIO 메모리 맵
  • Base Address: 0x4002 0000
  • 주요 레지스터들:
    • MODER (0x00): Mode register
    • OTYPER (0x04): Output type register
    • OSPEEDR (0x08): Output speed register
    • PUPDR (0x0C): Pull-up/pull-down register
    • IDR (0x10): Input data register
    • ODR (0x14): Output data register

정리

이번 포스트에서는 STM32F411RE Nucleo-64 보드의 기본 사양과 하드웨어 구조를 살펴보았다:

  1. 보드 스펙: ARM Cortex-M4, 512KB Flash, 128KB SRAM, 100MHz
  2. LED 연결: PA5 핀에 연결된 User LD2
  3. 시스템 구조: Core, Memory, Bus, RCC의 역할
  4. 저전력 설계: RCC를 통한 선택적 클럭 공급

다음 포스트에서는 STM32CubeIDE를 사용하여 실제 프로젝트를 생성하고 기본 설정을 진행해보겠다.


다음 포스트: 2. STM32CubeIDE 프로젝트 생성

keyboard_arrow_up