Sie sind auf Seite 1von 11

Ltanleitung fr das Atmega-Basis-Board Version 1.

2
Benjamin Reh November 26, 2012

Contents
1 2 Einleitung 2

2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11

Zusammenbau

Teileliste . . . . . . . . . . . . . . . . . . . Ausrichten der Platine . . . . . . . . . . . Atmega Sockel . . . . . . . . . . . . . . . Spannungsversorgung . . . . . . . . . . . . LED . . . . . . . . . . . . . . . . . . . . . Quarz . . . . . . . . . . . . . . . . . . . . Programmieradapter und Reset-Schaltung Spannungsversorgung fr den ADC . . . . Transistoren . . . . . . . . . . . . . . . . . Pins . . . . . . . . . . . . . . . . . . . . . Ltbrcken SJ1 und SJ2 . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

2 2 2 3 4 4 5 5 5 6 6 7 7

3.1 Fusebits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Erstes Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1 Fehlersuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Berechnung eines Vorwiderstands . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Abbildungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Anhang

Inbetriebnahme

7 8 10

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 knnen 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 22OOhm1 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.

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 und einem 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 eingeltet, 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 Spannungsversorgung eingeltet. Minus ist oben auf der Platine.
Achtung: Bei Elektrolytkondensatoren ist die richtige Polung wichtig! Sonst wird das Bauteil zerstrt!

Figure 2: A7805 Spannungsregler

Version Mrz 2012


Direkte Spannungsversorgung (alternativ)

IWR-Robotiklabor

In seltenen Anwendungsbereichen mchte man die Spannung nicht wie oben beschrieben gltten. 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 Versorgungsspannung ausreichend stabil, so knnen theoretisch auch alle drei Kondensatoren der Spannungsversorgung 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 Berechnung des 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 16M hz betreiben zu knnen.

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. densator des Quarzes bentigt.

Als letztes wird noch ein Kondensator (C4) zwischen Reset-Schalter und dem Keramikkon-

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 Platinendesign 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

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 Atmega zugewandte 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 ein Servo 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 Alternativspannung 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 RXund 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 10poligen 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.

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 FlashSpeicher 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 MikrocontrolleProgrammierung 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 3. Obere Leiste hat keine Spannung Bei Platinen ab Version 1.1 siehe 2.10

IWR-Robotiklabor

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 Versorgungsspannung 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 UR abfllt) und ein Vorwiderstand RV (mit dazugehrigen Spannung UR ) hintereinander an eine gemeinsame Spannung U angeschlossen. Gem des Kircho'schen Maschenregel addieren sich die Spannungen:
U = UR + UV UV = U UR

Nach der Kircho'schen Knotenregel ist der Strom durch den Widerstand gleich dem durch die Diode, also gleich dem Gesamtstrom:
I = IV = IR

Version Mrz 2012 Fr den Vorwiderstand ergibt sich nun ein Wert von
RV =
Beispiel

IWR-Robotiklabor

UV U UR = IV IR

Der Vorwiderstand fr eine typische grne LED mit einer Spannung von 2.2V und einem Strom von 20mA soll an einer Spannungsquelle von 5V betrieben werden.
RV = U UR 5V 2.2V = = 140 IR 0.020A

Nicht jeder Widerstandswert ist aber als Bauteil verfgbar. Hier wrde am Besten ein Vorwiderstand 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.

Version Mrz 2012


4.3 Abbildungen

IWR-Robotiklabor

Version 1.1

Version 1.1

10

3 2 1

Version 1.2

JP1 SJ2 SJ1 SJ2 SJ1

JP1

Version Mrz 2012

IC1
R1 R1 S1 C5 C4 C8 R2 C7 C7 JP21 C6 JP20 JP19 JP2 JP3 JP23 C4 S1

IC1

C5

JP13 JP14 JP15 JP16 JP17 JP18 JP12 JP11 JP10 JP9 Q1 JP8

JP13 JP14 JP15 JP16 JP17 JP18

JP12 JP11 JP10 JP9 Q1 JP8 C8

R2

JP21 C6 JP20 JP19 JP2 JP3 JP23 JP7 JP6 JP5 JP4 R3 C3 LED1 C2 Q2 IC2 C1Q3 3 2 1

11
C2 Q2 LED1 IC2 C1Q3 3 2 1 JP22

JP7 JP6 JP5 JP4 R3 C3

JP22

IWR-Robotiklabor