Mikrocontroller Programmierung
Mikrocontroller (MCUs) sind das Herz eines jeden eingebetteten Systems und sollten dem Anwendungsgebiet angepasst ausgewählt werden.
Die Mikrocontroller-Familie MSP430 von Texas-Instruments stellt eine breite Palette von Controllern mit den unterschiedlichsten Spezifikationen
und damit auch Zielsetzungen zur Verfügung. Eine geringe Stromaufnahme des MSP430 macht ihn besonders bei batteriegebunden
Anwendungen vorteilhaft.
Zur Programmierung und Entwicklung des Programmcodes muss mit einer Hardware, der Debug-Schnittstelle,
auf den Speicher des Controllers mit unter auch während der Laufzeit zugegriffen werden können. Ein JTAG Adapter kommt hier zum Einsatz.
JTAG-Adapter
Die Adapter-Hardware für die Schnittstelle Mikrocontroller zum PC werden neben Texas Instruments auch von weiteren Herstellern wie der Firma Olimex vertrieben. Die mindestens fünf Leitungen der JTAG Schnittstelle können durch die TI-Entwicklung Spy-Bi-Wire ersetzt werden. Diese kommt schon mit nur zwei Leitungen aus, ist jedoch bei der Geschwindigkeit und Leistungsfähigkeit dem klassischen JTAG im Nachteil. Spy-Bi-Wire wird allerdings nur von speziellen USB-Adapter unterstützt. Bei Entwicklungsplatinen mit MSP Controller und weiterer Peripherie wie Spannungsversorgung, LCD Displays oder herausgeführte I/Os sind für den ersten Schaltungsaufbau nutzbar und ebenfalls vielfälltig verfügbar. Zur Programmentwicklung bietet sich vornehmlich die Eclipse-basierte Entwicklungsumgebung TI Code Composer Studio für Linux und Windows an.
Schaltungsentwicklung mit MCUs
Um Elektronik-Projekte mit MCU realisieren zu können, empfiehlt sich ein Entwicklungsboard mit Controller, das eventuell sogar schon ein
Debug-Interface (Schnittstelle zwischen PC und MCU) mit USB-Schluss besitzt.
Das Entwicklungsboard LaunchPad von Texas Intruments mit einem MSP430G2X
Mikrokontroller gibt es bei Ebay bereits ab 15 Euro. Wichtig ist, dass die I/Os, also die Ein- und Ausgänge des Controllers über Stiftleisten
oder Stecker nach Auäen geführt werden. Weiterhin sollte die MCU ein bis mehrere A/D-Wandler besitzen, um analoge Sensoren wie Temperatur
oder Beschleunigung messen zu können. Der Controller sollte sicherlich eine Daten-Schnittstelle besitzen, um die Messwerte übertragen zu können und
z.B. Messdaten am PC darzustellen oder an einen anderen Controller zu übertragen. Sehr weit verbreitet ist hier die asynchrone, serielle Schnittstelle UART.
Asynchron, da kein Taktsignal notwendig ist und die Kommunikation lediglich über zwei Datenleitungen stattfindet.
Eine weitere Möglichkeit ist der Datenaustausch über ein Bussystem wie SPI oder I2C, bei dem mehrere Teilnehmer miteinander kommunizieren können.
Auf einer solchen Entwicklungsplatine sollte der erste Schaltungsentwurf entwicklelt und validiert werden. Es werden Bauteile getestet, die
zwar laut Spezifikation passen sollten, allerdings im Verbund nur als fertige Schaltung endgültig bewertet werden können. Oftmals
wird erst nach der Inbetriebnahme klar, welche Bauteile tatsächlich funktionieren und ob die meist fixe Idee
generell überhaupt umsetzbar ist.
Interessante Punkte, die bei dem ersten Schaltungsaufbau und der Auswahl des MCUs den Fokus rücken sollten wären:
- Wie werden etwaige Daten für den Benutzer dargestellt/verfügbar gemacht?
- Welche Sensorik oder Aktuatorik sollte meine Anwendung besitzen und welche Schnittstellen kann ich dafür nutzen?
- Wie stelle ich meine Energieversorgung sicher und wie groß kann mein Energieverbrauch maximal sein?
- Welchen Umweltbedingungen wird meine Schaltung ausgesetzt sein (Vibration, Temperatur, Störeinstrahlung)?
- Wie sichere ich meine Schaltung gegen Kurzschlüsse oder falsche Anwendung ab, z.B. Verpolschutz?
Nach dem Funktionstest der Schaltung auf einem Entwicklungsboard kann für das Erstmuster ein PCB (Engl.: Printed circuit board) entwickelt werden.
Das Programm EAGLE der Firma CadSoft wird als Light-Version mit zwei Layern und limitierter Layergröße von 1dm^2 angeboten. Zwei Leiterbahn-Schichten
(Engl.: Layer) mit Ober- und Unterseite reichen für gewöhlich für einfache Anwendungen aus.
Die so entwickelte Platine kann dann entweder professionel gefertigt werden (Möglicher Platinenhersteller für Kleinserien ist
PCB-Pool) indem die EAGLE-Daten übertragen werden oder man versucht sich selber als Platinenhersteller indem
das Layout mittels UV-Licht auf beschichtete Kupferplatten übertragen wird um dann anschließend das überschüssige Kupfer mit Säure zu entfernen.
Das Ergebnis wird dann noch Durchkontaktiert, um Verbindungen zwischen den Leiterbahnen der oberen und unteren Schicht zu schaffen und
kann im Folgenen mit Bauteilen bestückt werden. Eine recht Aufwändige Variante ist diese Methode allerdings schon und nicht immer von Erfolg gekrönt
wenn dünne Leiterbahnen (~0.15mm) oder Footprints Verwendung finden.
Bei der Auswahl der Bauteile empfiehlt sich möglichst auf sog. SMD (Engl.: Surface mounted device) Bauteile zurückzugreifen. Das Bestücken kann dann
mit Hilfe einer Lötpaste oder konventionell mit Lötzinn erfolgen. Falls Lötpaste eingesetzt wird ergeben sich semi-professionelle Bestückungsmethoden:
- Leitpaste mit einer Spritze oder über eine Maske auf die Pads (Kontaktstellen zu den Bauteilen) auftragen. Eine Maske aus Edelstahl gibt es bei einer Bestellung bei PCB-Pool kostenlos dazu.
- Alle Bauteile auf die bestrichenen Pads mit einer Pinzette positionieren. Dabei ist auf die Orientierung bei LEDs und ICs zu achten.
- Lötpaste mit dem Lötkolben oder mit einer Heißluft Rework-Station gemäß Löttemperatur der Bauteile aus dem Datenblatt schmelzen. Hier kann auch ein Reflow-Ofen eingesetzt werden. Ein solcher Ofen wird auf ein entsprechendes Temperaturprofil geregelt, wobei alle Bauteile im Bestfall gleichzeitig verlötet werden.
Nach dem Bestücken folgt die erste Inbetriebnahme und damit die Probe aufs Exemple, ob sich Kurzschlüsse auf die Platine eingeschlichen haben. Ein Erstbetrieb sollte deswegen nicht einfach ohne Stromgegrenzung durchgeführt werden. Ein Labornetzteil mit Strombegrenzung schützt die Platine und die Nerven.
Gehäuse-Design
Ein Gehäuse sollte neben den rein ästhetischen Aspekten auch alle funktionalen Anforderungen erfüllen. Heutige Elektronik-Gehäuse müssen
sich zwar immer mehr in das Gesamtbild einfügen, sollten allerdings primär die empfindliche Elektronik vor Umwelteinflüßen
schützen. Das heisst Temperatur und Feuchte im Einsatzgebiet und die Dauerhaltbarkeit müssen im Vordergrund der Entwicklung stehen, um
Kundenakzeptanz zu generieren. Auch die
Haptik für den Benutzer oder auch die Hautverträglichkeit für 24/7 Anwendungen auf dem menschlichen Körper sollten bei der Auswahl
eine Rolle spielen.
Falls das Gehäuse maßgeschneidert aus dem 3D-Drucker generiert werden soll kann diesbezüglich frei aus einem mittlerweile
großen Portfolio der 3D-Filamente gewählt werden.
Bei der Entwicklung des Designs können 3D-Modelle
mit Programmen wie FreeCAD oder SketchUp erzeugt werden. Die weitere Toolkette ist ebenfalls frei erhältlich
und lauffähige Versionen sind bereits in vielen RepRap-Drucken wie dem Prusa i3 im Einsatz.