BLIT2008-Board

Aus BraLUG-Wiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Konzept

Zum 5.Brandenburger Linux-Infotag entstand u.a. die Idee einen Mikrocontroller-Workshop anzubieten. An Hand einer einfachen universellen Mikrocontrollerbaugruppe, welche durch die Teilnehmer selbst aufzubauen ist, soll der Einstieg in die "Mikrocontrollerwelt" ermöglicht werden. Folgende Kriterien waren/sind dabei wünschenswert:

  • einfache, leicht aufzubauende und "sichere" Schaltung (mit "sicher" ist gemeint, dass die Schaltung möglichst auf Anhieb und ohne komplizierte Einstellvorgänge/Messtechnik funktioniert)
  • kostengünstig
  • erweiterungsfähig
  • möglichst viele Aspekte der Mikrokontrollertechnik sollen abgedeckt werden
  • mittels beigelegter Software soll beispielhaft die Programmierung von Mikrocontroller aufgezeigt werden
  • mittels "abgeschlossener" und sinnvoll einsetzbarer Softwarebeispiele sollen mögliche Anwendungsgebiete aufgezeigt werden

Ob das, in der Folge beschriebene, BLIT2008-Board mit seinen Zusatzbaugruppen diese Kriterien erfüllt, muß jeder für sich entscheiden.

Grundlage für die Hardware waren jeweils fast immer die überall zu findenen Grundschaltungen der eingesetzten Baugruppen/Schaltkreise, die nur noch an die speziellen Gegebenheiten angepaßt wurden. Die Zusatzbaugruppen sind so konzipiert, dass sie ohne weitere Modifikationen an das Basisboard anschliessbar sind. Die Mikrocontrollerbasis besteht aus einem ATmega der Firma Atmel. Die Kommunikation mit den Zusatzbaugruppen erfolgt grundsätzlich über TWI (I2C) und steht damit auch im Mittelpunkt der Betrachtungen. Die eventuelle Kommunikation mit einem PC erfolgt via USB.

Auch auf der Softwareseite wurde, wenn möglich, das Rad nicht neu erfunden. Es werden diverse, frei verfügbare Bibliotheken und Code-Schnipsel verwendet. Welche dies sind, ist bei den einzelnen Anwendungsbeispielen vermerkt. Grund dafür ist, dass dadurch die Beispiele leichter zu verstehen sind, da im Internet unzählige weitere Anwendungen auf der gleichen Basis zu finden sind.

Eine grundlegende Einführung in die Welt der Mikrocontroller (MC) im allgemeinen bzw. speziell zur AVR-Mikrocontroller-Reihe der Firma wird es auf dieser Projektseite nicht geben. Dazu wird auf die unzähligen Seiten im Internet verwiesen. Ein guter Einstieg in die Materie ist zum Beispiel die Webseite www.mikrocontroller.net und dort speziell das AVR-Tutorial sowie das AVR-GCC-Tutorial.

Toolchain (Werkzeugkasten)

Zur Softwareentwicklung für MCs der hier betrachteten AVR-Reihe der Firma Atmel sind natürlich einige Werkzeuge notwendig. Dabei kann durchgängig auf Freie Software zurückgegriffen werden. Folgende Programme benötigt man:

  • für Linux (meist als Installationspakete innerhalb der jeweiligen Distribution verfügbar):
    • gcc-avr
    • avr-libc
    • binutils-avr
    • avrdude (zum Flashen des übersetzten Programmes auf den MC)
  • für Windows (für die, die den Sprung zu Linux noch nicht vollzogen haben ;-)):
    • WinAVR (ein freies Komplettpaket, welche sämtliche notwendigen Komponenten beinhaltet)

Neben diesen freien Softwarepaketen existieren noch eine Reihe von Entwicklungsumgebungen kommerzieller Anbieter, die entweder auch kostenlos angeboten werden bzw. als Demoversion mit Beschränkungen kostenfrei beziehbar sind und in der Regel nur auf Windowsplattformen lauffähig sind. Z.B. sind dies:

Zum Übertragen (flashen) des fertig übersetzten Programmes auf den MC braucht man noch ein Stück Hardware, einen Programmer. Diese Baugruppe gibt es in den verschiedensten Ausführungen für die unterschiedlichsten PC-Schnittstellen. Eine Übersicht ist hier zu finden. Alternativ ist es natürlich auch möglich initial einen sogenannten Bootloader auf dem MC zu installieren, was eigentlich auch das Konzept dieses Projekt vorsieht.

Noch ein Wort zum Debbuging und Simulationsumgebungen: Ja, die gibt es, aber unter Linux leider (noch) nicht ausgereift genug, um sie effektiv einsetzen zu können. Als Debugger kann die AVR-Variante von gdb eingesetzt werden. Aber spätestens wenn es gilt zeitkritische oder ereignisorientierte Dinge zu überprüfen, braucht man einen Mikrocontrollersimulator. Hier haben die oben erwähnten kommerziellen Produkte eindeutig einen Vorsprung. Eigentlich Schade, aber vielleicht ändert sich dies mit der Zeit noch!

Bis dahin muß man sich bei der Fehlersuche anders behelfen:

  • sinnvolle Ausgaben zu bestimmten Ereignissen an die vorhandene Peripherie senden (und sei es nur an eine angeschlossene LED)
  • mittels Logikanalysatoren oder Oszilloskop das erwartete Zeitverhalten an Ein-/Ausgängen des MC oder andere Baugruppen überprüfen

Basis-Board

Hardware

BLIT2008-Basisboard

Software

Erweiterungsbaugruppen

I2C-LCD

Hardware

BLIT-Board; I2C-LCD

Software

I2C-Temperaturfühler

Hardware

BLIT-Board; I2C-Temperaturfühler

Software

I2C-RTC

Hardware

BLIT-Board; I2C-Real-Time-Clock

Software

I2C-7-Segment-Anzeige

Hardware

BLIT-Board; I2C-7-Segment-Anzeige

Software

I2C-Eingabetaster

Hardware

Software

weitere Ideen

Links


Kontakt

Ich, Uwe, bin an weiteren Ideen zum BLIT-Board interessiert!

'Persönliche Werkzeuge