MIKROCONTROLLER-MODULE Wolfgang Matthes
Elektor-Verlag GmbH 52072 Aachen www.elektor.de
MIKROCONTROLLER-MODULE
Die Entwurfsgrundsätze, Lösungsvorschläge und Projekte, die in diesem Buch beschrieben werden, sind aus zwei Ideen hervorgegangen: Erstens können neue Entwicklungen zwischen den weit verbreiteten kostengünstigen Mikrocontroller-Modulen und der industriellen Computerund Steuerungstechnik ihren Platz finden und zweitens ist es eine Herausforderung an sich, solche Module zu entwickeln und einzusetzen.
WOLFGANG MATTHES
Das vorliegende Buch beleuchtet Mikrocontroller-Module, die vor allem zum Experimentieren, zum Lernen und zum Einarbeiten in die Entwicklung und Programmierung von Embedded Systems gedacht sind.
In den ersten sieben Kapiteln dieses Buches werden die technischen Grundlagen diskutiert und anhand eigener Entwicklungen veranschaulicht. Das achte Kapitel gibt einen Überblick über diesen Modulbaukasten.
DESIGN SHARE
ISBN 978-3-89576-332-8
Weshalb nicht damit beginnen, Mikrocontroller-Module selbst zu entwickeln, zumindest aber sich in Gedanken mit solchen Aufgaben zu beschäftigen? Wie MikrocontrollerModule aufgebaut sind und wozu sie verwendet werden, soll in "Mikrocontroller-Module – Grundlagen und Selbstbau" dargestellt werden.
GRUNDLAGEN UND SELBSTBAU
●
Prof. Dr. Wolfgang Matthes war seit 1972 in verschiedenen Unternehmen und Forschungseinrichtungen tätig. Promotion 1987, Habilitation 1990. Arbeitsschwerpunkte: Subsysteme für Mainframe-Computer, Embedded Systems, Spezialhardware, Rechner- und Systemarchitektur. Von 1992 bis 2015 war er Professor für Prozessdatenverarbeitung an der FH Dortmund. Er hat über 50 Patente angemeldet und 10 Bücher publiziert.
MIKROCONTROLLER-MODULE
GRUNDLAGEN UND SELBSTBAU
Wolfgang Matthes LEARN DESIGN SHARE
LEARN
LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHAR GN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHA
Mikrocontroller-Module Grundlagen und Selbstbau
â—? Prof. Dr. Wolfgang Matthes
an Elektor Publication LEARN
Mikrocontroller Module DE 180206.indd 3
DESIGN
SHARE
29-03-18 13:58
●
© 2018: Elektor Verlag GmbH, Aachen.
●
Alle Rechte vorbehalten.
1. Auflage 2018
Die in diesem Buch veröffentlichten Beiträge, insbesondere alle Aufsätze und Artikel sowie alle Entwürfe, Pläne, Zeichnungen und Illustrationen sind urheberrechtlich geschützt. Ihre auch auszugsweise Vervielfältigung und Verbreitung ist grundsätzlich nur mit vorheriger schriftlicher Zustimmung des Herausgebers gestattet. Die Informationen im vorliegenden Buch werden ohne Rücksicht auf einen eventuellen Patentschutz veröffentlicht. Die in diesem Buch erwähnten Soft- und Hardwarebezeichnungen können auch dann eingetragene Warenzeichen sein, wenn darauf nicht besonders hingewiesen wird. Sie gehören dem jeweiligen Warenzeicheninhaber und unterliegen gesetzlichen Bestimmungen. Bei der Zusammenstellung von Texten und Abbildungen wurde mit größter Sorgfalt vorgegangen. Trotzdem können Fehler nicht vollständig ausgeschlossen werden. Verlag, Herausgeber und Autor können für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Für die Mitteilung eventueller Fehler sind Verlag und Autor dankbar. Umschlaggestaltung: Elektor, Aachen Satz und Aufmachung: D-Vision, Julian van den Berg | Oss (NL) Druck: Media-Print Informationstechnologie GmbH, Paderborn Printed in Germany
●
ISBN 978-3-89576-332-8
Elektor-Verlag GmbH, Aachen www.elektor.de
Elektor ist Teil der Unternehmensgruppe Elektor International Media (EIM), der weltweit wichtigsten Quelle für technische Informationen und Elektronik-Produkte für Ingenieure und Elektronik-Entwickler und für Firmen, die diese Fachleute beschäftigen. Das internationale Team von Elektor entwickelt Tag für Tag hochwertige Inhalte für Entwickler und DIYElektroniker, die über verschiedene Medien (Magazine, Videos, digitale Medien sowie Social Media) in zahlreichen Sprachen verbreitet werden. www.elektor.de
LEARN
Mikrocontroller Module DE 180206.indd 4
DESIGN
SHARE
29-03-18 13:58
Inhalt Vorwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Kapitel 1 • Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.1 Aufgaben der Projektentwickung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.2 Mikrocontrollersysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.3 Die Anwendungsumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.3.1 Echte Anwendungsperipherie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.3.2 Testumgebungen und Prüfplattformen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.3.3 Bedienung und Anzeige . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 1.3.4 Der PC als Bedienkonsole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 1.3.5 Real oder virtuell? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 1.3.6 Peripherie-Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 1.4 Systemkonfigurationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 1.4.1 Das Stand-Alone-System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 1.4.2 Das Client-Server-System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 1.4.3 Das Master-Slave-System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 1.4.4 Die Systemkonfiguration auswählen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 1.5 Mikrocontroller-Schnittstellen ausnutzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 1.5.1 Die grundsätzliche Entwurfsaufgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 1.5.2 Topologien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 1.5.3 Periphere Einrichtungen anschließen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 1.5.4 Mikrocontroller-Schnittstellen erweitern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 1.5.5 Tricklösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 1.5.6 Mikrocontroller und CPLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 1.5.7 Der Mikrocontroller als E-A-Erweiterung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 1.5.8 Die Mikrocontroller-Schnittstellen der Module . . . . . . . . . . . . . . . . . . . . . . . . . 64 Kapitel 2 • Bauweisen und Formfaktoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 2.1 Die Mikrocontroller-Plattform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 2.2 Bauweisen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 2.2.1 Eine einzige Platine (All-in-One) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 2.2.2 Die Hauptplatinen-Bauweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 2.2.3 Die Basisplatinen-Bauweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
●5
Mikrocontroller Module DE 180206.indd 5
29-03-18 13:58
Mikrocontroller Module - Grundlagen und Selbstbau 2.2.4 Passive Bus-Platinen (Backplanes) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 2.2.5 Die Steckkarten- oder Einschubbauweise (Rackmount) . . . . . . . . . . . . . . . . . . 77 2.2.6 Der Stapel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 2.2.7 Der Turm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 2.2.8 Das Buch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 2.2.9 Die verteilte Bauweise (Einzelaufstellung) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 2.3 Formfaktoren einfacher Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 2.4 Alternative Bauweisen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 2.4.1 Gegeneinanderstecken (Andocken) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 2.4.2 Übereinanderstapeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 2.4.3 Vertauschungsfälle beim Stecken und Stapeln . . . . . . . . . . . . . . . . . . . . . . . . . 94 2.4.4 Alles auf einer Platine (All in One) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 2.4.5 Basisplatine mit Aufsteckmodulen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 2.4.6 Module mit erweiterten Anschlussmöglichkeiten . . . . . . . . . . . . . . . . . . . . . . . 99 2.4.7 Der Universalanschluss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 2.5 19-Zoll-Mechanik ausnutzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 2.5.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 2.5.2 Brauchbare 19“-Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 2.5.3 Module als Steckkarten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 2.5.4 Die Frontplatte als Bauelementeträger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 2.5.5 Die Leiterplatte als Frontplatte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 2.6 Frei stöpseln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 2.7 Verbindungen, die wirklich halten: Draht wickeln . . . . . . . . . . . . . . . . . . . . . . . 115 Kapitel 3• Stromversorgung und Signalpegel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 3.1 Betriebsspannungen und Signalpegel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 3.2 Die Betriebsspannungen der Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 3.2.1 Betriebsspannungsaufbereitung und -verteilung . . . . . . . . . . . . . . . . . . . . . . 124 3.2.2 Betriebsspannungszuführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 3.2.3 Verpolschutz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 3.2.4 Batteriebetrieb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 3.2.5 Betriebsspannungsanschlüsse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 3.3 Pegelwandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
●6
Mikrocontroller Module DE 180206.indd 6
29-03-18 13:58
Inhalt 3.3.1 Universelle oder anwendungsspezifische Pegelwandlung? . . . . . . . . . . . . . . . . 134 3.3.2 Pegelwandlungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 3.3.3 Pegelwandlungsschaltungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Kapitel 4 • Schnittstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 4.1 Die Ports der Mikrocontroller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 4.2 Sonderanschlüsse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 4.3 Der Universalanschluss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 4.4 Die serielle Schnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 4.4.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 4.4.2 Die 5-V-Signalisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 4.4.3 Die RS-232-Signalisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 4.4.4 Die USB-Signalisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 4.4.5 Die Bluetooth-Signalisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 4.5 Höher entwickelte Schnittstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 4.6 Standardschnittstellen ausnutzen und emulieren . . . . . . . . . . . . . . . . . . . . . . . 156 4.6.1 ISA und PCI: herkömmliche Bus-Systeme emulieren . . . . . . . . . . . . . . . . . . . 157 4.6.2 Die parallele Schnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 4.6.3 Die Tastatur- und Mausschnittstelle (AT und PS/2) . . . . . . . . . . . . . . . . . . . . . 166 4.6.4 Massenspeicher-Schnittstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Kapitel 5 • Steckverbinder und Verkabelung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 5.1 Steckverbinder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 5.2 Flachbandkabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 5.2.1 Die Orientierung der Steckverbinder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 5.2.2 Steckverbinder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 5.2.3 Flachbandkabel konfektionieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 5.2.4 Formkabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 5.3 Klemmenleisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Kapitel 6 • Bedienung und Anzeige . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 6.1 Inbetriebnahme und Fehlersuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 6.1.1 Betriebszustands- und Fehleranzeige . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 6.1.2 Signalanzeige . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 6.1.3 Bedieneinrichtungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
●7
Mikrocontroller Module DE 180206.indd 7
29-03-18 13:58
Mikrocontroller Module - Grundlagen und Selbstbau 6.1.4 Bedien- und Anzeigeeinrichtungen anschließen . . . . . . . . . . . . . . . . . . . . . . . 192 6.1.5 Diagnose- und Debugging-Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 6.2 Anwendungslösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 6.3 Lernen und Experimentieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 6.4 Computer als Bediengeräte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 6.4.1 Bedien-Computer auswählen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 6.4.2 Kleine Tablets ausnutzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 6.4.3 Programmier- und Anwendungsprobleme . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Kapitel 7 • Mikrocontroller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 7.1 Mikrocontroller-Familien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 7.2 Takt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 7.3 Rücksetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 7.4 Programme in den Mikrocontroller laden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 7.4.1 Programmieranschlüsse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 7.4.2 In der Anwendungsumgebung programmieren . . . . . . . . . . . . . . . . . . . . . . . 225 7.4.3 Im Programmspeicher von Hand ändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 7.4.4 Programme aus dem RAM ausführen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 7.5 Programme zum Laufen bringen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 7.6 Programme schreiben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 7.7 Mehrprozessorsysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 7.7.1 Parallelisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 7.7.2 Mikrocontroller als E-A-Prozessoren und periphere Einrichtungen . . . . . . . . . . 232 7.7.3 Elementare Zweiprozessorsysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 Kapitel 8 • Module im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 8.1 ATmega-Modul Typ 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 8.2 LCD-Bedientafel Typ 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 8.3 LCD-Anzeige 10a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 8.4 Bedientafel 10b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 8.5 Port Sniffer Typ 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 8.6 CPLD-Lehrgerät 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 8.7 Xmega-Trainer Typ 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 8.8 Xmega-Trainer Typ 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
●8
Mikrocontroller Module DE 180206.indd 8
29-03-18 13:58
8.9 Xmega-Trainer Typ 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 8.10 All-in-One-Gerät Typ 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 8.11 All-in-One-Gerät Typ 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 8.12 Kippschaltergerät Typ 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 8.13 Kippschalterkleingerät Typ 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Kapitel 9 • Literatur- und Quellenverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
●9
Mikrocontroller Module DE 180206.indd 9
29-03-18 13:58
Vorwort
Vorwort Das vorliegende Buch betrifft Mikrocontroller-Module, die vor allem zum Experimentieren, zum Lernen und zum Einarbeiten in die Entwicklung und Programmierung von Embedded Systems gedacht sind, aber auch eingesetzt werden können, um echte Gebrauchswerte zu implementieren, beispielsweise als Bedieneinrichtung, Kleinsteuerung oder anwendungsspezifisches Prüfgerät. Das Angebot von Mikrocontroller-Platinen zu Bastel-, Experimentier- und Lehrzwecken ist überaus reichlich. Mit den typischen kleinen, kostengünstigen Modulen kann man schnell zu ersten Erfolgserlebnissen kommen, ohne sich in die Einzelheiten einarbeiten zu müssen. Probleme werden sich aber dann zeigen, wenn man ehrgeizigere Projekte verwirklichen möchte. Teurere, größere Platinen enthalten eine reiche Auswahl an peripheren Einrichtungen, sind aber reine Lehrmittel, die sich nicht als OEM-Funktionseinheiten1 eignen. „... nicht alles ist dem Hörenden deutlich zu machen, was dem Ausübenden einleuchtet“ (J. W. Goethe). Wer die Rechnerarchitektur, die Computertechnik und die Grundlagen der Programmierung wirklich kennenlernen und sich in die Entwicklung von Embedded Systems einarbeiten möchte, muss mehr tun, als Leiterplatten mit mehr oder weniger klangvollen Namen zu kaufen, Verbindungen zu stöpseln und Gigabytes an Software herunterzuladen. Entscheidend ist, so viel wie möglich selbst zu tun, um etwas zu lernen und vielleicht sogar auf neue Ideen zu kommen. Weshalb nicht damit beginnen, Mikrocontroller-Module selbst zu entwickeln, zumindest aber sich in Gedanken mit solchen Aufgaben zu beschäftigen? Wie Mikrocontroller-Module aufgebaut sind und wozu sie verwendet werden, ist nicht schwer zu verstehen. Entsprechende Entwicklungsaufgaben können im Rahmen des Selbststudiums, der Ausbildung, ja sogar der hobbymäßigen Betätigung bearbeitet werden. Es sind gute Übungsgelegenheiten, vor allem auch für Anfänger. Die Probleme sind weder zu trivial noch zu kompliziert. Sie beziehen sich auf alle typischen Entwicklungsprozesse, von der Ausarbeitung der Produktidee über die Schaltungs- und Leiterplattenentwicklung, die Inbetriebnahme und Fehlersuche bis hin zur Anwendungsprogrammierung. Wenn man schon aus freien Stücken selbst entwickelt, liegt es nahe, nicht sklavisch nachzubauen, sondern nach Verbesserungsmöglichkeiten und Alleinstellungsmerkmalen zu suchen. Die Entwurfsgrundsätze, Lösungsvorschläge und Projekte, die in diesem Buch beschrieben werden, sind aus zwei Ideen hervorgegangen: Erstens könnten neue Entwicklungen zwischen den weit verbreiteten kostengünstigen Mikrocontroller-Modulen und der industriellen Computer- und Steuerungstechnik ihren Platz finden und zweitens ist es eine Herausforderung an sich, solche Module zu entwickeln und einzusetzen. Die Module sollen zum Lernen und Experimentieren geeignet sein, aber auch als Funktionseinheiten in Projekten und als Laborausrüstung. Es sollen echte OEM-Bausteine sein, die überall dort verwendet werden können, wo genügend Platz ist und keine extremen 1 OEM = Original Equipment Manufacturer. Es ist eine Art Oberbegriff für Baugruppen, Funktionseinheiten, Geräte usw., die als Zulieferteile angeboten werden.
● 11
Mikrocontroller Module DE 180206.indd 11
29-03-18 13:58
Mikrocontroller Module - Grundlagen und Selbstbau
Anforderungen zu erfüllen sind. Typische Beispiele sind Geräte in Desktop- oder Rackmount-Formfaktoren, experimentelle Fahrzeugmodelle sowie anwendungsspezifische Systeme zu Test- und Forschungszwecken. Vieles von dem, was für kleinere Mikrocontroller-Anwendungen nützlich ist, soll kompakt beieinander angeordnet werden. Es soll aber nicht übermäßig kompliziert werden. Die Module sollen ausreichend robust sein. Es soll möglich sein, sie am Küchentisch zusammenzubauen. Zum Messen soll man an alles herankommen. Es soll möglich sein, größere Systeme aus mehreren Modulen aufzubauen und solche Anordnungen mechanisch so zu gestalten, dass sie etwas aushalten und nicht bei der geringsten Beanspruchung auseinanderfallen. Um diese Ziele zu erreichen, dürfen die Kosten etwas höher und die Abmessungen etwas größer werden. Wir werden also etwas großzügiger bauen und Bauelemente verwenden, die etwas teurer sind. Der Leiterplattenentwurf, das Bestücken, Löten usw. soll innerhalb der Grenzen möglich sein, die typischen Studenten oder ehrgeizigen Hobbyisten gesetzt sind.
Abb. 1 Eine kleine Auswahl kleiner Module
Abb. 2 Einige der Module, die im vorliegenden Buch beschrieben werden
● 12
Mikrocontroller Module DE 180206.indd 12
29-03-18 13:58
Vorwort
Abb. 3 Funktionseinheiten der industriellen Technik (Phoenix Contact, Wago) In den ersten sieben Kapiteln dieses Buches werden die technischen Grundlagen diskutiert und anhand eigener Entwicklungen veranschaulicht. Was hier vorgestellt wird, ist eine Art Modulbaukasten mit bestimmten Formfaktoren,konstruktiven Auslegungen und Schaltungslösungen. Das achte Kapitel enthält Kurzbeschreibungen mehrerer Module. Tiefer gehende Einzelheiten sind im Internet zugänglich. Die Schaltungslösungen wurden in der Praxis erprobt. Die Formfaktoren der Leiterplatten, die funktionale Aufteilung zwischen den Modulen und die Auslegung der Verkabelung und der Stromversorgung haben sich als zweckmäßig erwiesen. Die Module können innerhalb angemessener Zeit- und Kostengrenzen entworfen, aufgebaut und eingesetzt werden. Es ergeben sich mehrere Möglichkeiten, die in diesem Buch mitgeteilten Lösungen und Vorschläge anzuwenden. U. a. kann man • Schaltungsentwürfe abwandeln und Teilschaltungen zu neuen Anwendungslösungen kombinieren, • Platinenentwürfe abwandeln, • Platinen nach eigenen Vorstellungen bestücken und einsetzen, • die Erläuterungen im Sinne von Anregungen auswerten. Der nächste logische Schritt könnte sein, Anwendungslösungen nicht mehr aus Modulen zusammenzustellen, sondern anwendungsspezifische Leiterplatten zu entwickeln, auf denen der Mikrocontroller unauffällig in einer Ecke sitzt – oder womöglich sogar in einem FPGA. Die hier mitgeteilten technischen Lösungen sind frei nutzbar (Open Source Hardware). Es gelten die Bedingungen der CERN Open Hardware License (CERN OHL). Für die Funktionsfähigkeit, die Eignung für eine beliebigen Einsatzzweck und die Freiheit von fremden Schutzrechten kann keine Garantie übernommen werden.
● 13
Mikrocontroller Module DE 180206.indd 13
29-03-18 13:58
Mikrocontroller Module - Grundlagen und Selbstbau
Kapitel 1 • Grundlagen 1.1 Aufgaben der Projektentwickung Was wir eigentlich brauchen, ist ein kleiner Computer, der auf einem Mikrocontroller beruht. Das ist der Ausgangspunkt der Projektentwicklung oder eine Plattform zum Programmieren. Abb. 1.1 gibt einen Überblick über die wesentlichen Funktionseinheiten. Eine wichtige Entwurfsentscheidung ist, wie man diese Funktionseinheiten auf Leiterplatten unterbringt. Abb. 1.2 zeigt Beispiele kleiner, mittelgroßer und großer Module.
Abb. 1.1 Die meisten Mikrocontroller-Plattformen enthalten die Funktionseinheiten, die hier darstellt sind. Die Unterschiede liegen in den Einzelheiten.
Abb. 1.2 Beispiele kleiner, mittelgroßer und großer Mikrocontroller-Module ([1])
● 14
Mikrocontroller Module DE 180206.indd 14
29-03-18 13:58
Kapitel 1 • Grundlagen
Die große Leiterplatte ist im Wesentlichen ein komplettes System (All-in-One), ein Mikrocontroller mit vielen Funktionseinheiten, E-A-Einrichtungen und Schnittstellen. Es eignet sich gut für Benutzer, die intensiv programmieren, aber nichts bauen wollen. Man braucht nicht einmal einen Schraubendreher. Eine solche Leiterplatte ist aber teuer, zu teuer zum Wegwerfen, wenn ein Bauelement ausgefallen ist. Die Reparatur von großen, dicht bestückten Platinen erfordert Erfahrung und eine spezielle Ausrüstung2. Offensichtlich können solche Platinen nicht als universelle OEM-Baugruppen verwendet werden. Mehrprozessorkonfigurationen sind nicht unmöglich, aber wegen der Größe etwas unhandlich. Um ein Anwendungsproblem mit kleinen Platinen zu lösen, müssen weitere Module angeschlossen werden, manchmal auch anwendungsspezifische Schaltungen. Eine entscheidende Frage ist, auf welche Weise dies erfolgt. Wichtige Punkte sind die Benutzerfreundlichkeit, die Zuverlässigkeit und die Robustheit. Auch ist zu fragen, was der Anwender mitbringen muss – an Fachkenntnissen und Ausrüstung –, um mit solchen Modulen erfolgreich arbeiten zu können. Preisgünstige Module sind oft nur zum Basteln und Experimentieren gedacht3. Es ist nicht schwierig, mit ihnen umzugehen. Die Projekte erfordern nur ein kleines Budget und wenig Ausrüstung. Sie können auf dem sprichwörtlichen Küchentisch zum Laufen gebracht werden. Solche Module eignen sich gut für all jene, die etwas mit Mikrocontrollern tun wollen, ohne tief in die Einzelheiten einzudringen. Wenn jedoch ehrgeizigere Projekte verfolgt werden, wird sich bald herausstellen, dass die ausgesprochen kostengünstigen Module, Platinen usw. beträchtliche Unzulänglichkeiten aufweisen: 1. Sie sind oftmals nur zum Basteln oder für Versuchsaufbauten bestimmt. Es sind Übungs- und Experimentiermodule, aber keine OEM-Module. So kann man viele Bedien- und Anzeigebaugruppen nicht ohne Weiteres hinter eine Frontplatte setzen. 2. Es ist nicht immer offensichtlich, wie eine Anwendungslösung aus mehreren Modulen aufgebaut werden kann, beispielsweise aus einer Schrittmotorsteuerung, einem grafischen Display und einem Tastenfeld. 3. Die Adaptierung der eigentlichen Anwendungsumgebung ist unbequem und zumeist auch nicht robust genug (z. B. einfache Steckleisten und Verbindungen, die Leitung für Leitung einzeln gesteckt werden müssen). 4. Das Bereitstellen eines praxisgerechten Bedienkomforts (beispielsweise einer Bedientafel mit LCD-Anzeige, Tasten, Inkrementalgeber usw.) erfordert eigene Bastelleistungen. Es ist zumeist nicht der Fall, dass man die Apparate aus der Verpackung nehmen, zusammenstöpseln und einschalten kann und dann sofort ein Erfolgserlebnis hat (Out-of-Box Experience). 5. Die Module sind zum Aufbau von Mehrprozessorsystemen nicht von Grund auf geeignet. Es wäre möglich, aber man müsste basteln. 6. Es ist nicht All-in-One. Eine Anwendungskonfiguration besteht stets aus mehre2 Unter anderem eine Heißluft-Reparaturstation (Hot Air Soldering Rework Station) 3 Gelegentlich steht sogar im Kleingedruckten, dass das Modul nicht für den industriellen Einsatz vorgesehen ist (Disclaimer).
● 15
Mikrocontroller Module DE 180206.indd 15
29-03-18 13:58
Kapitel 2 • Bauweisen und Formfaktoren
Kapitel 2 • Bauweisen und Formfaktoren 2.1 Die Mikrocontroller-Plattform Es ist ein kleiner Computer, der auf einem Mikrocontroller beruht. Er wird in einer Anwendungsumgebung oder in einer experimentellen Umgebung eingesetzt, um Anwendungsprobleme zu lösen, zu experimentieren oder um etwas zu lernen. Unabhängig davon, ob man diese Plattform selbst entwickelt oder aus dem reichhaltigen Angebot des Marktes auswählt, ergibt sich die Frage nach der jeweils zweckmäßigsten konstruktiven Auslegung, der Bauweise und dem Formfaktor. Hierbei geht es vor allem um die Aufteilung der Funktionseinheiten auf Leiterplatten sowie um die Vorkehrungen zur Systemerweiterung und zum Einbau in Anwendungsumgebungen. Standardisierte oder anwendungsspezifische Ausführungen Die Anwendungspraxis kennt sowohl standardisierte Formfaktoren als auch anwendungsspezifische Auslegungen von Leiterplatten und Baugruppen. Als Beispiel sei auf Leiterplatten der Fahrzeugelektronik verwiesen, deren Form genau an den jeweiligen Einbauort im Fahrzeug angepasst und deren Ausgestaltung bis ins kleinste optimiert ist. Diese Problemkreise werden hier nicht behandelt. Wenn entsprechende Entwicklungsziele gestellt sind – Standards einzuhalten oder die Lösung in allen Einzelheiten an die jeweilige Anwendungsumgebung anzupassen –, dann bleibt nichts anderes übrig, als diese Forderungen zu erfüllen. Die Entwicklungsaufwendungen sind hoch, die zu lösenden Probleme komplex und vielfältig. Man braucht Fachwissen und Erfahrung, um solche Aufgaben zu bewältigen. Die folgenden Ausführungen können sich hingegen nur darauf beziehen, dass man die freie Wahl hat, dass keine extremen Anforderungen zu erfüllen sind und dass es nicht zu schwierig wird. Die Entwicklungsaufgaben sollen sich am sprichwörtlichen Küchentisch erledigen lassen, die Entwicklungsziele betreffen typische Einfachlösungen. Die funktionelle und konstruktive Aufteilung Manchmal passt wirklich alles auf eine einzige Leiterplatte, sogar die Stromversorgung. In den weitaus meisten Fällen muss man aber die Hardware aufteilen. Es gibt vielfältige Gründe, die dazu zwingen: • Die reine Größe. Es sind zu viele oder zu große Bauteile. Wie groß eine Leiterplatte sein darf, ergibt sich zum einen aus der jeweiligen Anwendung (Einbaumaße), zum anderen aus den Aufwendungen in Entwicklung und Fertigung sowie aus mechanischen Problemen. • Die Fertigungstechnologien. Manche sind beherrschbar, manche zu kompliziert. Manche Funktionseinheiten kann man selbst entwickeln, andere muss man fertig kaufen. • Die Bauelemente. Manche kann man auf einer gemeinsamen Leiterplatte unterbringen, manche nicht. Offensichtliche Unterschiede gibt es in Hinsicht auf Abmessungen und Gewicht, auf die An-
● 69
Mikrocontroller Module DE 180206.indd 69
29-03-18 13:58
Mikrocontroller Module - Grundlagen und Selbstbau
forderungen an die mechanische Konstruktion, an die Isolation usw. Auch wenn es möglich ist, alle Bauelemente auf derselben Platine unterzubringen, kann es sein, dass aus weiteren Gründen eine Aufteilung erforderlich ist. Das betrifft u. a. die Bestückung, die Lötverfahren, die Löttemperaturen und die Wirtschaftlichkeit der Fertigung32. • Die Ein- und Ausgänge. Mikrocontroller-Platinen arbeiten in typischen Bereichen der Betriebsspannungen, Ströme, Signalpegel, Flankensteilheiten usw. Was aus der Außenwelt kommt oder in die Außenwelt geht, kann davon beträchtlich abweichen (Sensoren, Leistungsstufen, Relais usw.). Manchmal kann ein getrennter Aufbau schon deshalb notwendig sein, damit sich die einzelnen Funktionseinheiten nicht zu sehr gegenseitig stören. • Die Nutzung standardisierter Funktionseinheiten. Nicht selten bestehen Anwendungslösungen aus standardisierten Funktionseinheiten und selbst entwickelten anwendungsspezifischen Schaltungen der Adaptierung, Signalwandlung usw. • Erwägungen in Hinsicht auf Prüfbarkeit, Service und Reparatur, Marketing und Produktpflege („Upgrade”). Manche Systeme müssen so ausgelegt werden, dass man Funktionseinheiten austauschen und hinzufügen kann. • Die konstruktive Anordnung. Bedienfelder sind an der vorgesehenen Stelle im Gehäuse unterzubringen, Leistungsstufen im Schaltschrank, Sensoren in der Nähe der Signalquelle usw. Was ist technologisch beherrschbar, was nicht? Die Frage betrifft vor allem die Grenzen, die der Leiterplattentwicklung gesetzt sind. Was kann man sich selbst von den Kosten her leisten, vom Können her zutrauen, was nicht? Es geht hier nur um vergleichsweise bescheidene Projekte, nicht um die professionelle, fertigungsgerechte Leiterplattengestaltung unter Beachtung aller Anforderungen (Stromversorgung, Störpegel, Signalreflexionen, Hochfrequenzverhalten, EMV, Lötverfahren, Werkstoffe, Umweltauflagen usw.). In der Industrie ist das die Angelegenheit von Fachleuten, Fachabteilungen und Spezialfirmen. Was hier in Rede steht, ist hingegen nur ein bescheidener Entwicklungsgang: Man überlegt sich die Gesamtlösung und die funktionelle Aufteilung (Dekomposition, Partitionierung). Die einzelne Leiterplatte wird als Schaltplan entworfen. Beim Anordnen der Bauelemente hält man sich an die üblichen gutgemeinten Hinweise (Literatur, Trainingsvideos, Internetforen) und an den gesunden Menschenverstand. Das Platinen-Layout lässt man sich dann vom Autorouter erzeugen und von einem kostengünstigen Dienstleister fertigen. Schließlich wird die Platine von Hand bestückt. Projekte, die sich auf diesem Weg aller Voraussicht nach nicht erledigen lassen, scheiden aus den weiteren Betrachtungen aus. Anmerkungen zur Leiterplattengröße und Auslegung: • Die Leiterplatten nicht zu groß und nicht zu kompliziert. Kosten und Einarbeitungszeit sollen sich in Grenzen halten. Preisgünstige oder freie Entwicklungs-Software setzt der Platinengröße gewisse Grenzen. 32 Sie kann beispielsweise dann beeinträchtigt sein, wenn bestimmte Bauelemente nachträglich von Hand aufgelötet werden müssen.
● 70
Mikrocontroller Module DE 180206.indd 70
29-03-18 13:58
Kapitel 3• Stromversorgung und Signalpegel
Kapitel 3• Stromversorgung und Signalpegel 3.1 Betriebsspannungen und Signalpegel Wenn der Schaltungsaufwand gering bleiben soll, hängt beides eng zusammen. Die typischen Digitalschaltungen haben einen Signalhub, der näherungsweise der Betriebsspannung entspricht. Je kleiner die Halbleiterstrukturen, desto geringer muss die Betriebsspannung sein. Viele Schaltkreise mit sehr hohem Integrationsgrad, wie Mikrocontroller, CPLDs und FPGAs, haben unterschiedliche Betriebsspannungen für die Schaltungen im Innern (Core Voltage) und für die Anschlüsse (I/O Voltage). CMOS-Schaltkreise können in einem vergleichsweise großen Bereich der Betriebsspannung arbeiten. Die kürzesten Schaltzeiten ergeben sich aber nur, wenn die Betriebsspannung am oberen Ende des Zulässigen liegt73. So dürfen manche Mikrocontroller nur oberhalb bestimmter Mindestwerte mit der maximalen Taktfrequenz betrieben werden. In der Anwendungspraxis sind einige Betriebsspannungen und Signalpegel zu Industriestandards geworden. Mit Einführung der TTL-Technologie wurde + 5 V zur am weitesten verbreiteten Betriebsspannung von Digitalschaltkreisen. Die Abb. 3.1 und 3.2 sowie Tabelle 3.1 geben einen Überblick über typische Betriebsspannungs- und Signalpegelspezifikationen74. Elementare Faustregeln: • TTL-Kompatibilität (Richtwerte): Signalhub 3 V, Schwellenspannung 1,5 V, Low < 0,8 V, High > 2 V • CMOS: Der Signalhub entspricht nahezu der Versorgungsspannung (Rail-to-Rail-Schaltverhalten). Richtwerte: Low < 0,1 V; High > VCC – 0,1 V Schwellenspannung = halbe Versorgungsspannung (0,5 VCC).
Abb. 3.1 Typische Betriebsspannungen für Digitalschaltungen (TTL und CMOS)
73 Und zwar deshalb, weil der Kanalwiderstand RDSon mit steigender Gatespannung VGS sinkt. Je niedriger RDSon, desto schneller können die parasitären Kapazitäten umgeladen werden. In Digitalschaltungen ist aber VGS praktisch gleich der Betriebsspannung (VDD). 74 Zu Einzelheiten sei auf [40] bis [43] verwiesen.
● 121
Mikrocontroller Module DE 180206.indd 121
29-03-18 13:58
Mikrocontroller Module - Grundlagen und Selbstbau
Abb. 3.2 Signalspezifikationen für typische Betriebsspannungen Kennwert
TTL-Kompatibilität
5-V-CMOS
Moderne CMOS-
(HC, AC)*
Spezifikationen
Ausgangskennwerte Minimum-High am Ausgang
Maximum-Low am Ausgang
2,4 V
4,44 V (typisch 4,9 V)
0,75 VCC
0,4 V
0,44 V (typisch 0,1 V)
0,25 VCC
(VOHmin)
(VOLmax)
Eingangskennwerte Minimum-High am Eingang
Maximum-Low am Eingang
2 V
0,7 VCC (3,5 V)
0,65 VCC
0,8 V
0,3 VCC (1,5 V)**
0,35 VCC
1,5 V
0,5 VCC (2,5 V)
0,5 VCC
(VIHmin)
(VILmax)
Schwellenspannung (VTH)
Störspannungsabstände Low
(VNML)
0,4 V
1,06 V (typisch 1,4 V)
0,1 VCC
High
VNMH)
0,4 V
0,94 V (typisch 1,4 V)
0,1 VCC
*: Betriebsspannungsbereich 2 … 6 V. Werte in Klammern für VCC = 5 V **: Nach JEDEC: 0,2 VCC (1 V).
Tabelle 3.1 Logikpegel, Störspannungsabstände und Schwellenspannungen typischer Signalspezifikationen An den Schnittstellen zu industriellen Anwendungsumgebungen sind 24 V der wichtigste Industriestandard. 24 V sind im Grunde das, was man einer Platine, die auch Schaltkreise der Informationsverarbeitung (digital und analog) enthält, noch ohne Weiteres zumuten
● 122
Mikrocontroller Module DE 180206.indd 122
29-03-18 13:58
Kapitel 4 • Schnittstellen
Kapitel 4 • Schnittstellen 4.1 Die Ports der Mikrocontroller Die Verbindungen zwischen den Modulen sollen einfach sein und nur wenig Schaltungsaufwand erfordern. Hierfür werden vor allem folgende Schnittstellen ausgenutzt: • Mikrocontroller-Ports als frei programmierbare E-A-Einrichtungen, • die seriellen Interfaces I2C (TWI) und SPI, • die serielle Schnittstelle. Die vielseitigsten Schnittstellen sind die Ports der Mikrocontroller. Passive Module (ohne eingebauten Mikrocontroller), die nur einfache Schaltungen enthalten, werden direkt an Mikrocontroller-Ports angeschlossen. Typische Nutzungsweisen sind: • Gemeinsamer Datenbus. Bidirektional. Auch zu Abfragezwecken verwendet. • Gemeinsame auswärtsführende Signale wie Adressen, Auswahlsignal und Kommandocodes. • Erlaubnis- und Strobe-Signale für die einzelnen Einrichtungen. • Signale, die von den Einrichtungen kommen (Daten, Zustandssignale, Anforderungssignale, Rückmeldungen und Signale zur Unterbrechungsauslösung). Eine typische Schnittstelle zwischen Mikrocontroller und Peripheriemodulen ist als bidirektionaler Datenbus von 4 oder 8 Bits organisiert, begleitet von 4 bis 8 Auswahl-, Steuer- und Strobe-Signalen. Manche Mikrocontroller-Module enthalten Pegelwandlungsschaltungen, die auf solche Nutzungsweisen abgestimmt sind. TWI (I2C) und SPI werden dann genutzt, wenn die anzuschließenden Module Schaltkreise oder Funktionseinheiten mit solchen Schnittstellen enthalten (das betrifft beispielsweise Ethernet-Adapter, USB-Hostadapter oder OLED-Displays). Die serielle Schnittstelle ist das Interface zu über- oder vorgeordneten Computern und zu anderen Mikrocontroller-Modulen. Port-Anschlüsse Zumeist sind die Mikrocontroller-Ports 1:1 an Steckverbinder geführt. Der übliche Port-Anschluss umfasst 8 Signale, die Betriebsspannung des Mikrocontrollers (VCC) und Masse (Abb. 4.1). Er hat die gleiche Kontaktbelegung wie die Stiftleisten der Atmel AVR Starterkits. Abweichende Ausführungen: • In manchen Anschlüssen sind Signale mehrerer Mikrocontroller-Ports zusammengefasst. • Manche Module enthalten Port-Anschlüsse mit Pegelwandlung. • Manche Module enthalten einen Universalanschluss, über den mehrere Ports zugänglich sind. • In manchen Modulen sind Port-Anschlüsse auf Klemmenleisten geführt.
● 141
Mikrocontroller Module DE 180206.indd 141
29-03-18 13:58
Mikrocontroller Module - Grundlagen und Selbstbau
Abb. 4.1 Typische Anschlüsse von 8-Bit-Ports. a) Wannenstiftleiste, b) Klemmenleiste. x ist ein beliebiger Port-Bezeichner (wie A, B, C usw.). VOUT – die Betriebsspannung der Ein- und Ausgabe Dieser Name dient hier als Allgemeinbezeichner. Je nach Auslegung des Moduls ist VOUT = 5 V (V5V), entspricht der Betriebsspannung des Mikrocontrollers (VCC) oder ist konfigurierbar, beispielsweise über Jumper. 4.2 Sonderanschlüsse Manche Mikrocontroller haben Wannenstiftleisten, die mit Port-Signalen so belegt sind, dass bestimmte Nutzungsweisen unterstützt werden. Abb. 4.2 zeigt drei Beispiele: a) Ein 4-Bit-Bus (BUS3 … 0), der von vier Steuersignalen (CTL3 … 0) begleitet wird. Eine typische Nutzung ist der Anschluss der LCD-Bedientafel Typ 1. Hierfür muss der Anschluss für 5 V ausgelegt sein (VOUT = V5V). b) Ein Anschluss für die seriellen Interfaces I2C (Atmel: TWI) und SPI. I2C-Signale: SDA, SCL. SPI-Signale: MOSI, MISO, SCK, bedarfsweise zusätzlich SS#. Die AUX-Signale sind frei nutzbare zusätzliche Port-Signale. c) Ein Anschluss mit Signalen, die vielseitig brauchbar sind. Es sind Signale eines Xmega-Mikrocontrollers. Sie können als Zeitgebersignale, als Analogeingänge oder zur Interrupt-Auslösung genutzt werden, aber auch als frei programmierbare Port-Signale.
Abb. 4.2 Sonderanschlüsse. Drei Beispiele. 4.3 Der Universalanschluss Manche Module haben eine solchen Anschluss an der Vorderkante (bezogen auf die normale Gebrauchslage). Er ist vor allem zum Anschließen von Bedientafeln, Bluetooth-Modulen usw. vorgesehen (Abb. 4.3). Die Prinziplösung wird in Abschnitt 2.4.7 beschrieben (Seite 99).
● 142
Mikrocontroller Module DE 180206.indd 142
29-03-18 13:58
Mikrocontroller Module - Grundlagen und Selbstbau
Kapitel 5 • Steckverbinder und Verkabelung 5.1 Steckverbinder Die einfachste Art der Aufstellung ist das Nebeneinanderstellen der Module, die einfachste Verbindung das 1:1-Flachbandkabel, das ohne Rücksicht auf Schönheit, also Vertauschungsfälle, in Wannenstiftleisten der Module gestöpselt wird. Kabel mit Steckern sind schnell gefertigt, Verbindungen schnell hergestellt. Das Stecken der Verbindungen ist nicht vollkommen narrensicher, aber immerhin gegen das Vertauschen oder Vergessen einzelner Leitungen geschützt. Die Steckverbindungen sind unter üblichen Einsatzbedingungen robust genug; sie fallen nicht bei der geringsten Beanspruchung auseinander. Wenn die Module als OEM-Baugruppen eingesetzt werden, kann man durch Fertigen angepasster Formkabel – unter Beachtung der Vertauschungsfälle – oftmals eine übersichtliche, ansehnliche Verkabelung darstellen. Die bevorzugten Steckverbinder sind Stiftleisten für Signalleitungen und Klemmenblöcke für die Stromversorgung. Wir verwenden vor allem Pfosten- und Wannensteckverbinder (Pin Headers, Box Headers) mit zwei Kontaktreihen und einem Anschlussabstand von 2,54 mm (100 mil). Es können verschiedene Typen bestückt werden. Abhängig von den Steckverbindern können andere Module über Kabel angeschlossen oder übereinandergestapelt werden. Die Abb. 5.1 bis 5.6 zeigen Beispiele typischer Steckverbinder. Direkte Steckverbindungen? Die Leiterplatten haben Kontaktflächen, die zwischen Kontaktfedern geschoben werden. Typische Beispiele sind die Steckkarten und Steck-Slots der Personalcomputer. Solche Steckverbindungen kommen für Selbstbauprojekte nicht in Betracht, weil sie nur mit richtiger Vergoldung der Leiterplattenkontakte wirklich zuverlässig sind. Richtwert: wenigstens 0,4 µm Hartvergoldung über Nickel. Sonst werden die Kontakte bald sehr unzuverlässig. Es ist eine Kostenfrage. Blankes Kupfer gibt gar keine brauchbaren Kontakte, Verzinnen ist eine Notlösung110. Anschlussabstände Wir nutzen vorzugsweise übliche Industriestandards: • 2,54 mm = 100 mil111 • 3,81 mm = 150 mil • 5,08 mm = 200 mil Verkabelung Die Module werden über Flachbandkabel miteinander verbunden. Einige Module können mit Klemmenleisten bestückt werden, so dass man Peripherieschaltungen, Leistungsstufen und 110 Es ergibt zunächst durchaus zuverlässige Verbindungen. Das Einstecken einer solchen Platine macht aber die Steckfassung (Slot) für alle anderen Steckkarten unbrauchbar. 111 1 mil = 1/1000 Zoll.
● 168
Mikrocontroller Module DE 180206.indd 168
29-03-18 13:58
Kapitel 5 • Steckverbinder und Verkabelung
dergleichen mit Draht anschließen kann. Der Stiftabstand beträgt vorzugsweise 3,81 mm (150 mil). Der Steckverbindertyp ist an sich beliebig. Wir bevorzugen trennbare Steckverbinder von Phoenix Contact. Sie sind etwas teurer, lassen aber die anwendungsspezifische Verdrahtung intakt, wenn das Modul entfernt oder ausgetauscht werden soll.
Abb. 5.1 Einfache Stiftleisten (Pin Headers). a) einreihig, gerade, b) zweireihig, gerade, c) zweireihig, abgewinkelt
Abb. 5.2 Vorkonfektionierte Kabel mit Steckverbindern zum Aufstecken auf einfache Stiftleisten. a) ohne, b) mit Verdrehsicherung. Links daneben die zugehörige Stiftleiste. c) Solche Kabel gibt es mit mehreren Leitungen. Bis zu 10 sind typisch. Einfache Steckverbindungen mit Komponenten gemäß Abb. 5.1 und 5.2 werden u. a. verwendet, um externe D-Sub-Stecker, LEDs oder Schalter anzuschließen. Es gibt weitere Steckverbindersysteme, die von ihrem Footprint her geeignet sind (Raster 2,5 oder 2,54 mm). Eine Frage ist, ob man wirklich fertige Kabel (also Stecker mit Draht) kaufen kann oder ob man sich die Kabel mit Steckergehäusen und Stiften selbst konfektionieren muss112.
Abb. 5.3 Wannenstiftleisten (Shrouded Pin Headers, Box Headers). a) gerade, b) abgewinkelt, c) gerade mit Auswurfhebeln, d) abgewinkelt mit Auswurfhebeln, e) gerade mit Verriegelungshebeln, f) mit Flansch 112 Wozu man zumeist eine passende Crimp-Zange benötigt. Dann wird es eine nicht gerade billige Angelegenheit.
● 169
Mikrocontroller Module DE 180206.indd 169
29-03-18 13:58
Mikrocontroller Module - Grundlagen und Selbstbau
Kapitel 6 • Bedienung und Anzeige 6.1 Inbetriebnahme und Fehlersuche Einrichtungen, die zur Fehlersuche dienen, sollen auch im Fehlerfall noch funktionsfähig sein, vorausgesetzt, die Stromversorgung ist in Ordnung und der Mikrocontroller oder Prozessor ist grundsätzlich in der Lage, Maschinenbefehle auszuführen. Es versteht sich von selbst, dass hierfür nur sehr elementare Einrichtungen in Betracht kommen, die wenige Signalanschlüsse belegen und mit einfachen Programmen anzusteuern sind. Direkt an E-APorts angeschlossene Leuchtanzeigen (LEDs) und programmseitig abfragbare Schalter sind die wohl elementarsten Mittel zur Fehleranzeige und zum Auswählen von Programmfunktionen. Sie haben sich seit Jahrzehnten bewährt. Beim Konzipieren solcher Vorkehrungen ergeben sich u. a. zwei grundsätzliche Fragen: • Wie viel Aufwand überhaupt treiben? • Die Einrichtungen fest einbauen oder nur im Bedarfsfall anschließen? Von Beginn der Entwicklungsgeschichte an wurden Computer mit aufwendigen und manchmal recht eindrucksvollen Bedienfeldern ausgerüstet. Das Bedienpult war der typische Blickfang (Abb. 6.1). Ein solcher Aufwand war auch notwendig, da viele Bauelemente funktionsfähig sein mussten, bevor die Hardware überhaupt in der Lage war, die ersten Befehle auszuführen. Um das Fehlersuchen zu erleichtern, war es zweckmäßig, so viele Signale wie möglich auf Leuchtanzeigen darzustellen, die Möglichkeit zu haben, Daten von Hand in den Speicher einzugeben, Maschinenzyklen Schritt für Schritt auszuführen usw.
Abb. 6.1 Bedienfelder historischer Computer. Eine kleine Auswahl (IBM 701, DEC PDP8/e, CDC 160, SDS Sigma 9) Der Mikrocontroller hingegen ist ein einziger Schaltkreis. Er führt Befehle aus, die in ihm selbst gespeichert sind. Er enthält auch die elementaren peripheren Anschlusssteuerungen. Wenn die Befehlsausführung überhaupt nicht funktioniert, könnte es am Takt, am Rücksetzen oder an der Stromversorgung liegen. Ist das alles in Ordnung, ist der Mikrocontroller
● 186
Mikrocontroller Module DE 180206.indd 186
29-03-18 13:59
Kapitel 6 • Bedienung und Anzeige
selbst verdächtig und muss ausgewechselt werden. Wenn er aber imstande ist, Befehle auszuführen, sind die Probleme vor allem in der Umgebung zu vermuten (angeschlossene Bauelemente und Funktionseinheiten, Kabel, Steckverbinder, von außen einwirkende Störungen usw.). Um die grundsätzliche Funktionsprüfung zu unterstützen, genügen somit bescheidene Bedien- und Anzeigevorkehrungen (Abb. 6.2). Kann der Mikrocontroller Befehle ausführen, kann man eine der eingebauten E-A-Schnittstellen verwenden, um eine externe Bedieneinrichtung anzuschließen (Bedien-Terminal, Serviceprozessor usw.).
Abb. 6.2 Die typische Grundausstattung eines Mikrocontroller-Moduls Die ganz einfachen Bedien- und Anzeige-Einrichtungen baut man zweckmäßigerweise fest ein. So sind sie immer zur Hand. Sie brauchen auch kaum mehr Platz als ein Steckverbinder, den man eigens setzen müsste, um Anzeige- und Testadapter anzuschließen. Geht es darum, eine neue Hardware erstmalig in Betrieb zu nehmen (Bring-up), so ist es von jeher üblich, mit einfachen Bedien- und Anzeigemitteln zu tricksen, notfalls auch Prüfhilfen mit Leuchtanzeigen, Schaltern usw. provisorisch aufzubauen. Um möglichst viel Information aus der Maschine herauszukitzeln, Daten einzugeben und die Programmabläufe zu beeinflussen, verfällt man bisweilen auf die skurrilsten Ideen116. Wir wollen uns hier aber auf einfache Nutzungsweisen beschränken, die leicht zu beschreiben und auszuprogrammieren sind117. 6.1.1 Betriebszustands- und Fehleranzeige Die einfachste Ausstattung der hier beschriebenen Module beschränkt sich auf eine programmseitig schaltbare Zwei-Farben-LED, die zum Anzeigen der Betriebsbereitschaft und zur elementaren Fehlersignalisierung verwendet werden kann. Diese programmgesteuerte Anzeige wird durch Kontroll-LEDs für Betriebsspannungen ergänzt. Manche Module enthalten zusätzliche LEDs, die von Schnittstellenschaltkreisen angesteuert werden. Signalisierungsbeispiele: • LED leuchtet gar nicht: schwerer Fehler, Mikrocontroller funktioniert nicht • LED leuchtet rot: Fehler 116 Als Extremlösung könnte man sich u. a. vorstellen, mit einer LED und einer Taste auszukommen und das Morsealphabet zu verwenden. 117 Keep it simple and stupid.
● 187
Mikrocontroller Module DE 180206.indd 187
29-03-18 13:59
Mikrocontroller Module - Grundlagen und Selbstbau
Kapitel 7 • Mikrocontroller 7.1 Mikrocontroller-Familien Die ersten Module basieren auf AVR-Mikrocontrollern der Fa. Atmel134. Sie sind weit verbreitet, preisgünstig und können viel leichter verstanden werden als andere Mikrocontroller-Familien. Ihre Wirkprinzipien sind vergleichsweise einfach. Das betrifft sowohl die Befehlsliste als auch die eingebaute Peripherie. Die meisten Befehle brauchen nur einen Taktzyklus. Es erfordert nur wenig Aufwand, die Schaltkreise einzusetzen (Betriebsspannung anschließen, Programmer anschließen und fertig). Viele Typen gibt es (noch?) in traditionellen, leicht handhabbaren Gehäusen. Wichtig ist, wie viel Zeit Lernende brauchen, um vom Zustand der vollkommenen Kenntnislosigkeit bis zum ersten Verständnis und zu ersten Erfolgserlebnissen zu kommen, also zu Programmen, die wirklich laufen. Dazu genügen schon wenige Stunden der Einarbeitung. Es gibt einfachere Architekturen, die aber stärkere Einschränkungen aufweisen. Man muss zwar weniger Befehle lernen, es sind aber viel mehr Besonderheiten und Spitzfindigkeiten zu beachten. Nun ist auch AVR von Einschränkungen nicht frei. Einige sind sogar sehr ärgerlich135. Es ist aber nicht grundsätzlich schwierig, sich zu behelfen136. Andere Mikrocontroller-Typen haben ein beträchtlich höheres Leistungsvermögen und eine weit umfangreichere Ausstattung. Sie sind aber auch viel komplizierter. Die Einarbeitung vom Stand Null an ist nicht in wenigen Stunden zu schaffen. Sie kostet mehrere Wochen am Stück (Richt- und Erfahrungswert: wenigstens vier). Um die E-A-Ports eines modernen Hochleistungsprozessors auch nur zu initialisieren, braucht man bereits mehrere Seiten Programmtext. Die E-A-Ports der AVR-Mikrocontroller sind hingegen vergleichsweise einfach. Ihre Wirkungsweise ist leicht zu verstehen und es genügen einige Programmzeilen, um sie zu initialisieren. Vor allem aber haben sie nicht die hässlichen Nebeneffekte, die die E-A-Ports mancher Mikrocontroller-Familien aufweisen. In den AVRs sind die Bits zur Steuerung einer bestimmten I/O-Schnittstelle jeweils in einigen Registern konzentriert. Alle Steuerregister-Bits werden beim Hardware-Rücksetzen initialisiert. Noch besser, sie werden nicht einfach gelöscht, sondern gezielt so initialisiert, dass sich wichtige Betriebsarten, die häufig verwendet werden, mit nur geringem Programmieraufwand einstellen lassen. Die AVR-Mikrocontroller verzeihen sogar grobe Nachlässigkeiten in Bezug auf Stromversorgung, Leiterplattenauslegung und Entkopplung. Sie funktionieren auch, wenn man sie mit zwei Fingern hält oder auf den Tisch legt, wobei die Stromversorgung und die Peripheriegeräte mit Draht angeschlossen sind (vorausgesetzt, der Draht ist dünn genug). Andere Mikrocontroller- oder Prozessorfamilien sind nicht so gutmütig. Entkopplungskondensatoren müssen gemäß Spezifikation ausgewählt werden, es müssen Masse-Ebenen vorgesehen werden, die Leiterzüge der Stromversorgung müssen auf der Leiterplatte gemäß den jeweiligen Vorgaben verlegt werden usw. Je leistungsfähiger und komplexer die Maschine, je höher die Taktfrequenz und die Anzahl der Transistoren, desto sorgfältiger muss man den Empfehlungen und Richtlinien des Herstellers folgen.
134 Gehört jetzt zu Microchip. 135 Siehe [I1]. 136 Indem man Makros und Funktionen schreibt.
● 218
Mikrocontroller Module DE 180206.indd 218
29-03-18 13:59
Kapitel 7 • Mikrocontroller
Atmel fertigt die ATmega-Familie und die Xmega-Familien. Die maximale Betriebsspannung der ATmega-Typen beträgt 5 V. Die E-A-Ports und die peripheren Funktionseinheiten sind in ihren Wirkprinzipien vergleichsweise einfach. Es ist nicht schwierig, sie zu programmieren. Die Xmega-Familie hat eine maximale Betriebsspannung von 3,3 V. Die E-A-Ports und die peripheren Funktionseinheiten sind komplizierter. Sie ähneln den Ports und Funktionseinheiten der ARM-Mikrocontroller. ATmega-Typen sind zu bevorzugen, wenn die Oberflächenmontage (SMT) nicht in Betracht kommt oder wenn der Mikrocontroller mit 5 V betrieben werden muss (Abb. 7.1 und 7.2). Weil sie vergleichsweise einfach zu programmieren sind, eignen sie sich auch gut für Anfängerprojekte. Xmega-Controller kommen in Betracht, wenn die Anwendungen höher entwickelte E-A-Ports und periphere Funktionseinheiten benötigen. Für Anwendungen, die keine massive Rechenleistung erfordern, kann Xmega oft eine kostengünstige Alternative zu 32-Bit-Mikrocontrollern sein (wie ARM oder PIC32). Die A-Typenreihe der Xmega-Mikrocontroller ist für den universellen Einsatz vorgesehen und besonders reichhaltig ausgestattet. Deshalb liegt es nahe, sie auszuwählen (Abb. 7.3 und 7.4).
Abb. 7.1 Ein ATmega-Mikrocontroller im DIL-Gehäuse mit 40 Pins. Der ATmega 1284 hat eine besonders reichhaltige Ausstattung. Für kleinere Projekte genügt oftmals der ATmega16. Alle seine peripheren Funktionseinheiten sind über E-A-Adressen erreichbar. Sie sind auch nicht so kompliziert. Deshalb sind sie in Assembler einfacher zu programmieren.
● 219
Mikrocontroller Module DE 180206.indd 219
29-03-18 13:59
Mikrocontroller Module - Grundlagen und Selbstbau
Kapitel 8 • Module im Überblick Die folgenden Kurzbeschreibungen betreffen Module, die Mikrocontroller enthalten oder in der Anwendungspraxis von besonderer Bedeutung sind. Zu tieferen Einzelheiten, Varianten, Entwicklungsvorschlägen und weiteren Modulen wird auf das Internet verwiesen ([I1]). 8.1 ATmega-Modul Typ 1 Zweck Universelle Plattform für Atmel ATmega-Mikrocontroller in 40-poligen DIL-Gehäusen mit Betriebsspannungsanschlüssen in Gehäusemitte. Das Modul ist für den Direktanschluss der anwendungsseitigen Peripherie und für die Mehrprozessorkopplung eingerichtet. Alle 32 E-A-Signale des Mikrocontrollers werden anwendungsseitig an Stift- und Klemmenleisten zur Verfügung gestellt. Das Modul unterstützt bis zu zwei serielle Schnittstellen. Signalisierung: 5 V und RS-232. Typische Nutzungsweisen: als Zentrum der Anwendungslösung (Hostprozessor) oder als Front-End-Prozessor mit direkt angeschlossenen peripheren Einrichtungen und Signalpegeln bis zu 5 V.
Abb. 8.1 ATmega-Modul Typ 1. Ansicht. Ausstattungsmerkmale: • Leiterplattenabmessungen: ca. 92 x 156 mm. Die Leiterplatte passt auf ein Gehäuse TEKO 362 und in Rahmen zum Aufschnappen auf DIN-Hutschienen. • Betriebsspannung: 5 V oder weniger (geeignete Bauelemente bestücken). • Signalpegel = Betriebsspannung. Keine Pegelwandlung. • Mikrocontrollertypen: Atmel ATmega PDIP 40-polig mit GND und VCC in Gehäusemitte. Unter anderem ATmega 16, 164A, 324A, 644A und 1284. • E-A-Schnittstellen: 4 Ports mit jeweils 8 Signalen. • E-A-Anschlüsse: alle 4 Ports an 10-poligen Klemmenleisten und Wannenstiftleisten (Anschlussbelegung wie Starterkits Atmel AVR). • Serielle Schnittstellen: maximal 2 konfigurierbar (Jumper). Nutzbarkeit je nach Mikrocontroller.
● 238
Mikrocontroller Module DE 180206.indd 238
29-03-18 13:59
Kapitel 8 • Module im Überblick
• Serielle Signalisierung: Erste Schnittstelle 5-V-Slave, beide Schnittstellen RS-232. • Steckverbinder für Programmiergeräte. Erweiterbar auf universellen SPI-Anschluss für ergänzende Funktionseinheiten. Aufbau und Wirkungsweise Die Mikrocontrollersignale sind auf Stift- und Klemmenleisten geführt. Für jeden der Mikrocontrollerports A, B, C, D gibt es eine Stift- und eine Klemmenleiste. Hier liegen alle Signale an, auch wenn sie anderweitig konfiguriert sind (serielle Schnittstellen) oder zeitweilig auf andere Weise genutzt werden (Programmierung). Abhängig vom eingesetzten Mikrocontroller können eine oder zwei serielle Schnittstellen genutzt werden. Beide Schnittstellen können auf RS232-Pegel umgesetzt werden.
1
Mikrocontroller
8
Rücksetztaste
2
E-A-Anschlüsse
9
Taktgenerator
3
Stromversorgungsanschluss
10
RS-232-Anschlüsse
4
Stromversorgungskonfiguration
11
Pegelwandung RS-232
5
Verpolschutz
12
RS-232-Konfiguration
6
Betriebsspannungsanzeige
13
Serieller Slaveanschluss (5 V)
7
Massemesspunkte
14
Programmier- und Erweiterungsanschluss
Abb. 8.2 ATmega-Modul Typ 1. Leiterplattenübersicht.
● 239
Mikrocontroller Module DE 180206.indd 239
29-03-18 13:59
Kapitel 9 • Literatur- und Quellenverzeichnis
Kapitel 9 • Literatur- und Quellenverzeichnis Internetadressen Auf umfangreiche Listen von Internetadressen wurde verzichtet, denn die Aktualität solcher Angaben ist naturgemäß begrenzt, und es ist einfacher, sie anzuklicken als aus dem Buch abzutippen. Näheres auf der Internetseite des Verfassers: [I1] http://www.controllersandpcs.de Quellen Die Schaltungsentwürfe und Lösungen der Gerätekonstruktion stammen vom Verfasser. Die Leiterplattenentwürfe der hier gezeigten Erprobungsmuster wurden an der Fachhochschule Dortmund als studentische Prüfungsleistungen erstellt. Sie sind vor allem als Anregungen und als Startpunkt für eigene Entwicklungen gedacht. Einzelheiten wurden und werden auf der Internetseite des Verfassers ([I1]) laufend dokumentiert und sind dort abrufbar. Die Entwurfsgedanken zum Modulbaukasten wurden in [1] erstmalig veröffentlicht. Die umfassende Archivseite zur Rechnerarchitektur, Elektronik und zu historischen Computern: [I2]:
http://www.bitsavers.org, vor allem das PDF-Dokumentenarchiv http://www.bitsavers.org/pdf/.
Die historischen Abbildungen im vorliegenden Buch stammen aus dieser Quelle. Lizenzbedingungen Die hier mitgeteilten technischen Lösungen sind frei nutzbar (Open Source Hardware). Es gelten die Bedingungen der CERN Open Hardware License (CERN OHL). Für die Funktionsfähigkeit, die Eignung für eine beliebigen Einsatzzweck und die Freiheit von fremden Schutzrechten kann keine Garantie übernommen werden. Die Lizenzbedingungen sind – zusammen mit näheren Erläuterungen – u. a. unter folgenden Internetadressen zu finden: [I3] https://www.ohwr.org/projects/cernohl/wiki https://www.ohwr.org/documents/294 https://www.ohwr.org/licenses/cern-ohl/license_versions/v1.2 Literaturverzeichnis und Quellennachweis [1] Matthes, Wolfgang: Microcontroller Modules for the Ambitious. Circuit Cellar, Issue 312, July 2016, S. 24-33. [2] Microchip MCP23017/MCP23S17 16-Bit I/O Expander with Serial Interface. Data Sheet DS21952B. Microchip Technology Inc., 2007. [3] Designing for Dollars. PIC12CXXX 8-Pin Microcontroller Design Challenge Applications Handbook. Microchip Technology Inc., 1998. [4] Embedded Control Handbook, Volume 1. Microchip Technology Inc., 1997.
● 275
Mikrocontroller Module DE 180206.indd 275
29-03-18 13:59
Mikrocontroller Module - Grundlagen und Selbstbau
[5] Embedded Control Handbook, Update 2000. Microchip Technology Inc., 1999. [6] MAX II CPLDs as Voltage Level Shifters. Application Note 490. Altera, 2007. [7] Steele, Denny: Cut Power 100X Using CPLD Coprocessors in Portable Applications. Altera, 2007. [8] Six Ways to Replace a Microcontroller with a CPLD. White Paper WP-01041. Altera, 2007. [9] GPIO Pin Expansion Using I2C Bus Interface in MAX II CPLDs. Application Note 494. Altera, 2007. [10] LCD Controller Using MAX II CPLDs. Application Note 497. Altera, 2007. [11] CoolRunner CPLD I2C Bus Controller Implementation. Application Note XAPP333. Xilinx, 2002. [12] CoolRunner-II Serial Peripheral Interface Master. Application Note XAPP386. Xilinx, 2009. [13] Datasheet IMB-M43H Industrial ATX Motherboard with 6th/7th Gen Intel Core™ i7/ i5/i3 Processor. Adlink Technology, Inc., 2017. [14] Backplane Selection Guide. Adlink Technology, Inc., 2017. [15] PICMG1.3 Full-Size SHB Backplanes. Download www.advantech.com/products. [16] Rabbit Product Catalog, Vol. 1. Rabbit Semiconductor/ Digi International Inc., 2008. [17] Rabbit Product Manual Smart Star (SR9000) Modular C-Programmable Control System User’s Manual. Part Number 019-0107 • 090519. Digi International Inc., 2002–2009. [18] 6U CompactPCI Rear Transition Board for MIC-3396. Advantech Co., Ltd., 2015. Download www.advantech.com/products: RIO-3316-C1E_ DS(04.29.14)20160226143112.pdf [19] MIC-33283rd Generation Intel® Core™ Processor 3U CompactPCI® PlusIO Card. Download www.advantech.com/products. [20] User Manual MIC-3396 6U CompactPCI 4th Generation Intel® Core™ i3/i5/i7 Processor Blade with ECC support. Advantech Co., Ltd., 2015. Download www. advantech.com/products. [21] User Manual MIC-3325 3U CompactPCI Intel Atom Dual/Single Core Processor Blade. Advantech Co., Ltd., 2012. Download www.advantech.com/products. [22] Kilgrease, D. L.: Mechanization of Engineering Design Data. IBM, 1962. Quelle: [I2]. [23] Printed Circuit Manual, Volume 1. Control Data Corporation, 1966. Quelle: [I2]. [24] Cordwood Modules, Volume 1. Control Data Corporation, 1965 bis 1976. Quelle: [I2]. [25] G233 CompactPCI Serial Diagnostic Board with Front Display. MEN Mikro Elektronik GmbH, 2018. https://www.men.de/news-media/press-releases/compactpci-serial-diagnosticboard-with-front-display/ [26] Amdahl 580 Technical Introduction. Amdahl, o. J. Quelle: [I2]. [27] Freescale Tower System. Modular demonstration and development platform for microcontrollers. Document Number: TWRFS / REV 3. Freescale Semiconductor, Inc. 2010.
● 276
Mikrocontroller Module DE 180206.indd 276
29-03-18 13:59
Kapitel 9 • Literatur- und Quellenverzeichnis
[28] Lobdell, Maclain: Creating your own Tower Module. Custom Relay Module Example. Application Note AN4390. Freescale Semiconductor, Inc., 2011. [29] TWR-Shield. Shield Adapter Module for the Tower System Quick Start Guide. Document Number: TWRSHIELDQSG REV 0. Freescale Semiconductor, Inc., 2011. [30] Prototyping Module Quick Start Guide. Document Number: TWRPROTOQSG / REV 0. Freescale Semiconductor, Inc. 2009. [31] Tower Serial Module User Manual. Document Number: TWRSERUM / REV 0. Freescale Semiconductor, Inc. 2009. [32] TWR-CM3120-EVM Tower System Platform User Guide. NXP B.V., 2017. [33] Matthes, Wolfgang: System .004 – ein Rückblick. Fotos mit freundlicher Genehmigung und Unterstützung des Heinz Nixdorf MuseumsForum, Paderborn. Quelle: [I1]. [34] Heitec Katalog Gehäusetechnik. KAT_EPS_DE_02. Heitec AG, 2017. [35] Technik-Know-How. Heitec AG, o. J. [36] Schroff Hauptkatalog, Ausgabe 24. Pentair / Schroff, 2012. [37] Front Panels, Plug-In Units, and Frame-Type Plug-In Units. Selection Criteria for Front Panels and Plug-In Units. Pentair / Schroff 2017. [38] Subracks. Subrack Selection Made Easy – Key Consideration for Subrack Design. Pentair / Schroff 2017. [39] DEC Building Blocks and Digital Systems. Digital Equipment Corporation, 1960. Quelle: [I2]. [40] Becke, Georg; Haseloff, Eilhard: Das TTL-Kochbuch. Digitaler Schaltungsentwurf in Theorie und Praxis. Texas Instruments, 1996. [41] Matthes, Wolfgang: Embedded Electronics 2. Digitaltechnik. Elektor, 2010. [42] Logic Guide. Texas Instruments, 2017. [43] Little Logic Guide. Texas Instruments, 2014. [44] Matthes, Wolfgang: Embedded Electronics 1. Passive Bauelemente. Elektor, 2008. [45] Pease, Robert A.: Troubleshooting Analog Circuits. Butterworth-Heinemann, 1991. [46] Reverse-Current Circuitry Protection. Application Note 636, Maxim Integratde Products, 2001. [47] LM74610-Q1 Zero IQ Reverse Polarity Protection Smart Diode Controller. Datenblatt SNOSCZ1B, Texas Instruments, 2016. [48] TPS2660x 60-V, 2-A Industrial eFuse With Integrated Reverse Input Polarity Protection. Datenblatt SLVSDG2D, Texas Instruments, 2017. [49] NCP372 Positive and Negative Overvoltage Protection Controller with Internal Low Ron NMOS FETs and Status Flag. Datenblatt, ON Semiconductor, 2010. [50] Boyle, Greg: High-precision data aquisition boards – Why you should buy, not design. PC/104 Embedded Solutions, Winter 2002. [51] Programmable Logic Control (PLC) Solutions Guide. SLYY041c. Texas Instruments, 2015. [52] Torvmark, Karl H.: Voltage Level Conversion. Application Note AN021. Texas Instruments, 2003. [53] System Connectivity Reference Guide. Texas Instruments, 2015. [54] Curtis, Susan; Moon, Dave: A Guide to Voltage Translation With TXB-Type Translators. Application Report SCEA043, Texas Instruments, 2010.
● 277
Mikrocontroller Module DE 180206.indd 277
29-03-18 13:59
Mikrocontroller Module - Grundlagen und Selbstbau
[55] Moon, Dave; Sultana, Aeysha: A Guide to Voltage Translation With TXS-Type Translators. Application Report SCEA044, Texas Instruments, 2010. [56] Voltage Level Translation Guide. Texas Instruments, 2014. [57] Solari, Edward: ISA and EISA Theory and Operation. Annabooks, 1993. [58] ISA Bus Specification and Application Notes. Intel Corporation, 1989. [59]: Anderson, Don; Shanley, Tom: ISA System Architecture. MindShare Inc., 1995. [60]: Nesley, Ed: The Embedded PCs ISA Bus. Annabooks, 1997. [61] Solari, Edward; Willse, George: PCI Hardware and Software. 4th Edition, Annabooks, 1998. [62] Matthes, Wolfgang: Der PC als Mikrocontroller. Elektor, 2005. [63] Matthes, Wolfgang: Emulating Legacy Interfaces. Do it with Microcontrollers. Circuit Cellar, Issue 327, October 2017, S. 6-17. [64] Lochinger, Alexander: A bus called “Bob”. PC/104 and Small Form Factors, November 6, 2013. http://smallformfactors.mil-embedded.com/articles/. [65] Dear, Rory: Is PC/104 still relevant? Embedded Computing Design, May 12, 2014. http://embedded-computing.com/articles. [66] Dear, Rory: PC/104 architecture maintains relevance in a competitive field. Embedded Computing Design, December 1, 2016. http://embedded-computing. com/articles. [67] Matthes, Wolfgang: ATA-Schnittstelle zweckentfremdet. Das Festplatten-Interface als universelle E-A-Schnittstelle. Elektronik, Januar 2006, S. 56-60. [68] Matthes, Wolfgang: Advanvced Technology Attachment I/O. Use ATA Interfaces For General-Purpose I/O Applications. Circuit Cellar, Issue 214, May 2008, S. 60-69. [69] Matthes, Wolfgang: Fehlersuchen in der Computer- und Digitaltechnik. Messen und Prüfen. Elektor, 1997. [70] KeyWarrior24D. USB Keyboard Controller with direct data input. Code Mercenaries Hard- und Software GmbH, 2013. [71] Matthes, Wolfgang: Embedded Electronics 3. Hard- und Software. Elektor, 2011.
● 278
Mikrocontroller Module DE 180206.indd 278
29-03-18 13:59
Index
Index A abfragen 38 Abfrageschalter 189 Abwickelnadel 114 Adapter 31 Adapterkarte 78 Adapterplatine 112 Akustische Signalisierung 186 All-in-One 13 Anwendungsbedienung 19 Anwendungslösung 13 Anwendungsperipherie 20 Anwendungsproblem 13 Anwendungsprogramme 32 Anwendungsprogrammschnittstellen 61 Anwendungssoftware 39 Anwendungssysteme 16 Anwendungsumgebung 13 ATA-Schnittstelle 165 Aufsteckmodule 15 Außenwelt 20 Autorouter 68
Bildschirmauflösung 200 Bildschirmdiagonale 210 Bildschirmtastatur 198 Bitmuster 26 Bitposition 31 bitseriel 165 Bluetooth 43 Breadboard 110 Breakpoint 193 Buchsenleisten 91 Busleitung 45 Bustakt 156 Bustopologie 45
C Charlieplexing 56 Chassis 17 Checkpoint 193 Client-Server-System 40 Computer-Module 197 Computer on Module 72 CPLD 55
B
D
Backplane 47 Basisplatine 14 Batteriebetrieb 129 Baugruppenträger 73 Baukasten 15 Bedienelemente 52 Bedienfeld 30 Bediengerät 33 Bedienkomfort 13 Bedienkonsole 29 Bedienung und Anzeige 19 Beschriftung 104 Bestückung 17 Betriebsspannung 68 Betriebsspannungsanschlüsse 130 Betriebsspannungsanzeige 125 Betriebsspannungszuführung 85 Betriebssystem 32 Bildschirm 20 Bildschirmabmessung 210
Datenbus 45 Datenbyte 49 DCE 146 Debugging 38 Diagnoseadapter 193 Downstream 19 DTE 146
E E-A-Erweiterung 61 Einbaurahmen 17 Einschubbauweise 75 Einschubgehäuse 102 Ein- und Ausgabe 36 Einzelaufstellung 84 Emulation 37 emulieren 32 Entwicklungssystem 19 Entwicklungsumgebung 29 Erweiterungsschaltkreis 53
● 279
Mikrocontroller Module DE 180206.indd 279
29-03-18 13:59
Mikrocontroller Module - Grundlagen und Selbstbau
Ethernet 43 Experimentiersystem 82 Extender 78
F Fehlersuche 27 Feldverkabelung 80 Flachbandkabel 45 Formfaktor 15 Formkabel 84 Frontplatte 13 Frontplattenbauweise 110
G Gehäuse 17 Gerätetreiber 36
L Latenzzeit 36 LCD-Display 20 LDO 122 LED 20 Leiterplatte 12 Leiterzüge 48
M Masse 69 Master 19 Mehrfachnutzung 50 Mehrprozessorsystem 13 Mikrocontroller 12 Mini-PC 32 Modulbaukasten 14 Motherboard 71
H Hauptplatine 71 Hauptsteuerschleife 38 Host 19 Hostadapter 72
N
I
O
I2C 45 Inbetriebnahme 26 Industrie-PC 41 Industriestandard 35 Interface-Kabel 125 Interfacesignal 50 ISA-Bus 156
OEM 13 OLED-Display 27 OTG 204
J Jumper 63
K Kabel 26 Kabelkonfektionierung 174 Kettentopologie 46 Kippschalter 24 Klemmenleiste 139 Kommandocode 63 Konfigurationsvorkehrung 63 konfigurieren 63 Küchentisch 13
Navigationstaster 27 Netbook 32 Netzwerk 43
P Parallelisierung 229 Parallelschnittstelle 161 PC 17 PCI-Bus 76 PCIe 55 PCI Express 76 PC-Stick 198 Pegelwandlung 20 Peripherie-Adapter 32 Peripherienachbildung 19 Personalcomputer 19 Platine 13 Plattformbedienung 19 Profilleiste 105 Programmer 216 Programmieranschlus 169 Programmieren 12
● 280
Mikrocontroller Module DE 180206.indd 280
29-03-18 13:59
Index
Programmiergerät 169 Programmiersprache 43 Projektentwicklung 12 Pultgehäuse 87
Q Quarzoszillator 220
R Reaktionszeit 41 Realzeitanforderung 41 Realzeitverhalten 187 Rechnerarchitektur 35 Reparatur 13 RS-232 126 RS-232-Signalisierung 145 Rücksetzen 184 Rückverdrahtung 75
T Tablet 20 Takt 55 Tastatur 155 Tastaturbedienung 214 Tastenfeld 13 Teilfrontplatte 104 Testmaschine 25 Testumgebung 21 Topologie 44 Touchscreen 198 Turm 83 TV-Box 198 Type-C 204
U Upstream 19 USB 19 USB-Signalisierung 19
S Schallgeber 186 Schwenkhebelfassung 111 Selbstbau 16 Selbstprüfung 26 serielle Schnittstellen 19 Server 38 Signalanzeige 38 Signalhub 119 Signalleitung 14 Signalpegel 20 Slave 19 SPI 45 Stand-Alone-System 39 Standardschnittstelle 32 Stapel 81 Starterkit 73 Steckbrücke 63 Stecker 47 Steckkassette 79 Stecktafel 110 Steckverbinder 14 Sterntopologie 19 Steuerelement 207 Stiftleiste 63 Stromversorgung 15 Systembus 45
V Verdrehsicherung 167 Verkabelung 82 Verpolschutz 18 Versorgungsspannung 55 Versuchsaufbau 13 Vertauschungsfall 84
W Wandler 43 Wannenstiftleisten 18 Wickelnadel 113 Wickelverbindung 114 Windows 156 Wire Wrap 14 WLAN 43
Z Zweiprozessorkopplung 234 Zweiprozessorsysteme 230
● 281
Mikrocontroller Module DE 180206.indd 281
29-03-18 13:59
MIKROCONTROLLER-MODULE Wolfgang Matthes
Elektor-Verlag GmbH 52072 Aachen www.elektor.de
MIKROCONTROLLER-MODULE
Die Entwurfsgrundsätze, Lösungsvorschläge und Projekte, die in diesem Buch beschrieben werden, sind aus zwei Ideen hervorgegangen: Erstens können neue Entwicklungen zwischen den weit verbreiteten kostengünstigen Mikrocontroller-Modulen und der industriellen Computerund Steuerungstechnik ihren Platz finden und zweitens ist es eine Herausforderung an sich, solche Module zu entwickeln und einzusetzen.
WOLFGANG MATTHES
Das vorliegende Buch beleuchtet Mikrocontroller-Module, die vor allem zum Experimentieren, zum Lernen und zum Einarbeiten in die Entwicklung und Programmierung von Embedded Systems gedacht sind.
In den ersten sieben Kapiteln dieses Buches werden die technischen Grundlagen diskutiert und anhand eigener Entwicklungen veranschaulicht. Das achte Kapitel gibt einen Überblick über diesen Modulbaukasten.
DESIGN SHARE
ISBN 978-3-89576-332-8
Weshalb nicht damit beginnen, Mikrocontroller-Module selbst zu entwickeln, zumindest aber sich in Gedanken mit solchen Aufgaben zu beschäftigen? Wie MikrocontrollerModule aufgebaut sind und wozu sie verwendet werden, soll in "Mikrocontroller-Module – Grundlagen und Selbstbau" dargestellt werden.
GRUNDLAGEN UND SELBSTBAU
●
Prof. Dr. Wolfgang Matthes war seit 1972 in verschiedenen Unternehmen und Forschungseinrichtungen tätig. Promotion 1987, Habilitation 1990. Arbeitsschwerpunkte: Subsysteme für Mainframe-Computer, Embedded Systems, Spezialhardware, Rechner- und Systemarchitektur. Von 1992 bis 2015 war er Professor für Prozessdatenverarbeitung an der FH Dortmund. Er hat über 50 Patente angemeldet und 10 Bücher publiziert.
MIKROCONTROLLER-MODULE
GRUNDLAGEN UND SELBSTBAU
Wolfgang Matthes LEARN DESIGN SHARE
LEARN
LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHAR GN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHARE ● LEARN ● DESIGN ● SHA