Mikrocontroller-Datenblätter können heute leicht mehr als 600 Seiten umfassen. Glücklicherweise bietet Elektor eine Fülle von Artikeln und Bücher, die Ihnen den Einstieg erleichtern. Irgendwann werden Sie sich jedoch mit der echten Mikrocontroller-Dokumentation vertraut machen müssen.

Obwohl die Mikrocontroller-Dokumentation so viele Seiten umfasst, ist es unwahrscheinlich, dass Sie alle Informationen finden, nach denen Sie suchen. Zur Vervollständigung des Datenblattes müssen Sie auch die Dokumentation für Tools finden, die den Quellcode in Firmware umwandeln, Tools für die Codeentwicklung und das Debugging sowie Tools für die Massenproduktions-Programmierung. Wenn Sie neu in der Welt der Mikrocontroller sind, wird Ihnen dieser Leitfaden helfen, zu verstehen, wo die Dinge dokumentiert sind, wie Sie die die Hieroglyphen des Inhalts entziffern können und wo Sie herausfinden können, ob in dem, was Sie gelesen haben, mögliche Fehler enthalten sind.

 

Ein funktionierendes Dokumentationsbeispiel für den Microchip PIC16F18877


Zum Auftakt des ersten Teils dieser Serie von drei Artikeln konzentrieren wir uns auf einen einfachen 8-Bit-Mikrocontroller wie den PIC16F18877 und darauf, welche Dokumentation angeboten wird. Öffnen Sie diesen Link und klicken Sie dann auf 'Dokumente'. Sie werden sehen, dass uns das Datenblatt, Errata, einige 'unterstützende Ergänzungen' zu einigen anwendungsspezifischen Punkten und Evaluierungsboards, die Programmierspezifikationen sowie eine lange Liste von Anwendungshinweisen angeboten werden. Weiter unten finden Sie den Quellcode zu einigen der Anwendungshinweise, einige Verkaufsbroschüren und ein Weißbuch über ADCs (Analog-Digital-Wandler).

Was steht im Datenblatt zum Mikrocontroller?

Wir beginnen mit dem Herunterladen des Datenblatts für den PIC16F18877. Datenblätter für Mikrocontroller können ziemlich entmutigend sein, und, vielleicht überraschend, nicht alles, was Sie wissen müssen, ist darin enthalten. Das sollten Sie als Minimum finden:
 
Cover pages of PIC16F1877 datasheet
Auf den ersten Seiten sind die Funktionen aufgeführt, die den Mikrocontroller ausmachen. (Quelle: Microchip)
  • Detaillierte Informationen zu einzelnen oder mehreren Mikrocontrollern - Häufig werden von einem einzigen Silizium-Chip mehrere verschiedene Mikrocontroller mit einer unterschiedlichen Anzahl von Pins und Gehäusen abgeleitet. Anstatt eine Dokumentation für jede Variante zu erstellen und zu pflegen, werden Sie eher mehrere Bausteine in einem einzigen Datenblatt finden. Dies ist hier der Fall, wie auf Seite 1 erläutert, wobei zwei Varianten abgedeckt werden: der PIC16F18857 und der PIC16F18877.
  • Blockdiagramm des Mikrocontrollers – Dazu gehören typischerweise der Prozessorkern (der Detaillierungsgrad variiert; je komplexer der Kern, desto einfacher ist seine diagrammatische Umsetzung), die Speicher, Busse und Peripherie. Daraus lassen sich schnell die grundlegenden Fähigkeiten des Mikrocontrollers ableiten. Das Blockdiagramm des Mikrocontrollers finden Sie auf Seite 18, ein Blockdiagramm des Prozessorkerns auf Seite 33.
 
Block diagram of PIC16F1877 microcontroller
Das Blockdiagramm ist ein guter Ausgangspunkt, sie zeigen die
Gesamtfähigkeiten des Mikrocontrollers (links) und den Prozessorkern (rechts).
(Quelle: Microchip)
  • Packungsoptionen – Diese reichen von Durchgangsloch-Typen (z.B. DIL, falls noch verfügbar) bis hin zu einer Reihe von Optionen für die Oberflächenmontage. In diesem Beispiel beginnen sie auf Seite 4.
  • Speicher-Optionen – Der Mikrocontroller kann durchaus mit unterschiedlichen Größen von RAM, Flash, EEPROM und beliebigen anderen Speichertypen, wie z.B. Caches, angeboten werden. In unserem Beispiel erhalten wir auf Seite 3 einen kurzen Überblick. Die Tabelle listet die Speichergrößen auf und gibt an, wie viele der einzelnen Peripheriebausteine implementiert sind.

     
Memory options for PIC16F1877
Die Speicheroptionen für die PIC16F18x7-Varianten, aufgetragen über der implementierten Peripherie. (Quelle: Microchip)
  • Blockdiagramm der On-chip Peripherie – Die Funktionalität von On-Chip-Peripheriegeräten lässt sich leichter in Diagrammen als in Worten erklären. Blockdiagramme bieten eine wichtige Quelle für das Verständnis sowie Klarheit über Pin-Anschlüsse und Taktquellen, wobei der Mikrocontroller über mehrere Taktausgänge seines Oszillators und, falls implementiert, über PLL (phase-locked loop) verfügt. In Teil 2 der Reihe werden wir uns in Kürze einige Beispiele ansehen.
  • Register-Beschreinung – Jedes Peripheriegerät kann auf eine bestimmte Weise konfiguriert werden. So kann z.B. ein UART (universelle asynchrone serielle Empfangs-/Sendeschnittstelle) oft für verschiedene Baudraten, Anzahl der Bits usw. konfiguriert werden. In der Registerbeschreibung wird erklärt, wie das Peripheriegerät konfiguriert werden kann und wie sein Zustand nach einem Ereignis, z.B. dem Empfang eines Datenbytes, festgestellt werden kann. Wie diese entziffert werden, wird später im zweiten Teil der Reihe behandelt.
  • Elektrische Spezifikationen – Diese informieren den Anwender über die Spannungs- und Stromgrenzen, die an die Pins des Mikrocontrollers angelegt oder von diesen gezogen werden können. Sie werden typischerweise zweimal definiert: Einmal als absolute Maximalwerte und noch einmal als minimale, typische und maximale Werte während des normalen Betriebes. Es gibt auch Timing-Kennlinien, wie unten dargestellt, die ab Seite 592 in diesem Datenblatt zu finden sind.
 
PIC16F1877 electrical characteristics tables
Elektrische Spezifikationen werden als absolute Grenzwerte angegeben,
sowie minimaler, typischer und maximaler Wert für DC und
AC-Werte, sowie zeitliche Grenzen. (Quelle: Microchip)
  • Empfehlungen für Werkzeuge (Tools) – Sie benötigen Werkzeuge zum Konvertieren von Quellcode in Assembler und Werkzeuge zum Debuggen der Ergebnisse. Die meisten Datenblätter enthalten Empfehlungen der verfügbaren Werkzeuge. Hier werden sie auf Seite 638 kurz behandelt.

Ausblick auf Teil 2

Nachdem wir die grundlegende Struktur eines Mikrocontroller-Datenblatts verstanden haben, sind wir nun bereit, uns in Teil 2 näher damit zu befassen, wie Register beschrieben werden und wie die Blockdiagramme zu entschlüsseln sind. Wir werden uns auch die beiden wichtigsten Blöcke eines Mikrocontrollers im Detail ansehen: den Taktgeber und den Oszillator sowie die Implementierung der Reset-Schaltung.