Mikrocontroller

Mikrocontroller Programmierung am Beispiel von ARM Cortex-M Controllern

Mikrocontroller sind allgegenwärtig. Sie werden immer dann gebraucht, wenn ein elektronisches Gerät besonders wenig Strom verbrauchen, besonders zuverlässig, besonders klein, besonders schnell oder besonders preiswert sein soll und zudem die Funktion durch Software bestimmt werden soll. Diese Schulung wendet sich an Personen, die das faszinierende Gebiet der Mikrocontroller kennenlernen wollen, in dem Soft- und Hardware eng miteinander verknüpft sind.

Im Rahmen dieser Schulung werden Boards mit ARM-Cortex-M-Mikrocontrollern verwendet. Dies sind 32bit-Controller, welche sehr weit verbreitet sind und derzeit für alle Anwendungen ohne Embedded Linux o.ä. quasi einen "Standard" darstellen. Die erworbenen Kenntnisse können jedoch leicht auf andere Controller-Typen übertragen werden.

Dieser Kurs richtet sich an Teilnehmer, die Mikrocontroller kennenlernen möchten sowie die Grundzüge und Besonderheiten der Softwareentwicklung für Mikrocontroller-Systeme lernen und einüben wollen.

Trainer und Dozenten

Dipl-Ing. Cord Elias hat über 30 Jahre Erfahrung im Design von Hard- und Software für Mikrocontroller-basierte Systeme.

Voraussetzungen

  • Der Umgang mit der Linux-Kommandozeile sollte vertraut sein.
  • Solide Kenntnisse der Programmiersprache C sind erforderlich, wie sie Sie in unserer Schulung C Programmierung erlernen können.
  • Grundkenntnisse in Elektronik sind hilfreich.
  • Manuals und Datenblätter der im Kurs eingesetzten Hardware liegen nur in englischer Sprache vor.

Inhalt

Einführung

  • Funktionsweise von Mikrocontrollern
  • Unterschied zu Mikroprozessoren
  • Hardware-Plattform zum Kennenlernen von Mikrocontrollern

Toolketten zur Softwareentwicklung für Mikrocontroller

  • Cross-Compiler-Toolchain
  • Debugger
  • Programmer
  • IDEs
  • Erstes Beispiel: Blinkende LED

Kurzeinführung in Assembler

Technik: Subsysteme von Mikrocontrollern, u.a.:

  • Speicher: RAM, Flash
  • Pins: Beschaltung, Eigenschaften
  • Timer/Counter
  • Kommunikation: U(S)ART
  • Kommunikation: I2C-Bus
  • Kommunikation: SPI-Bus

Hardwarenahes Programmieren in C, u.a.:

  • GPIO
  • Analog-Digital-Wandler
  • UART
  • PWM

Programmiertechniken, u.a.

  • Numerik: (scaled) Integer, Gleitkomma
  • Interrupts und Exceptions
  • "The big loop"
  • Interaktion mit Benutzern

Debugging, u.a.:

  • Debug-Interface zwischen Host und Target-Board
  • Die LED, Dein Freund und Helfer
  • Sinnvoller Einsatz eines Debuggers

optional:

  • Kommunikation mit Bit Bang
  • LC-Display-Ansteuerung

Aus den optionalen Teilen kann je nach Zeit und Vorlieben der Teilnehmer etwas ausgewählt werden.