www.blafusel.de

  Home  |   Privat  |   Impressum  |   Bücher  |   Computer  |   Mikrocontroller  |   Misc  |   OBD  |   Forum

I/O-Board für µC mit AVR ATmega8

Inhalt

Einführung
Spannungsversorgung
Prozessor
RS232
Platine
Software

Einführung

Um den ATmega8-16(PI) kennenzulernen, habe ich wieder eine Schaltung und Platine entworfen, die gleich auch für das noch zu realisierende Projekt geeignet ist. Deshalb bietet sie nicht viele Experimentiermöglichkeiten und auch die I/O-Leitungen wurden nur minimalistisch genutzt. Trotzdem kann man mit der Schaltung die ersten Gehversuche unternehmen. Die wichtigsten Merkmale sind:

I/O-Board ATmega8

Im Web findet man zahlreiche Schaltungsentwürfe, die mir alle nicht richtig gefallen. In der Regel stören mich zwei Dinge: die Spannungsversorgung und die RS232-Schnittstelle:

  • Die Spannungsversorgung wird stets mit dem billigen 7805 realisiert. Bei höheren Eingangsspannungen, wie sie z. B. eine Autobatterie liefert, wird das Ding sehr heiß. Die von mir benutzte Schaltung mit Schaltregler ist nicht wesentlich aufwendiger/teurer, aber sehr viel leistungsfähiger.
  • Die serielle Schnittstelle wird oft falsch realisiert. Entweder mit falschen Bauteilen oder falschen Anschlüssen.

Spannungsversorgung

Folgende Abbildungen zeigen den Schaltplan für die einzelnen Module.

Die Spannungsversorgung orientiert sich an meinen Ausführungen zum Schaltregler. Angesichts der Tatsache, daß die Schaltung nicht mehr als 1A Leistung benötigen wird, können die Dioden etwas kleiner ausfallen als sonst. Wenn keine Low-ESR-Kondensatoren beschaffbar sind, sollten handelsübliche Elkos auch ausreichen. Das Platinenlayout ist so gestaltet, daß sowohl eine axiale Drosselspule, als auch eine auf Ringkern eingebaut werden kann, wozu nur die zwei jweils passenden Löcher gebohrt werden müssen. C9 muß für mindestens 35V dimensioniert sein.

Spannungsversorgung

Prozessor

Noch einmal der Hinweis auf den Anschluß des LCDs, wie er in der Einführung zum C-Control LCD-Modul beschrieben ist. Der Entwurf verzichtet auf eine Anbindung der R/W-Leitung des Displays und legt diese auf Masse, so daß das Display nur beschrieben und nicht ausgelesen werden kann, was i. d. R. ausreicht. R2 in der Baugröße PT 6.

LED und Taster sind so geschaltet, daß die LED bei HIGH am Ausgang des ATmega8 leuchtet und ein geschlossener Taster HIGH am Eingang symbolisiert.

Prozessor

RS232

Die serielle Schnittstelle wird mit dem üblichen MAX232 aufgebaut. Das Datenblatt gibt klipp und klar an, wieviele und wie dimensionierte Elkos(der kleinste verfügbare Spannungsbereich von 63V ist ausreichend) zu verbauen sind. Keine Ahnung, wieso immer wieder nur vier Stück oder 10µF verbaut werden. Wäre der Dallas DS275 nicht so unverhältnismäßig teurer, wäre es interessant, ihn zu verbauen, da er ohne jedwede externe Beschaltung auskommt.

Besonderes Augenmerk sollte man der 9-poligen Buchse schenken. Hier wird auch fast immer die falsche Wahl getroffen. Der µC ist ein Computer und ein solcher bekommt eine männliche Buchse (also einen Stecker), damit externe Peripherie wie Modems usw. (mit einer weiblichen Buchse) direkt über ein 1:1 Datenkabel (immer Buchse/Stecker) angeschlossen werden können. Soll der µC mit einem anderen µC oder PC (welche ergo auch eine männliche Buchse haben) verbunden werden, wird ein Nullmodem-Kabel (immer Buchse/Buchse) mit verdrehten RX- und TX-Leitungen (Pin 2 und 3) benötigt. Zu beachten ist weiterhin, daß eine männliche und eine weibliche Buchse bei Printmontage auf der Leiterplatte nicht einfach ausgetauscht werden können, da bei einer weiblichen Buchse Pin 1 oben rechts ist (Aufsicht) und bei einer männlichen Buchse oben links. Außerdem muß die Buchse bei Printmontage überstehen, damit sie beim Einbau der Platine in ein Gehäuse durch die Gehäusewand hinausragt, weshalb im folgenden Platinenlayout die Platine breiter gezeichnet wurde, als sie tatsächlich ist.

RS232

Platine

Folgend das Platinenlayout (tatsächliche Abmessungen der anzufertigenden Platine: 100*75mm), welches wie immer mit dem kostenlosen Viewer von Sprint ausgedruckt werden kann.

ATmega8 Platine

Software

Für den Einstieg habe ich ein paar einfache Programme vorbereitet, welche die wesentlichen Funktionen des ATmega8 µC demonstrieren. Sie sind jeweils in C mit AVR-GCC/WinAVR programmiert. Nach der Installation hilft das Tutorial ganz gut weiter. Zu beachten ist, daß die Beispiele meistens für ältere Prozessoren sind und deshalb die Parameterbezeichner nicht stimmen. Im Installationsverzeichnis von WinAVR/avr/include/avr findet man zahlreiche Header-Dateien für die verschiedenen Prozessoren. Einfach mal einen Blick in die Dateien mit dem Namen der verwendeten CPU ("xxxm8.h") werfen. Unbedingt den Abschnitt zum makefile lesen und in diesem Programmdateiname ("TARGET=" ohne ".c"), Taktrate ("F_CPU=8000000") und verwendeten Prozessor ("MCU=atmega8") (am besten manuell) definieren.

Meine Programme sind sicherlich nicht absolut optimal. Zu vielen Problemen gibt es bereits hervorragende Lösungen, wie zum Beispiel von Peter Fleury zu LCDs und UARTs. Diese sind sehr umfangreich und für alle CPU-Typen optimiert, wodurch sie etwas aufgebläht und für den Anfänger unübersichtlich werden. Wer programmieren lernen will, sollte sich selber die Zähne ausbeißen und kann meine Beispiele als Gedankenanstoß sehen. Für jedes Beispiel am besten ein eigenes Verzeichnis anlegen. Ggf. müssen Dateien, die bei #include in Anführungszeichen stehen, aus einem der anderen Beispiele in das Verzeichnis kopiert werden.

  • LED. Trivial und einfach für den ersten klassischen Test: Die LED blinken lassen und auf einen Taster reagieren.
  • LCD. Gibt Text auf das LC-Display aus.
  • Serial. µC mit einem PC verbinden und dort das Windows Hyperterminal o. ä. starten (8N1, 9600Bd). Programm sendet die vom µC empfangenen Zeichen als ECHO gleich wieder zurück.

Nutze das Diskussionsforum!