STM32 -  Ralf Jesse

STM32 (eBook)

Das umfassende Praxisbuch.ARM-Mikrocontroller programmieren für Embedded Systems

(Autor)

eBook Download: EPUB
2022 | 2. Auflage
432 Seiten
MITP Verlags GmbH & Co. KG
978-3-7475-0454-3 (ISBN)
Systemvoraussetzungen
29,99 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
Programmierung der wichtigsten Peripherie-Komponenten des STM32F4xx-Chips Digitale und analoge I/O-Ports (GPIOs), Timer und Counter, serielle Schnittstellen (USARTs/UARTs, SPI und I2C), ADCs und DACs, Direct Memory Access (DMA) Zahlreiche praktische Anwendungsbeispiele Dieses Buch bietet einen umfassenden Praxiseinstieg in die Softwareentwicklung für Embedded Systems mit der ARM-Mikrocontrollerfamilie STM32F4xx der Firma STMicroelectronics (STM). Für die Programmierung wird die Sprache C eingesetzt. Der Autor behandelt die wichtigsten Peripherie-Komponenten, dazu gehören digitale und analoge I/O-Ports (GPIOs), Timer und Counter, serielle Schnittstellen (USARTs/UARTs, SPI und I2C), ADCs und DACs, RTC (Echtzeit-Uhr) sowie Direct Memory Access (DMA). Anhand einfacher Beispiele zeigt der Autor den praktischen Einsatz dieser Komponenten. Hierzu zählen die Abfrage von Uhrzeit und Datum von einer externen RTC (über I2C) sowie deren Anzeige über SPI auf einfachen Displays. Im Verlauf des Buchs entsteht so eine Bibliothek, deren Funktionen für eigene Projekte auf einfache Weise eingesetzt werden können. Die Beispiele werden auf dem Evaluierungsboard NUCLEO-64 mit dem STM32F446 unter Einsatz der STM32CubeIDE-Entwicklungsumgebung entwickelt und getestet. Grundlegende Kenntnisse der Programmiersprache C werden vorausgesetzt. Alle Beispiele folgen dem MISRA-C-Standard, dessen Anwendung in der Automobilindustrie vorgeschrieben ist. Dieser wird in einem separaten Kapitel vorgestellt und sorgt für gut verständlichen und somit leicht zu pflegenden Code. Der Fokus liegt auf der »baremetal«-Programmierung, was den Umstieg auf Mikrocontroller anderer Hersteller erleichtert. Auf den Einsatz der HAL-Bibliothek wird ausdrücklich verzichtet. Aus dem Inhalt: Typische GPIO-Anwendungen (Input/Output/Alternative Funktionen) Timer: Systick/Basic/General Purpose/Advanced Control Timer PWM: Dimmen von LEDs mit Timern A/D- und D/A-Wandlung Serielle Kommunikation mit UARTs/USARTs/I2C/SPI Porterweiterung mit I2C (PCF8574)/Ansteuerung von LC-Displays 7-Segment-Anzeigen über SPI (MAX7219) Einsatz einer externen Echtzeituhr (RTC) DS3231 über I2C

Ralf Jesse ist Diplom-Ingenieur der Elektrotechnik mit mehr als 30 Jahren beruflicher Praxis im Einsatz von Mikroprozessoren und -controllern. Nach ersten Erfahrungen als Entwicklungsingenieur in einem Maschinenbau-Unternehmen folgten mehr als 20 Jahre als Software-Ingenieur in einem großen japanischen Konzern.

Kapitel 1:
STM32F4xx-Mikrocontroller


Will man Software für einen Mikrocontroller entwickeln, ist es hilfreich, wenn grundlegende Kenntnisse zur Hardware vorhanden sind. Die erforderlichen Kenntnisse müssen nicht so tief gehend sein, wie dies für Hardwareentwickler erforderlich ist, man sollte aber in der Lage sein, sich mit ihnen auf einer gemeinsamen Basis verständigen zu können.

Daher beginne ich dieses Buch mit einem kurzen Überblick über die Mitglieder der STM32F4xx-Familie.

1.1  Überblick über die STM32F4xx-Familie


Wie bereits in der Einleitung erwähnt, besteht die STM32F4xx-Familie aus einer Vielzahl von Mikrocontrollern, die, abhängig von ihrer Ausstattung und ihrer Leistungsfähigkeit, in verschiedene Produktlinien eingeordnet sind:

  • Die Advanced Line umfasst die Ausführungen STM32F469, STM32F429 und STM32F427. Diese bieten die größte Funktionsvielfalt und enthalten unter anderem Ethernet-Interfaces. Bis auf den STM32F427 enthalten die Mitglieder der Advanced Line auch einen TFT-/LCD-Controller. Die genannten Mikrocontroller können mit einer Taktfrequenz von bis zu 180 MHz eingesetzt werden. Je nach Modell verfügen sie über einen Flashspeicher von bis zu 2 MByte und bis zu 384 KByte SRAM.

  • Die sogenannte Foundation Line umfasst die Typen STM32F446, STM32F407 und STM32F405. Die maximale Taktfrequenz des STM32F405 beträgt 168 MHz, die beiden anderen können – wie die Mitglieder der Advanced Line – mit einer Frequenz von bis zu 180 MHz getaktet werden.

  • Die Access Line umfasst mit den Mikrocontrollern STM32F401, STM32F410, STM32F411, STM32F412 und STM32F413 die Familienmitglieder, die am wenigsten leistungsstark sind. Dies betrifft weniger die Größe von Flashspeicher (maximal 1.536 KByte) und SRAM (bis zu 320 KByte), sondern vielmehr die Zahl serieller Schnittstellen und anderer Peripheriekomponenten. Die Taktfrequenz ist mit maximal 100 MHz aber immer niedriger verglichen mit den Mitgliedern der Advanced Line bzw. der Foundation Line.

Abbildung 1.1 zeigt die derzeit verfügbaren Mikrocontroller dieser Familie (Stand: März 2022). Der in diesem Kapitel exemplarisch beschriebene Mikrocontroller STM32F446 ist durch einen Rahmen hervorgehoben.

Abb. 1.1: Überblick über die STM32F4-Familie

Hinweis

Obwohl ich mich nachfolgend auf den STM32F446 konzentriere, lässt sich seine Beschreibung nicht nur auf die anderen Mitglieder der STM32F4-Familie übertragen, sondern auch – mit Ausnahme der Arm-spezifischen Bestandteile sowie der herstellerspezifischen Peripheriekomponenten – auf beliebige andere Mikrocontroller. Natürlich gibt es Unterschiede bei der Programmierung der integrierten Peripheriekomponenten, was sich nicht zuletzt in unterschiedlichen Benennungen und Adressen der Register wie auch in der Anschlussbelegung zeigt, das Funktionsprinzip ist aber überall sehr ähnlich. Die Portierung der Kenntnisse auf Mikrocontroller anderer Hersteller sollte recht einfach sein, da Sie hier ja die Programmierung von der Pike auf lernen.

1.2  Der STM32F446


Der STM32F446 ist in verschiedenen Ausführungsvarianten erhältlich. Im folgenden Abschnitt werden diese näher beschrieben.

1.2.1  Varianten des STM32F446


Tabelle 1.1 zeigt die Ausführungen und ihre Unterschiede:

Tabelle 1.1: Ausstattung des STM32F446

Peripheriekomponenten

STM32F446

MC

ME

RC

RE

VC

VE

ZC

ZE

Flash in KByte

256

512

256

512

256

512

256

512

SRAM in KByte

System

128 (112 + 16)

Backup

4

Controller für flexiblen Speicher (FMC)

Nein

Ja

Timer

GP

10

Advanced

2

Basic

2

Kommunikations-Interfaces

SPI/I²S

4/3 (simplex)

I²C

4/1 davon als FMP+ (Fast mode Plus)

UART/USART

2/4

USB OTG FS

Ja, 6 Endpunkte

USB OTG HS

Ja, 8 Endpunkte

CAN

2

SAI

2

SDIO

Ja

SPDIF-Rx

1

HDMI-CEC

1

Quad SPI

1

Kamera-Interface

Ja

GPIOs

63

50

81

114

12-Bit-ADC (Anzahl/Kanäle)

3/14

3/16

3/16

3/24

12-Bit-DAC

Ja, 2 Kanäle

Maximale Taktfrequenz

180 MHz

Betriebsspannung

1,8 bis 3,6 V

Gehäuse und Pins

WLCSP81

LQFP64

LQFP100

LQFP144U
FBGA144

Wie Sie Tabelle 1.1 entnehmen können, sind allein vom STM32F446 acht Ausführungen erhältlich, die durch nachgestellte Buchstaben und Ziffern unterschieden werden. Abbildung 1.2 zeigt, wie die Bezeichnungen bei STM interpretiert werden.

Abb. 1.2: Produktbezeichnungen der STM32F4xx-Mikrocontroller

Hinweis

Möchten Sie einen anderen Mikrocontroller aus der STM32F4xx-Familie verwenden, finden Sie die entsprechenden Tabellen auf der Webseite https://www.st.com/en/microcontrollers-microprocessors/stm32f4-series.html im Menü Resources.

1.2.2  Speicherbelegung/Memory-Mapping


Der adressierbare Speicher ist in acht Blöcke mit einer Größe von jeweils 512 MByte unterteilt, es können somit maximal 232 – 1 Byte = 4.294.967.296 Byte adressiert werden. Dieser Wert stellt aber nur das theoretische Maximum dar, tatsächlich verfügt keiner der genannten Mikrocontroller über derart viel Speicher, sodass die höchste adressierbare Speicherstelle deutlich kleiner ist.

Abbildung 1.3 zeigt eine grobe Unterteilung dieser Blöcke und der hier verfügbaren Funktionen. Im rechten Teil von Abbildung 1.3 sehen Sie einige Abkürzungen, wie z.B. AHB1/2/3 und APB1/2: Was es damit auf sich hat, wird weiter unten in Abschnitt 1.2.4 erläutert.

Abb. 1.3: Speicherbereiche (Memory-Mapping), aus dem Datenblatt entnommen

Die folgenden Tabellen zeigen die verfügbaren Peripheriekomponenten, den jeweils genutzten Bus, über den sie angesprochen werden, sowie die Adressen, die den Speicherbereichen und Registern zugeordnet sind.

Wichtig

Zwei Adressbereiche möchte ich vorab besonders hervorheben: Sie sind zwar in Abbildung 1.3 angegeben, fallen dort aber nicht besonders deutlich auf: Es handelt sich um den Flashspeicher (ab Adresse 0x0800 0000) und das SRAM (ab Adresse 0x2000 0000). Die Größe des Speichers variiert bei den verschiedenen Mikrocontrollern.

Hinweis

Die Adressbereiche in den folgenden Tabellen sind nach den jeweiligen Bussen (Cortex-M4, AHB und APB) sortiert. Dies führt dazu, dass die Blockgrenzen in Abbildung 1.2 quasi »ungültig« werden. Darüber hinaus sind große Adressbereiche im Speicherraum reserviert, sodass sie nicht genutzt werden können. Reservierte Speicherbereiche wurden in den folgenden Tabellen nicht aufgeführt.

Tabelle 1.2: Adressbereich von Cortex-M4-internen Komponenten

Bus

Adressgrenzbereiche

Komponente(n)

Cortex-M4-interner Bus

0xE000 0000–0xE00F FFFF

Cortex-M4-interne Komponenten (z.B. CPU-Kern, NVIC, Floating-Point-Unit (FPU) usw.)

Tabelle 1.3: Komponentenadressen, die über den AHB3-Bus angesprochen werden

Bus

Adressbereiche

Komponente(n)

AHB3

0xD000 0000–0xDFFF FFFF

FMC Bank 6

0xC000 0000–0xCFFF FFFF

FMC Bank 5

...

Erscheint lt. Verlag 29.4.2022
Sprache deutsch
Themenwelt Mathematik / Informatik Informatik
ISBN-10 3-7475-0454-X / 374750454X
ISBN-13 978-3-7475-0454-3 / 9783747504543
Haben Sie eine Frage zum Produkt?
Wie bewerten Sie den Artikel?
Bitte geben Sie Ihre Bewertung ein:
Bitte geben Sie Daten ein:
EPUBEPUB (Wasserzeichen)
Größe: 5,7 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Konzepte, Methoden, Lösungen und Arbeitshilfen für die Praxis

von Ernst Tiemeyer

eBook Download (2023)
Carl Hanser Verlag GmbH & Co. KG
69,99
Konzepte, Methoden, Lösungen und Arbeitshilfen für die Praxis

von Ernst Tiemeyer

eBook Download (2023)
Carl Hanser Verlag GmbH & Co. KG
69,99