Elektronik :: Der winzige Speicherriese:

Experimentierplatine mit Atmel MEGA103


Innerhalb der Funkamateure gibt es eine Gruppe, die gern mit Mikroprozessoren programmiert und experimentiert. Leider stößt sie oft an Grenzen: An ihre eigenen, die der Komplexität der Aufgabe oder die des verfügbaren Speichers. Gegen die letztere Hürde gibt es eine Abhilfe und die heißt Atmel MEGA103. Diese Experimentierplatine kann Ihre zukünftige Basis eigener Entwicklungen sein..

Für kleine Aufgaben sind Controller ideal. Sie besitzen meist vier oder acht KB Speicher und einiges an unverzichtbarer Peripherie. Programmiert man in Assembler, kann man in dem Speicher einiges an Programm unterbringen. Assembler ist jedoch nicht jedermanns Sache, die Programmierung ist zeitraubend und die Fehlersuche oft nicht einfach. Daher weichen viele Entwickler, ob sie für den Arbeitgeber oder zum eigenen Spaß programmieren, auf einen Compiler aus, sei es ein (kommerzieller) C-Compiler oder beispielsweise BASIC. Es ist durchaus nicht so, dass Compiler schlechten Code erzeugen würden, dennoch ist der Speicher recht schnell gefüllt. Das liegt sicher daran, dass man mit einem Compiler schneller ans Ziel kommt und dann die eine oder andere Funktion zusätzlich ins Programm integriert. Wie auch immer: Letztlich ist alles in bester Ordnung, wenn der Job getan ist und der Prozessor das macht, was er soll. Es gibt aber Bastelprojekte, die entwickeln sich weiter und das oft so rasant, dass der Programmierer kaum mit der Arbeit nachkommt.

Der LCD-Konverter für die hiesige Sprachmailbox DB0DXM ist so ein Fall. Das Ding reagiert auf Befehle des PC und setzt diese für die Sprachmailbox um, es kann aber auch über vier Taster und Menüs auf dem LC-Display von unterwegs und unabhängig vom PC bedient werden. Kaum war der darin genutzte Atmel 90C8515 mit 8 KB bis aufs letzte Byte mit Software vollgestopft und alles funktioniert prima, wartet schon eine lange Wunschliste von Funktionen auf Erfüllung, sprich Programmierung. Was also tun?

Die Antwort liegt in einer Faustregel, die folgendes besagt: Für Prototypen entscheidet man sich für einen viel zu großen Controller, der so viel Platz besitzt, dass man damit sowohl große wie kleine Aufgaben ohne Speicherprobleme perfekt lösen kann. Stellt man am Ende der Entwicklungsphase fest, dass es ein "Kleiner" ebenso tut, weicht man "für die Produktion" - sprich: für die endgültige Platine - auf einen der "Kleinen" aus und spart dabei einige Euro.

In der folgenden Bauanleitung für ein Experimentierboard sitzt also ein "Großer". Der Atmel MEGA 103 Controller selbst ist zwar in den Abmessungen eher winzig, so dass er bequem auf einer Euro-Münze Platz findet. Dabei ist er mit 1 mm "Dicke" bald so platt wie eine Briefmarke. Im Gegensatz zu seinen minimalen Ausmaßen protzt er mit satten 128 KB nichtflüchtigem RAM, 4 KB SRAM und 4 KB EEPROM. Als Peripherie bietet der Bursche alles, was das Programmierer-Her(t)z höher schlagen lässt: Hier in aller Kürze die wichtigsten Leistungsmerkmale, der Rest steht detailliert erläutert im Datenblatt: 3 Timer, 1 UART (serielle Schnittstelle), Watchdog (fängt Abstürze auf), RTC (Uhr), SPI (serielles Interface), PWM-Ausgang (Motorsteuerung) und einen 8-Kanal 10 Bit Analog-Digital-Wandler (für Messungen). Der Takt kann bis zu 6 MHz betragen und das bedeutet bei der Atmel AVR-Serie, zu der auch der MEGA 103 gehört, fast 6 Millionen Befehle je Sekunde!

Wo soviel Licht ist, muss auch der beste Prozessor einen Schatten werfen, und der heißt für den Hobbylöter mit dem 100 Watt Kolben in diesem Fall: SMD mit 64 Beinchen! Das Gehäuse ist richtig putzig und so gar nicht für den Lötanfänger geeignet. Doch mit gutem Auge oder einem schwachen plus Sehverstärker, etwas Mut und einen für feine Lötungen geeigneten, aber immer noch "normalem" Lötkolben stellt auch das für den geübten Lötmeister keine ernsthafte Hürde dar.

Als halber "Blindfisch", der ich mit der Zeit geworden bin, kann ich das Löten ohne Sehverstärker total vergessen. Eine starke Lupe (5x) bringt zwar leichte Verbesserung, aber keine echte Lösung des Problems. Es dauerte einige Zeit, bis das richtige Gerät ins Blickfeld kam: ein Stereo-Mikroskop, das zwar nur bis zu einhundertfach vergrößert, aber dafür - und jetzt kommt der Clou - zwischen Objektiv und Arbeitsfläche über 10 cm Platz zum Handhaben und Löten lässt! Es wird irgendwo in der ehemaligen UDSSR aktuell produziert und ist gegenüber herkömmlichen kommerziell gefertigten Produkten aus westdeutscher Produktion im Preis-Leistungsverhältnis unerreicht, wenn auch für den gelegentlichen Hobbylöter nicht ganz billig zu erstehen. Wer sich dafür interessiert, sucht bei www.Google.de einmal nach "MBS-10".

Als ich das Gerät bei einem Funkfreund sah und ausprobieren konnte, lautete meine erste Reaktion: "Bestellst Du mir auch eins?" und keine 10 Tage später kam es in einer stabilen Holzkiste ins Haus. Die Russen wissen, wie man so etwas dauerhaft und stoßsicher verpackt! Endlich SAH ich, WAS ich da lötete! Nichts wie ran an die "Klamotten"! Der Prozessor wird flugs mit Tesafilm auf die Platine geheftet, danach exakt positioniert, noch einmal Tesafilm darüber geklebt und mit einem üblichen 25-Watt-Lötkolben mit feiner Spitze an zwei diagonal gegenüber liegenden Pins verlötet.

Durch das Mikroskop geschaut: Aufschrift des Atmel-Prozessors.

Der Prozessor sitzt nun fest, das Tesa wird abgezogen und die restlichen Pins gelötet. Dabei Ruhe bewahren und Luft anhalten! Das Resultat sieht immerhin annehmbar aus und es weist keine Kurzschlüsse auf. Kleiner Tipp: Keinesfalls sollte man auf spezielles SMD-Lötzinn verzichten, es ist zwar etwas teurer als das dickere für übliche Lötungen, doch erleichtert es die Portionierung des Zinns erheblich.

Der Mega und sein Drumherum

Die Experimentierplatine sollte so universell wie möglich sein. Das bedeutet: sie enthält lediglich Spannungsversorgung, Reset-Logik, Takterzeugung, Programmierstecker und Anschlüsse für alle wichtigen Controller-Pins. Eine Ausnahme gibt es: Die wenigen Anschlüsse, die dazu notwendig sind, externen Speicher anzuschließen, sind nicht nach außen geführt. Die internen 128 KB sollten wirklich reichen!.

Experimentierplatine und Programmer mit Verbindungskabel.
Die Platine von unten. Deutlich sieht man den Prozessor.
Der Bestückungsplan. Eine besser lesbare Version gibt es (unten) zum Download.

Die Spannungsversorgung des SMD-IC geschieht mit 5 Volt über einen zu groß dimensionierten Regler, der mit Leichtigkeit weitere Elektronik versorgen kann. Eine LED leuchtet bei anliegender Versorgungsspannung. Jumper 3 wird geschlossen, sofern die 5-Volt-Versorgung nicht vom Regler, sondern vom Programmiergerät stammt. Jumper 1 legt die Leitung PEN auf Massepotenzial. Sie dient dazu, den Controller in den seriellen Programmiermodus zu versetzen. Dazu wird PEN während eines Reset mit Masse verbunden. Nutzt man den im folgenden erwähnten Programmer, ist das jedoch nicht notwendig und der Jumper bleibt offen. Die Belegung des Programmiersteckers ISP lautet wie folgt:

Steckerbelegung ISP
Pin 1        +5 Volt
Pin 2        /Reset
Pin 4        SCK
Pin 5        MOSI
Pin 6        MISO
Pin 10        GND

Obige Steckerbelegung passt nicht zufällig zu dem bereits in der FUNK vorgestellten AVR-Programmer. Die Bauanleitung finden Sie auf dieser Homepage. Der Programmer stellt ein aus wenigen Bauelementen bestehendes Interface zwischen der RS232 des PC und dem Controller dar. Es reicht, aus dem Projekt das kleine Basismodul zu bauen und an die serielle Schnittstelle des PC sowie an die Experimentierplatine anzuschließen. Programmiert wird mit Ponyprog, die inzwischen sehr bekannte und beliebte Software zur Programmierung (nicht nur) der AVR-Controller. (www.lancos.com)

Die Ports sind auf übliche einreihige Buchsen- bzw. Steckerleisten im Raster 2,54 mm geführt. Daher ergeben sich zahlreiche Möglichkeiten, die MEGA-Platine mit anderen zu verbinden, provisorische Verbindungen zu legen, Schaltungen aufzubauen und zu testen. Zum Experimentieren benötigt man dazu zahlreiche Massepunkte. Große Masseflächen laden dazu ein, an geeignetem Ort einige Lötnägel einzulöten, um dort Verbindungskabel für die Masse anschließen.

Der leistungsstarke Atmel MEGA 103, 128 KB Speicher, ein guten Compiler wie BASCOM-AVR und das schnell aufzubauende Programmierinterface bilden zusammen eine echte High-End Entwicklungsumgebung für viele Aufgaben zu überraschend kleinem Preis. Auf meinem Basteltisch hat sich dieses Board inzwischen als Prototyp für Controller-Basteleien etablieren können.

Mit dem Basic Compiler von MCS ist das Programmieren sehr einfach.
Pinbelegung des Mega103.
Das Gehäuse des ATMEL Mega 103.
URLs:
Bascom: www.bascom.de
Ponyprog: www.lancos.com

Download von Dateien zu diesem Projekt

In der Datei mega103.zip (110 KB)sind die Original EAGLE 4.11-Dateien, das Layout im Postscript-Format und der Bestückungsplan enthalten. Eine Freeware-Version von EAGLE gibts bei www.CadSoft.de zum Download.

Und hier geht es zum Download.


Platinen und Bausätze

Für dieses Projekt biete ich einen Bauteileservice an.


Zur Hauptseite

Copyright Michael Wöste