Hallo,

vorweg es ist ein durchaus kontrovers diskutiertes Thema. Daher wird in dieser ersten Version von mir auch nur aus einem Blickwinkel beschrieben aber sicher nicht sehr verkehrt.

Wie mit µC anfangen

Um effektiv mit einem µC zu arbeiten, sollten verschieden Dinge beherrscht werden. Da wäre als erstes die Elektronik, die Informatik, das Englisch (für Datenblätter oä.) und wenn es noch was bewirken soll, dann auch noch die Mechanik. Sicher muss man nicht alles beherrschen, aber von jedem die Grundlagen.

µC Spezifisches

Es gibt fertige Entwicklungskits oder Einzelbauteile (auf denen die Kits basieren).

Ein Kit hat den Vorteil, dass man sich wenig Sorgen/Gedanken über die Elektronik machen muss. Es ist aber kostenintensiver. Zudem lässt es sich schlecht integrieren und wenn man was elektrisch zerstört, wird die Reparatur aufwendig. Bei Einzelbauteilen ist der elektrische Aufwand im Verhältnis hoch, aber man lernt sehr viel dabei (wenn man es Motivationsbedingt durchhält).

µC unterscheiden sich durch ihre Busbreiten, Verarbeitungsgeschwindigkeiten und integrierter Hardware.

Generell sind auch heute noch 8-Bit µC populär.

  • im privaten Bereich sehr beliebt ist die AVR Serie von Atmel. (meine persönlich Empfehlung)
  • weiterhin häufig im Gespräch sind PIC von Microchip (Sie waren früher aufgrund ihrer Speicherorganisation und nicht vorhandenen ISP Tauglichkeit im Verhältnis nicht zu favorisieren)
  • C-Control von Conrad ist aus derzeitiger Sicht überteuert und durch seinen Aufbau als Interpretermaschine sehr langsam
  • Die Serie der 8051-Controller, obwohl nahezu 30 Jahre alt, wird weiterhin oft eingesetzt. Es gibt von vielen Herstellern verbesserte Varianten mit höherer Ausführungsgeschwindigkeit, Flash-Programmspeicher und zusätzlicher Peripherie zu kaufen. Diese Architektur ist also auch nicht tot.

Des weiteren existieren 16-Bit µC wie

  • MSP von Texas Instruments, sind sehr stromsparend aber nicht sehr verbreitet
  • M16 / RC8 von Renesas, wurden publik durch eine Aktion von Elektor

Abschliesend wären da noch die 32-Bit Typen. Bis auf wenige Ausnahmen basieren sehr viele auf ARM Kernen

  • M32 von Renesas ist z.B. so eine Ausnahme
  • S-ARM von Atmel
  • LPC2xxx von NXP/Philips

Weiterhin exitieren noch weitere von ST Microsystems, National Semi., Motorola, Infineon, Hitachi uvm. aber all diese sind im deutschsprachigem Raum im Hobby / Anfängerbereich wenig verbreitet.

Programmierung

Hier herrscht eigentlich ein richtiger Glaubenskrieg.

Die Absolute Basis ist Assembler. Hierbei lernt man jedes Register kennen und versteht den Ablauf, kann die Ausführungzeit berechnen und erzeugt den kompaktesten und schnellsten Code. Haken: es ist ein elendes Bitgeschubse. Eben eine Maschinensprache.

Daher sehe ich es als Vorteil, eine höhere Sprache zu nutzen. Verbreitet sind Basic, Pascal und C.

  • Pascal einstmal als Lern- / Lehr-spache ist am wenigsten verbreitet und es ist wenig von ihr zu hören. Also wenn man sie bisher nicht beherrscht, nicht umbedingt damit anfangen. (Obwohl sehr strikt und wenig Fehler anfällig).
  • Basic ist einfach in der Handhabung, aber sehr weit abstrahiert. Es ist ein großer Fundus von Funktionen dabei, ein Großteil der Peripherie eines AVR-Controllers lässt sich mit Bascom direkt steuern, ohne dass man eigene Treiber schreiben müsste. Leider ist das jedoch nicht immer sauber gelöst. Gibt es keine fertigen Funktionen, kann es problematisch werden. Zudem ist sie nicht ganz so universell.
  • C ist meine Wahl der Sprache. Wenn man ausführlich schreibt, wird es auch kein Spaghetticode. Natürlich kann man sich mit Zeigern und Feldern ganz schnell ganz böse Löcher ins Knie schiessen, aber dafür findet man sehr viele Informationen im Netz. Und Zeiger habe ich bisher noch nicht verwenden müssen.

Vorteilhaft an C ist, dass es für AVRs kostenfreie Compiler / Entwicklungsumgebungen existieren. Für Basic gibt es kostenfreie Versionen nur mit eingeschränkter Codegröße (4 kB ist das Limit). Für die kleineren Controller (z. B. die ATtiny-Controller oder der ATmega48) ist es noch keine ernsthafte Einschränkung, da sich mit dem Codegrößen-Limit der kostenlosen Version der Flash-Speicher voll beschreiben lässt. Wenn man dann aber im Zuge eines Projektes mehr Speicher braucht, muss man unbedingt den Compiler kaufen.

Elektronik

Die Elektronik ist im Fall vom AVR sehr einfach, Stabilisierte 5V, ein µC von Atmel (mega8 oä), einen Widerstand, eine LED mit Vorwiderstand und noch ein paar Kleinteile reichen für die ersten Versuche aus. Weiterhin wird ein Programmieradapter benötigt. Er ist notwendig um das Programm in den µC zu laden. Hier existieren recht einfache Lösungen für den Parallelport des PCs, aber diese können für den Selbigen ein Gefahr darstellen und sind daher nicht zu empfehlen. Bessere Modelle für den Selbstbau sind insbesondere für Elektronik Anfänger eine zusätzliche Fehlerquelle. Zudem sind Parallelports an PC eine Seltenheit geworden, daher wird man wohl in den sauren Apfel beisen müssen und einen kaufen. Aber es ist eine gute Investition.

Zusammenfassung

Empfehlung von:

  • luchs2a AVR von ATMEL (mega8 bzw mega16), mit C zu Programieren, ein Selbstaufbau aus Einzelbauteilen wobei der Programieradapter fertig gekauft wird um an der Stelle Probleme aus dem Weg zu gehen.

DER ARTIKEL IST NOCH NICHT FERTIG ABER MIR FEHLT JETZT DIE ZEIT

Diskussion

Geben Sie Ihren Kommentar ein (Wiki-Syntax ist zugelassen):
Wenn Sie die Buchstaben auf dem Bild nicht lesen können, laden Sie diese .wav Datei herunter, um sie vorgelesen zu bekommen.
/www/htdocs/w00645de/dokuwiki/data/pages/mikrocontroller/wie_mit_uc_anfangen.txt · Zuletzt geändert: 2009/11/05 12:49 von 87.157.141.70
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0