Post on 25-Nov-2015
description
Ltanleitung fr das Atmega-Basis-Board
Version 1.2
Benjamin Reh
November 26, 2012
Contents
1 Einleitung 2
2 Zusammenbau 2
2.1 Teileliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Ausrichten der Platine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.3 Atmega Sockel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.4 Spannungsversorgung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.5 LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.6 Quarz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.7 Programmieradapter und Reset-Schaltung . . . . . . . . . . . . . . . . . . . . . 5
2.8 Spannungsversorgung fr den ADC . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.9 Transistoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.10 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.11 Ltbrcken SJ1 und SJ2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 Inbetriebnahme 7
3.1 Fusebits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2 Erstes Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4 Anhang 7
4.1 Fehlersuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.2 Berechnung eines Vorwiderstands . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.3 Abbildungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1
Version Mrz 2012 IWR-Robotiklabor
1 Einleitung
Dieses Dokument dient als Hilfe beim Zusammenbau des Atmega Boards. Da die Platinen
nicht bedruckt sind, mssen die Bauteile mit Hilfe von Abbildung 1 und dieser Anleitung
richtig positioniert werden.
Der hier beschriebene Vorgang fhrt zum Vollausbau der Platine. Einzelne Abschnitte kn-
nen bersprungen werden, sofern die Hardware nicht bentigt wird.
2 Zusammenbau
2.1 Teileliste
Bezeichnung Wert Bauteil
C1, C4, C5, C6 100nF Keramik-Kondensator
C7,C8 22pF Keramik-Kondensator
C2 220F Elektrolyt-Kondensator
C3 10F Elektrolyt-Kondensator
IC1 Atmega168 IC
IC2 A7805 Spannungsregler
Q1 16Mhz Quarz
JP22 Verpolungssicherer Pin
LED1 3mm LED
R1 10kOhm Widerstand
R2 10Ohm Widerstand
R3 22OOhm
1
Widerstand
JP1 Wannenstecker
Q2, Q3 BS250 Transistor
2.2 Ausrichten der Platine
Als erstes ist es ntig zu erkennen, von welcher Seite aus die Platine bestckt wird und von
welcher Seite geltet wird. Am Besten legt man sich die Platine gem der nebenliegenen
Abbildung (Abb. 1) hin. Die Platine ist von beiden Seiten beschriftet. Auf der Seite, auf der
die Zeile Robotiklabor an der Uni Heidelberg steht, wird bestckt. Dem zufolge wird auf der
anderen Seite geltet.
Ab Version 1.2 sind die Platinen mit oben (Bestckungsseite) und unten (Ltseite) beschriftet.
2.3 Atmega Sockel
Der Atmega selbst wird in einen Sockel gesteckt, um ihn gegebenenfalls austauschen zu knnen.
Der Sockel wird in die Lcher in der Mitte platziert und zwar so, da die Markierung in Form
einer Einbuchtung an der kurzen Seite nach links zeigt. Den Atmega selbst steckt man am
Besten erst nach dem Zusammenbau ein.
2
Version Mrz 2012 IWR-Robotiklabor
Figure 1: Board in der Version 1.1
2.4 Spannungsversorgung
Die Spannungsversorgung besteht aus einen 5V Spannungsregler, drei Kondensatoren undeinem Doppelpin zum Anschlieen der Spannung von auen.
1. Als erstes werden die 2 Pins mit der Verpolungsschutz verltet. Der Verbinder wird so
eingeltet, da die Fahne zur Platineninnenseite zeigt.
2. Als Spannungregler wird hier ein LM7805 im TO-220 Gehuse verwendet (Abb.2 ) Er
wird so eingeltet, da die Khlfahne nach auen von der Platine weg zeigt.
3. Der Keramikkondensator (C1) wird in die zwei Ltpunkte vor dem Spannungsregler ein-
geltet, die Polung ist wie bei allen Keramik-Kondensatoren unwichtig.
4. Der kleine Elektrolytkondensator (C3) wird in die zwei groen Lcher weiter zur Mitte
leicht oberhalb eingeltet. Die mit mehreren Minus-Zeichen gekennzeichnete Seite mu
dabei nach auen zeigen.
5. Der etwas grere Elektrolytkondensator (C2) wird nun noch links unterhalb der Span-
nungsversorgung eingeltet. Minus ist oben auf der Platine.
Achtung: Bei Elektrolytkondensatoren ist die richtige Polung wichtig! Sonst wird das Bauteil
zerstrt!
Figure 2: A7805 Spannungsregler
3
Version Mrz 2012 IWR-Robotiklabor
Direkte Spannungsversorgung (alternativ)
In seltenen Anwendungsbereichen mchte man die Spannung nicht wie oben beschrieben glt-
ten. Das ist aber eher ein Spezialfall, z.B. wenn die Versorgung von auen bereits ausreichend
gut ist. Hier wird gezeigt, wie die externe Spannung direkt angeschlossen wird.
Schliet man die Basis-Platine an eine externe Schaltung an, die schon 5 Volt liefert, so ist
der Spannungsregler nicht ntig. Der Mikrocontroller vertrgt eine Spannung zwischen 4.5 und
5.5 Volt. Statt des Spannungsreglers wird dann ein in der Mitte isolierter Draht als Brcke
eingeltet, der die beiden ueren Ltaugen verbinden. Er darf aber nicht den Ground am
mittleren Kontakt berhren, deshalb ist die Isolation notwendig. (Siehe Abbildung 3)
Einer der beiden Elkos ist dann auf jeden Fall berssig. Ist die externe Versorgungsspan-
nung ausreichend stabil, so knnen theoretisch auch alle drei Kondensatoren der Spannungsver-
sorgung weggelassen werden.
Figure 3: Ltbrcke anstelle des Spannungsreglers
2.5 LED
Die Leuchtdiode an sich dient lediglich dem Zweck, das Anliegen der Spannung anzuzeigen.
Sie kann nicht geschaltet werden. Abhngig von der Farbe der LED ist ein entsprechender
Widerstand R3 zu whlen. Typische Werten liegen zwischen 140 und 220. Zur Berechnungdes Vorwiderstands siehe 4.2.
Die LED wird mit dem krzeren Bein (Kathode) nach unten hin in die zwei Lcher ganz
rechts unten eingeltet. Der dazugehrige Vorwiderstand R3 stehend in die zwei Pins direkt
darber.
Figure 4: LED
Die Schaltung ist jetzt bereit fr den ersten Test. Schliet man eine Spannung von mindestens
6 bis 7 V bei vorhandenem Spannungsregler an, so sollte die LED nun leuchten
2.6 Quarz
Der Quarz wird bentigt, um den Atmega mit einer Taktfrequenz 16Mhz betreiben zu knnen.
4
Version Mrz 2012 IWR-Robotiklabor
Der Quarz (Q1) selbst wird in die zwei Lcher auf der unteren Seite zwischen den beiden
groen Pinfelder, die zwei Kerkos (C7, C8) rechts und links vom Quarz eingeltet. Die
Polung ist dabei unwichtig.
2.7 Programmieradapter und Reset-Schaltung
Achtung: Bei Version 1.1 ist der Resetknopf vor der Wannenstecker einzulten!
Der Reset-Knopf kommt in die vier Lcher links unten, unterhalt die Wannenbuchse.
Die Wannenbuchse wird ganz links in die Pins eingeltet. Die Aussparung in der Buchse
zeigt zum Atmega hin.
Der Pullup-Widerstand (R1) fr den Reset kommt bei Platinen-Versionen < 1.2 direkt
darunter etwas weiter rechts. Ab Version 1.2 wird er stehend links oberhalb des Atmegas
eingeltet.
Als letztes wird noch ein Kondensator (C4) zwischen Reset-Schalter und dem Keramikkon-
densator des Quarzes bentigt.
2.8 Spannungsversorgung fr den ADC
Um den Analog-Digital-Wandler benutzen zu knnen, mssen zwei Kerkos und ein Widerstand
eingeltet werden.
Der Widerstand R2 wird direkt zwischen der Stiftleiste oben rechts und dem Atmega-
Sockel eingeltet.
Die Kondensatoren C5 und C6 kommen in die verbleibenden Postionen links daneben.
2.9 Transistoren
Mit einem Pin an einem Mikrocontroller knnen nur sehr begrenzte Strme geschaltet werden.
Einmal ist das durch die Fhigkeit eines einzelnen Pins begrenzt, zum anderen auch durch den
maximalen Gesamtstrom, den der Controller aufnehmen darf. Bereits sehr helle LEDs oder
Infrarot-Dioden knnen da zu viel sein. (Nheres bitte im Datenblatt des zu verwendenden
Controllers nachlesen).
Mchte man hhere Strme schalten, so bietet sich dazu ein Transistor an. Das Platinende-
sign sieht dafr zwei pMOS Transistoren vor, die mit den Pins PB1 und PB2 geschaltet werden
knnen. Diese Pins knnen auch im Pulsweiten-Modus betrieben werden und sind deshalb ideal
z.B. fr die Regelung der Helligkeit einer Lampe/LED oder die Geschwindigkeit eines Motors.
Ist nicht ganz klar, ob die Transistoren fr den geplanten Aufbau erforderlich sind, so sollte
Rckfrage gehalten werden.
Aufbau
Die zwei Transistoren Q2 und Q3 selbst werden in die zwei mal 3 Lcher rechts vom Atmega,
unterhalb des gren Kondensators und oberhalb des Spannungsreglers eingeltet. Die ache
Seite des Transistors zeigt dabei jeweils zur Mitte hin, die runde nach auen. Der mittlere Pin
5
Version Mrz 2012 IWR-Robotiklabor
mu unter Umstnden etwas weggebogen werden, um in das mittlere, leicht versetzte Loch zu
passen.
An der 2x2 (als Teil der 2x3 Leiste) Pinleiste ganz rechts oben liegen zur Mitte hin die
Ausgangssignale an, auen Ground.
2.10 Pins
Nun fehlen lediglich die Pins, an denen die Peripherie angeschlossen werden. Dazu sind jeweils
drei Pins vorgesehen. Der Platinenuere hat Ground, der mittlere 5V und der dem Atmegazugewandte ist mit einem Pin auf dem Mikrocontroller verbunden.
Getrennte Versorgunsspannung (Ab Version 1.1)
Unter Umstnden kann es sinnvoll sein, da man an den Pin fr die Versorgungsspannung
nicht die vorgelterte Spannung des Atmega anlegen mchte. Das knnte dann sein, wenn
man z.B. fr Servos mehr als nur 5V bentigt oder wenn die Spannung zum Beispiel durch einServo derart gestrt wird, da der Atmega abstrzen wrde. Auch wenn hhere Strme ieen,
bietet es sich an, diese an dem Spannungsregler der Platine vorbeizufhren. Deshalb ist die
Versorgungsspannung auf den oberen Pinleisten abgetrennt.
Mchte man die Abtrennung nicht und einfach die Pins mit Platinenspannungspannung
versorgen, so ist einfach ein Jumper auf die zwei linken Pins der oberen 2x3-Pin-Matrix zu
stecken. Alternativ kann auch eine Drahtbrcke eingeltet werden.
Ansonsten kann der Pin oben links der 2x3-Matrix zur Versorgung mit einer Alternativspan-
nung genutzt werden.
2.11 Ltbrcken SJ1 und SJ2
Ab Version 1.2
Zuknftige Programmieradapter knnen die Mglichkeit bieten, zustzlich zum Aufspielen der
Software auch noch eine serielle Verbindung von PC und Controller bereitstellen. Aus diesem
Grund ist es mglich, durch die Ltbrcken SJ1 und SJ2 links unten auf der Platine die RX-
und TX-Pins des Mikrocontrollers auf den Programmieradapter zu legen. Dazu sind einfach
die zwei Kontakte je Ltbrcken mit etwas Ltzinn zu verbinden.
Workaround
Leider ist bei der Umstellung auf Version 1.2 mit der Einfhung der Ltbrcken eine kleine
Inkompartibilitt mit vorhandenen Programmieradaptern entstanden. Auf den Pins der 10-
poligen Pfostensteckerbuchse, die nun fr RX und TX verwendet werden knnen, erwarten
diese stattdessen Ground. Sollte es ein Problem mit dem Aufspielen der Software geben, so
wird hier ein Workaround dargestellt:
Man Verbindet die drei Pins links unten an der 10-poligen Programmier-Buchse miteinander.
Entweder mit Ltzinn oder indem man einen Draht mit zur Verbindung verwendet. Dadurch
liegen alle drei Pins, wie bei vorherigen Versionen, auf Ground.
6
Version Mrz 2012 IWR-Robotiklabor
3 Inbetriebnahme
3.1 Fusebits
Um mit den Atmega vollstndig nutzen zu knnen, sollte er auf die Benutzung des externen
Quarzes eingestellt (gefust) werden. Dies geschieht entweder mit dem avrstudio unter Windows
oder viel einfacher mit dem Linux-Tool avrdude. Unter der Adresse http://www.engbedded.
com/fusecalc/ ist ein Hilfe zu nden, wie sich die Fusebits zusammensetzen. Sinnvolle Werte
fr den Atmega168 und den 16Mhz-Quarz sind als target im Makele des Basis-Codes enthalten.
Wie man den Basis-Code bekommt, steht im nchsten Abschnitt. Mit make fuse knnen direkt
die richtigen Fusebits gesetzt werden.
Von Hand ginge es sonst so
avrdude -p m168 -U lfuse:w:0xff:m -U hfuse:w:0xd7:m -c [Programmer] -P [Port]
3.2 Erstes Programm
Um ein Programm auf den Mikrocontroller zu bertragen kann ebenfalls das Tool avrdude
verwendet werden. Um den Start in die Mikrocontrollerprogrammierung zu erleichtern, haben
existiert auf der Homepage des Labors
(http://roboter.uni-hd.de/DEVELOPMENT/)
ein Projekt namens Basis, das Beispielcode und ein Makele bereitstellt.
Alternativ (empfohlen) kann man auch ein svn checkout machen und erhlt so auch das
Datenblatt des Atmega168 sowie die allerneueste Version der Basis. Das geht mit dem Befehl
svn co http://ornella.iwr.uni-heidelberg.de/svn/basis/.
Das Makele enthlt ein target prog mit den Optionen, um ein Programm in den Flash-
Speicher des Mikrocontrollers zu bertragen. Oft bentigte Funktionen sind in der Basis bereits
implementiert, dazu verweisen wir auf die entsprechenden Header-Dateien der Projekts.
Ein separates Dokument in Form eines Tutorials zur Einfhrung in die Mikrocontrolle-
Programmierung schliet an genau diesem Punkt an.
4 Anhang
4.1 Fehlersuche
Eine Auistung huger Fehler und deren Ursachen:
1. LED leuchtet nicht
LED falsch herum eingeltet
Spannung zu gering (mind. 6V bei eingebautem Spannungsregler)
Kurzschlu
2. Controller lt sich nicht programmieren
Platine mit ausreichend Spannung versorgen (Leuchtet die LED?)
Bei Platinen ab Version 1.2 siehe 2.11
Controller richtig herum eingesetzt? Markierung mu Richtung Programmierbuchse
zeigen
7
Version Mrz 2012 IWR-Robotiklabor
3. Obere Leiste hat keine Spannung
Bei Platinen ab Version 1.1 siehe 2.10
4. Controller arbeitet nicht, aber Spannung liegt an
Ist der Programmieradapter in der Platine eingesteckt aber nicht ber USB mit dem
Rechner verbunden?
5. Controller hlt das Timing nicht ein
Fusebits berprfen 3.1
6. Controller resettet sich
Spannung bricht ein:
Strombegrenzung am Netzteil erhhen.
Akkus laden
zu viel Last auf der internen 5V Spannungsversorgung?
Software-Fehler wie fehlerhafte Pointer
(Es gibt keinen Segfault auf dem Mikrocontroller)
4.2 Berechnung eines Vorwiderstands
Bei einigen Bauteilen, wie z.B. LEDs, bentigt man einen Vorwiderstand, um sie an der Ver-
sorgungsspannung betreiben zu knnen. Ein Vorwiderstand ist ein Widerstand, der mit dem
Bauteil selbst in Reihe, also hintereinander, geschaltet ist. Dadurch erreicht man, da die
zulssige Spannung und der zulssige Strom (gem Datenblatt) nicht berschritten werden
Figure 5: Vorwiderstand
Wie in Abbildung 5 zu erkennen, werden eine Diode R (ber die die Spannung URabfllt) undein Vorwiderstand RV (mit dazugehrigen Spannung UR) hintereinander an eine gemeinsameSpannung U angeschlossen.Gem des Kircho'schen Maschenregel addieren sich die Spannungen:
U = UR + UV UV = U URNach der Kircho'schen Knotenregel ist der Strom durch den Widerstand gleich dem durch
die Diode, also gleich dem Gesamtstrom:
I = IV = IR
8
Version Mrz 2012 IWR-Robotiklabor
Fr den Vorwiderstand ergibt sich nun ein Wert von
RV =UVIV
=U URIR
Beispiel
Der Vorwiderstand fr eine typische grne LED mit einer Spannung von 2.2V und einem Stromvon 20mA soll an einer Spannungsquelle von 5V betrieben werden.
RV =U URIR
=5V 2.2V
0.020A= 140
Nicht jeder Widerstandswert ist aber als Bauteil verfgbar. Hier wrde am Besten ein Vor-
widerstand von 150 gewhlt werden, weil er am dichtesten an dem berechneten Wert liegt.Auerdem ist man mit einem etwas grerer Widerstand sicher, da der zulssige Strom nicht
berschritten wird. Grere Vorwiderstnde bei LEDs fhren zu weniger Stromverbrauch und
mindern die Helligkeit nur gering.
9
Version Mrz 2012 IWR-Robotiklabor
4.3 Abbildungen
Version 1.1
Version 1.1
12
3
10
Version Mrz 2012 IWR-Robotiklabor
Version 1.2
12
3
IC1
IC2
C2C3
R1
JP1
C7
C8Q1
JP2
JP3
JP4
JP5
JP6
JP7
JP8
JP9
JP10
JP11
JP12
JP13
JP14
JP15
JP16
JP17
JP18
JP19
JP20
JP21
JP22C5 C6
R2
R3LE
D1
C4
C1
S1
JP23
Q2
Q3SJ1SJ2
12
3
IC1
IC2
C2C3
R1
JP1
C7
C8
Q1
JP2
JP3
JP4
JP5
JP6
JP7
JP8
JP9
JP10
JP11
JP12
JP13
JP14
JP15
JP16
JP17
JP18
JP19
JP20
JP21
JP22C5 C6
R2
R3LE
D1
C4
C1
S1
JP23
Q2
Q3SJ1SJ2
11
EinleitungZusammenbauTeilelisteAusrichten der PlatineAtmega SockelSpannungsversorgungLEDQuarzProgrammieradapter und Reset-SchaltungSpannungsversorgung fr den ADCTransistorenPinsLtbrcken SJ1 und SJ2
InbetriebnahmeFusebitsErstes Programm
AnhangFehlersucheBerechnung eines VorwiderstandsAbbildungen