STM32F401RE – Blockdiagramm

Das Blockdiagramm findest du im Datenblatt auf Seite 14.

STM32F401RE Systemübersicht

🎯 Zentrale Komponenten

  • CPU: ARM Cortex-M4 mit FPU (Gleitkommaeinheit) @ 84 MHz
    • Busarchitektur: I-Bus, D-Bus, S-Bus → intern mit AHB & APB verbunden
  • Flash: 512 KB (Programmspeicher)
  • SRAM: 96 KB (Datenspeicher)

🕹️ Peripherie-Anbindung (Busse)

  • AHB1 (84 MHz):
    • GPIO A–E, H
    • DMA1, DMA2
    • CRC, Flash
  • APB1 (42 MHz):
    • Timer 2, 3, 4, 5
    • USART 2
    • I²C 1, 2, 3
    • SPI 2, 3
  • APB2 (84 MHz):
    • Timer 1, 9, 10, 11
    • USART 1, 6
    • SPI 1, 4
    • ADC1, SDIO

⏱️ Timer (inkl. PWM)

  • Advanced Timer: TIM1 (PWM, Break-Funktion)
  • General Purpose Timer:
    • 32-bit: TIM2, TIM5
    • 16-bit: TIM3, TIM4, TIM9, TIM10, TIM11

🧮 Kommunikationsschnittstellen

  • USART: USART1, 2, 6
  • SPI: SPI1, 2, 3, 4
  • I²C: I²C1, 2, 3
  • SDIO: SD-Karten über SDIO-Interface
  • USB OTG FS: Full-Speed USB mit On-The-Go Unterstützung

🔌 GPIO & Externe Peripherie

  • GPIO Ports: A, B, C, D, E, H
  • Interrupts: EXTI (16 externe Kanäle)
  • ADC: 16 Kanäle, 12-bit, mit internem Temperatursensor

⚙️ Takt & Reset

  • Taktquellen: HSI, HSE, LSI, LSE, PLL
  • Reset-Kontrolle: Software / Hardware / Watchdog

🔐 Sicherheit & Power

  • Watchdogs: IWDG (unabhängig), WWDG (Windowed)
  • Power Features: Brown-out Reset (BOR), VBAT für RTC
  • RTC: über LSE 32.768 kHz oder LSI

🔁 DMA-Controller

  • DMA1 / DMA2: Datenübertragung ohne CPU, unterstützt viele Peripherien

🧪 Debug & Programmierung

  • Schnittstellen: JTAG / SWD
  • ETM Trace-Port: optionales Debugging-Feature

⚠️ Taktregel beachten:

  • APB1 Peripherien → max. 42 MHz (z. B. TIM2–5, I²C1–3)
  • APB2 Peripherien → max. 84 MHz (z. B. TIM1, USART1, SPI1)

🔍 Feynman-Erklärung zur Systemübersicht

Stell dir den STM32F401RE wie eine gut organisierte Firma vor, in der jede Abteilung eine bestimmte Aufgabe hat – und alle über ein internes Bussystem miteinander reden.


🧠 Zentrale Einheit: CPU (Cortex-M4 mit FPU)

Die CPU ist der Chef. Sie führt alle Befehle aus und denkt besonders schnell – bis zu 84 Millionen Befehle pro Sekunde (84 MHz).

Dank FPU kann sie auch mit Kommazahlen rechnen, was für Sensorwerte oder Regelung wichtig ist.


🗄️ Speicher: Flash & SRAM

Der Flash ist wie ein Aktenschrank mit 512 KB – da liegt das Programm dauerhaft drin.

Das SRAM ist der Schreibtisch der CPU – 96 KB groß – da werden während der Arbeit die aktuellen Daten abgelegt.


🔌 GPIOs: Verbindung zur Außenwelt

Die GPIO-Ports (A bis E, H) sind wie Maus, Tastatur und Drucker → für die Ein- und Ausgabe von Daten.

Jeder Pin kann verschieden benutzt werden – digital, analog oder für Spezialfunktionen wie PWM, SPI oder UART.


🕹️ Timer: Zeitgeber und PWM-Generatoren

Die Timer sind wie präzise Uhren.

Sie helfen beim Messen von Zeit (z. B. bei Ultraschallsensoren), beim Erzeugen von Signalen (PWM für Motorsteuerung) oder bei regelmäßigen Aufgaben (z. B. jede 1 ms ein Ereignis auslösen).

Es gibt langsame (16 Bit) und schnelle (32 Bit) Timer – manche sitzen am schnellen APB2-Bus, manche am langsameren APB1.


💬 Kommunikation: Schnittstellen

Der STM32 kann mit anderen Geräten sprechen – z. B. über:

  • USART: für Textkommunikation (z. B. mit PC oder GPS)
  • SPI: schnell für Sensoren oder Displays
  • I²C: einfach, für viele Sensoren mit wenig Pins
  • USB: direkt an den PC oder an USB-Geräte

🔁 DMA: Turbo für Daten

DMA ist wie ein eigener Lagerarbeiter.

Er transportiert Daten direkt von A nach B, ohne die CPU zu stören. Z. B. ein ADC-Wert direkt in den Speicher.


⏱️ Clock-System: Taktgeber

Der STM32 hat mehrere Uhrenquellen – internen Takt (HSI), externen Quarz (HSE), langsame Takte (LSI, LSE) und eine PLL zum Hochtakten.

Jede Peripherie hängt an einem der internen Busse:

  • AHB1 (84 MHz): z. B. GPIOs, DMA
  • APB1 (42 MHz): langsamere Timer, I²C, USART2
  • APB2 (84 MHz): schnelle Timer, USART1, ADC

🧯 Sicherheit: Watchdogs & Reset

Damit nichts hängen bleibt, gibt’s zwei Arten von „Wachhunden“:

  • WWDG: schaut in regelmäßigen Abständen nach image.png
  • IWDG: läuft unabhängig immer mit image.png

Und: Bei Stromausfall schützt ein Brown-Out Detector den Speicher.


🧪 Debug: Programmierung & Test

Programmiert wird über SWD (Serial Wire Debug).

Optional gibt’s JTAG und ein Trace-System zum Mitlesen während das Programm läuft.


Fazit:

Der STM32F401RE ist ein extrem flexibler Mikrocontroller mit klarer Struktur:

  • CPU steuert
  • Speicher verwaltet Daten
  • Peripherien übernehmen Aufgaben (Timer, Kommunikation)
  • Busse verbinden alles sauber
  • Watchdogs und Reset schützen das System

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert