Der ATmega8 verträgt Taktfrequenzen bis zu 16MHz (eine Operation wird in ca. 0,06 µs ausgeführt), besitzt 6 analoge Eingänge die ein Sensorsignal von z.B. 0 - 5V noch mit einer Genauigkeit von ca. 5mV auflösen können, 2 pulsbreitenmodulierte Ausgänge (PWM) mit der sich z.B. die Helligkeit einer LED in über 1000 Zwischenabstufungen steuern lässt, insgesamt 23 digitale Anschlüsse, über die man z.B . Schaltersignale einlesen oder Relais steuern kann, eine serielle Schnittstelle, mit der man ohne großen Programmieraufwand Daten vom PC oder Handy empfangen oder auf einem Bildschirm ausgeben kann und festen Speicher (EEprom) in dem man Werte so speichern kann, daß sie nicht verloren gehen, auch wenn die Betriebsspannung abgeschalten wird.
| Dabei ist der Mega8 recht klein und besitzt die übliche Bauform einfacher Schaltkreise (DIL), die es auch Laien ohne Probleme möglich macht Schaltungen zu löten. Er hat sich mittlerweile quasi als ein Standard durchgesetzt und man kann ihn fast in jedem vernünftigen Elektronikgeschäft für 2 bis 3 Euro kaufen. (bei Conrad zahlt man natürlich das 3fache) | ![]() |
Nicht viel. Der Mega8 lässt sich fertig in
eine Schaltung eingebaut programmieren - ohne teures
Programmiergerät, ohne den Chip jedes mal umstecken zu müssen.
Also erst die Schaltung aufbauen und einfach später am
"lebenden" Objekt jeden einzelnen Befehl sofort
ausprobieren!
Grundsätzlich genügt es 5V Betriebsspannung anzuschließen und
ein 5-adriges Kabel zu löten, das am Parallelport des PCs
angeschlossen wird. Sicherheitshalber baut man in einige
Leitungen Widerstände ein um sowohl den Parallelport als auch
den Chip selbst vor Schäden zu schützen.
Es sei darauf hingewiesen, daß es zu Störungen kommen kann,
wenn die Programmieranschlüsse des Mega8 in einer Schaltung
zusätzlich für andere Funktionen vorgesehen sind. D.h. ist z.B.
an einem der für die Programmierung benötigten Pins schon ein
Relais angeschlossen, dann kann dieses während des
Programmierens anziehen oder die Programmierung schlägt fehl.
Soweit möglich ist es günstig die Programmieranschlüsse also
unbeschaltet zu lassen. Benötigt man alle Anschlüsse für die
Schaltung ist es das Sicherste sich eine Extra-Platine zu löten
und den Chip zum Programmieren umzustecken. Ein Programmierboard
sieht am einfachsten so aus:

Diese Schaltung kann als Grundlage genommen werden um Schaltungen
für den Maga8 zu entwerfen, die man jederzeit nachträglich
umprogrammieren kann. Dazu empfiehlt es sich noch einen
beliebigen 5poligen Zwischenstecker auf der Platine vorzusehen,
um das Programmierkabel abzeihen zu können.
Bei anderen AVR-Typen finden sich die Signale MOSI, MISO, SCK und
/Reset ebenfalls und hier sind lediglich die Pinnummern
anzupassen.
Den Quarz und die beiden zugehörigen Kondensatoren können für
einfache Anwendungen auch weggelassen werden, da der Mega 8 einen
internen Oszillator besitzt. Allerdings empfehle ich zumindestens
eine Schaltung zu besitzen, in der der Quarz oder ein
Keramikoszillator enthalten sind. Wird der interne Oszillator
einmal ausgeschaltet und auf extern eingestellt lässt sich der
Mega8 erst wieder ansprechen und auch erst wieder
zurück-umstellen, wenn auch wirklich ein externer Oszillator
angeschlossen ist.
(nach oben)
Die Software "BASCOM" ist ein
beliebter und sehr einfacher Basic-Compiler für die
Programmierung des Mega8 und anderer AVRs. Er stellt einem sehr
viele komplexe Funktionen zur Verfügung um z.B. die Ansteuerung
von Modellbau-Servos oder die Ausgabe von Text auf LCD-Anzeigen
mit einem einzigen Befehl zu erledigen. Um z.B. den Wert einer
Variablen X über die serielle Schnittstelle auf den
PC-Bildschirm zu senden genügt der Befehl: "Print X" -
fertig!
Selbstverständlich gibt es auch sehr gute und großteils völlig
kostenlose Compiler für C sowie Pascal und natürlich kann man
auch direkt in Assembler programmieren - worauf ich hier jedoch
nicht weiter eingehen will.
BASCOM ist nicht kostenlos - die Demo ist aber zeitlich und in
den verfügbaren Funktionen nicht eingeschränkt. Lediglich die
Programmgröße - also quasi die Länge und Komplexität des
Programmes sind eingeschränkt. Zum Erlernen und für viele
praktische Schaltungen ist diese Limitierung aber noch nicht
störend. Wenn man BASCOM kennen und meist auch schätzen gelernt
hat kann man sich entscheiden ob es einem die gerade mal 80,-Euro
für die Vollversion wert sind oder ob man umsteigt. Der Support
bei registrierter Vollversion funktioniert reibungslos (wenn auch
in Englisch) und meist befinden sich im Anhang einer Email der
Support-Mitarbeiter gleich die gewünschten Updates oder
Dokumente.
Die BASCOM-Demo kann man sich hier von meiner Seite
oder direkt vom Anbieter MCS-electronics
herunterladen. Man achte darauf, daß vor der Installation
irgendein Drucker installiert wurde - BASCOM verweigert sonst
beim ersten Starten den Dienst mit entsprechender Fehlermeldung.
Und es sollte ein beliebiger Parallelport-Drucker(-treiber) sein
- BASCOM akzeptiert USB-Drucker nicht! (Bug)
Da BASCOM Microcontroller direkt über unterschiedlichste
Programmiergeräte beschreiben kann ist es wichtig sorgfältig
darauf zu achten, daß die folgenden Einstellungen korrekt
vorgenommen werden:
Options -> Programmer

Bei Programmer "Universal MCS Interface" und
"WinAVR and SP12" auf der Lasche "Universal"

Das sollte alles sein. Sofern noch nicht geschehen schließt man
einfach das Parallelportkabel und die 5V-Betriebsspannung an den
Mega8 an und es kann los gehen. Man schreibt ein Programm
(nächstes Kapitel) - drückt die Taste F7 um das Programm zu
compilieren (in Chip-Sprache zu übersetzen) und ist dies ohne
Fehlermeldung geschehen drückt man F4 um das Programmerfenster
zu öffnen.
Öffnet sich sofort das folgende Fenster genügt ein Klick auf
"Autoprogram chip" und man kann zusehen wie der Chip
beschrieben wird - fertig!

Bei den meisten erscheint in diesem Moment aber statt des
Programmers erstmal diese Fehlermeldung:

Das bedeutet, daß die Verbindung zum Chip nicht hergestellt
werden konnte. In 90% aller Fälle (meine Erfahrung) liegt das an
fehlerhaft gelöteten Kabeln, falscher Betriebsspannung und
Kurzschlüssen auf Leiterplatten. Also lieber 8mal hingucken, die
5V Betriebsspannung im angeschlossenen Zustand nachmessen und
jede einzelne Verbindung durchklingeln bevor man einen Hilferuf
in die Welt schickt! Gegen falsches Löten kann euch im Internet
keiner helfen!
Ist da 200%ig sicher alles einwandfrei und erscheint trotzdem
immer wieder diese Fehlermeldung, dann kommuniziert BASCOM nicht
korrekt mit dem Parallelport, entweder weil dieser eine andere Adresse als
$378 hat (in der Systemsteuerung überprüfen) -
oder (meistens) weil z.B. WinXP /2k / NT den Direktzugriff auf den Port verweigert.
In diesem Falle ladet euch die Datei "giveio.sys" und speichert sie im Ordner "../Windows/System32/drivers"
Ist das erledigt habt Ihr 2 Möglichkeiten:
- Ihr ladet euch die Datei "LoadDrv.exe" und könnt/müsst den Treiber jedes mal manuell starten und ggF. abschalten
- Ihr installiert den Treiber permanent indem Ihr die Datei "giveio.inf" ladet und ausführt.
Erklärungen, wie dieser Treiber und die Portfreigabe funktioniert findet Ihr reichlich im Netz. Ich habe den Treiber aus einer mMn seriösen Quelle
- übernehme aber selbstverständlich keinerlei Garantie das er virenfrei ist und natürlich auch keine Gewährleistung für mögliche Schäden, die aus der Installation entstehen können.
Informiert euch selbst und wenn Ihr Zweifel habt, dann lasst die Finger davon und kauft euch einen USB-Programmer. Ich nutze diesen Treiber jedenfalls auch und hatte bislang keinerlei Probleme damit.
Dieses Low-Cost-Programmer-Kabel lässt sich nach meiner Erfahrung bis WinXP wirklich an jedem Rechner zum Laufen bewegen -
Erfahrungen, ob das unter Vista auch noch geht habe ich einstweilen nicht - falls es jemandem von euch gelingt würde mich eine eine kleine Info freuen.
Auf alle möglichen Fehlervarianten einzugehen würde den Rahmen dieses Scripts deutlich sprengen - helfen alle o.a. Maßnahmen nicht weiter, dann fragt bitte einfach in einem entsprechenden Forum.
(nach oben)
Und jetzt zum
nächsten Kapitel - was macht bei BASCOM welcher Programm-Befehl.
->