Forum: Mikrocontroller und Digitale Elektronik ATMEGA328-PU


von Christian S. (vivus)


Lesenswert?

Hallo zusammen,

ich studiere Elektrotechnik an einer Uni im 2. Semester und würde gern 
nebenbei ein wenig mit Bauelementen basteln.

Nun plane ich mit einem Arduino Uno R3 den Controller zu beschreiben und 
anschießend auf einer Platine unabhängig vom Arduino zu betreiben. Um 
das  zu machen, suche ich jetzt eine Grundschaltung, mit der ich 
sozusagen starten kann. Hierzu habe ich folgende Anleitung gefunden: 
http://www.rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht

Sind die Pins immer gleich sprich die Reset Taste auf Pin 1 usw. ? oder 
kann ich mit der Anleitung und dem ATMEGA328-PU nichts anfangen? Habt 
ihr vielleicht eine bessere Anleitung als diese? Könnt ihr mir zum Start 
noch weitere Tipps geben?

Schöne Grüße

von Karl H. (kbuchegg)


Lesenswert?

Chris Sch schrieb:


> Sind die Pins immer gleich sprich die Reset Taste auf Pin 1 usw. ?

Hol dir das Datenblatt zu deinem spezifischen Prozessor (gits bei Atmel) 
und sieh da drinnen nach. Gleich am Anfang ist eine Zeichnung des µC mit 
allen Pins und daneben steht, welcher Pin welche Bedeutung (Bedeutungen) 
hat.


> ich studiere Elektrotechnik an einer Uni
Dann wirds Zeit, dass du lernst, dass es für dich für einen bestimmten 
IC nur eine einzige Bibel mit uneingeschränkter Autorität gibt: Das 
Datenblatt des Herstellers.
Mal abgesehen von Fehlern da drinnen (kommt vor, wenn auch selten), hat 
alles was da drinnen steht, den Status der 10 Gebote

von Christian S. (vivus)


Lesenswert?

Hm ok, war etwas missverständlich formuliert. Ich meine das 
Beispielsweise so:

Die absolute Grundschaltung soll die folgende darstellen:
http://www.rn-wissen.de/images/0/09/800px-Avrtutorial_grundschaltung_mega32.gif

Nun frage ich mich, ob der ATMEGA328-PU ebenfalls so geschaltet werden 
muss, oder ob dieser z. B. diese "Verbindungen" nicht benötigt. 
Weiterentwicklung oder was auch immer für einen Grund...

Ich kann im Datenblatt solche Informationen nicht finden. Vielleicht bin 
ich auch einfach blind :) Hab das aktuelle Datenblatt mit um die 660 
Seiten.

von Electronics'nStuff (Gast)


Lesenswert?

1. Du öffnest das Datenblatt des ATMEGA328
2. Du liest, welche Pins beschaltet werden MÜSSEN (das sind in aller 
Regel alle Versorgungspins, der Reset und falls du den mal programmieren 
willst, MOSI, MISO und SCK).
3. Du kaufst dir einen AVRISP MKII (z.B.)
4. Du installierst AVRStudio (o.ä.)
5. Du schreibst ein Programm (z.B. PORTB = 0xFF; // Schatet PORTB high)
6. Du kompilierst
7. Du lädst das auf den µC
8. Du kontrollierst.

von Electronics'nStuff (Gast)


Angehängte Dateien:

Lesenswert?

Ach ja, dein Link ist  ziemlich nutzlos..

von Andreas B. (bitverdreher)


Lesenswert?

Hi,
mal davon abgesehen, daß der Link nicht funktioniert:
Es reicht nicht das Datenblatt zu besitzen. Man muß es auch lesen.
Es steht garantiert drin, wie man den ATmega beschalten muß. OK, 
vielleicht steht das nicht direkt darin, aber durch Lesen des 
Datenblatts erschließt sich Dir das schon.
Ansonsten gehe einfach mal davon aus, daß die Prinzipschaltung auch für 
diesen AVR gilt.
Übrigens steht die Anschlußbelegung auf Seite 2.

Gruß
Andreas

PS: Die Bibel dürfte auch min. 600 Seiten haben. Das ist hier nicht viel 
anders. Es gibt übrigens auch ein Inhaltsverzeichnis.

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Electronics'nStuff schrieb:
> Ach ja, dein Link ist  ziemlich nutzlos..

Das liegt aber an roboternetz.de. Anscheinend will jene Webseite nicht, 
dass man direkt auf Bilder verlinkt, die dort gespeichert sind. Wenn 
also als Link-Referrer z.B. die Webseite mikrocontroller.net eingetragen 
ist, zeigt der Server von roboternetz.de einfach ein Ersatzbild.

Ich finde das völlig in Ordnung, denn die Webseiten leben von Werbung 
und haben es natürlich lieber, wenn man sie auf normalem Weg anschaut.

Man kann sich aber damit behelfen, im Browser die Referrer zu 
deaktivieren. Oder man kopiert den Link übers Clipboard und ruft das 
Bild in einem neuen Browserfenster auf.

Zum Bild:
Es wird die Anschlussbelegung für einen Mikrocontroller mit 40 Pins 
gezeigt. Der ATmega328 hat aber 28 Pins. Übereinstimmungen wären da eher 
Zufall...

von Electronics'nStuff (Gast)


Lesenswert?

Markus Weber schrieb:
> Ich finde das völlig in Ordnung, denn die Webseiten leben von Werbung
> und haben es natürlich lieber, wenn man sie auf normalem Weg anschaut.

Ja, wenn sie zusätzlich noch einen Link zum Bild auf der Seite 
hinterlassen würde, dann wäre es oke.

von Christian S. (vivus)


Lesenswert?

http://www.rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht

Da die erste Schaltung ist die von mir oben erwähnte Schaltung.

Ihr bringt mich nicht weiter... :) Der eine sagt die wäre gleich, der 
andere sagt es kann ja garnicht sein. Und wieder nen anderer sagt, ich 
soll die Augen im Datenblatt aufmachen... Den Quarz hab ich schonmal 
erfolgreich angeschlossen... aber Reset finde ich nicht ...

von Karl H. (kbuchegg)


Lesenswert?

Chris Sch schrieb:
> http://www.rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht
>
> Da die erste Schaltung ist die von mir oben erwähnte Schaltung.
>
> Ihr bringt mich nicht weiter... :) Der eine sagt die wäre gleich, der
> andere sagt es kann ja garnicht sein.

Die Sache ist die, dass du dir überlegen musst, was denn eigentlich eine 
'Grundschaltung' ausmacht.

Dass du die nicht Pin für Pin von einem Mega32 auf einen Mega328 
übernehmen kannst, ist schon klar. Aber du kannst sie konzeptionell 
übernehmen! Was wird wohl das Minimum dessen sein, was mindestens 
angeschlossen werden muss. Da ist mal mit SIcherheit alles dabei, was 
nach Versorgungsspannung stinkt. Reset ist auch immer gut. Und über den 
ISP Anschluss wirst du den µC ja auch programmieren wollen - also werden 
auch die notwendig sein.

Was brauchst du MINDESTENS für eine Grundschaltung. Und soviel 
nachdenken ist einem Studenten der Elektrotechnik zuzumuten

> erfolgreich angeschlossen... aber Reset finde ich nicht ...

Dann gehst du eben nochmal den M328 Pin für Pin in der Pin-zeichnung 
durch, bis dass du ihn hast.

von Stefan S. (stefan2013)


Angehängte Dateien:

Lesenswert?

Hallo!

Also, hier mal ein paar Anweisungen für ATmega88,168,328

1. Reset über einen Button an GND
2. VCC und GND anschließen mit 100nf Kondensator dazwischen
3. das gleiche für AVCC und GND
4. MISO, MOSI, RESET, SCK für Programmer beschalten; siehe: 
http://www.mikrocontroller.net/articles/AVR_In_System_Programmer

Das sollte dir mal fürs erste helfen, aber du wirst nicht darum 
herumkommen, das Datenblatt zu lesen.

von Christian S. (vivus)


Lesenswert?

Stefan S. schrieb:
> 1. Reset über einen Button an GND

hm wo hast du diese Information denn her? Im Grund wäre das falsch, da 
es zu einem Dauerreset führen würde. Man braucht ja noch nen GND mit nem 
hohen Widerstand z.b. 10k

von Christian S. (vivus)


Lesenswert?

Karl Heinz Buchegger schrieb:
>> erfolgreich angeschlossen... aber Reset finde ich nicht ...
>
> Dann gehst du eben nochmal den M328 Pin für Pin in der Pin-zeichnung
> durch, bis dass du ihn hast.

Mir ist schon klar wo welcher Pin ist, aber nicht was für Bauteile dran 
müssen. Woher weiß ich, dass man einen 22pF mit dem Quarz verbauen muss? 
Woher weiß ich, dass ich ca. 10 k ohm für den Reset Knopf brauche? 
(Wobei das logisch ist ;)).. Naja ich denke ihr wisst was ich meine...

von Stefan S. (stefan2013)


Lesenswert?

Reset hat einen internen Pull-up. Siehe Datenblatt! (typical 
characteristics)

Du sollst den Reset ja nicht mit GND kurzschließen, sondern über einen 
Button, sodass er auf GND geht, wenn du draufdrückst.

Glaub mir, ich habe schon einiges mit Atmegas gebaut (und bin 
Informatiker).

22pf Für den Quarz steht auch im Datenbladd unter Punkt 9 "System 
clock".

Aber als Elektrotechniker solltest du schon die Datenblätter lesen!

von Uwe2 (Gast)


Lesenswert?

> Man braucht ja noch nen GND mit nem hohen Widerstand z.b. 10k
Ne nach VCC. Reset ist Low-aktiv. Nennt sich Pullup.
Ist schon im IC. Ich glaube so 30k. Es ist aber nicht schlecht den noch 
ein bischen niederohmiger zu machen (Störungssicherheit).

> Woher weiß ich, dass man einen 22pF mit dem Quarz verbauen muss?
Hängt vom Quarz ab bzw. der sonstigen Beschaltung und parasitären 
Kapazitäten.

> VCC und GND anschließen mit 100nf Kondensator dazwischen
> das gleiche für AVCC und GND

@vivus
Bitte Zehn mal auf ein Blatt Papier schreiben und über deine Lötstation 
hängen wobei 100nf Kondensator dazwischen mit dickem roten Stift 
geschrieben wird.

von Martin (Gast)


Lesenswert?

Hier kannst du auch schauen:

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment

Da sind auch einige Sachen geklärt.

von Marian (phiarc) Benutzerseite


Lesenswert?

Chris Sch schrieb:
> Karl Heinz Buchegger schrieb:
>>> erfolgreich angeschlossen... aber Reset finde ich nicht ...
>>
>> Dann gehst du eben nochmal den M328 Pin für Pin in der Pin-zeichnung
>> durch, bis dass du ihn hast.
>
> Mir ist schon klar wo welcher Pin ist, aber nicht was für Bauteile dran
> müssen. Woher weiß ich, dass man einen 22pF mit dem Quarz verbauen muss?
> Woher weiß ich, dass ich ca. 10 k ohm für den Reset Knopf brauche?
> (Wobei das logisch ist ;)).. Naja ich denke ihr wisst was ich meine...

Quarz: Schau die Lastkapazität im Datenblatt des Quarzes nach (meistens 
10 bis 32 pF oder sowas). Im AVR-Datenblatt steht im Abschnitt über die 
System clock, welche Lastkapazität der AVR darstellt (afair waren das 
meist <10 pF).
Du willst mit der Lastkapazität im mittleren Bereich des spezifizierten 
Bereichs landen, also packt man meistens 15…22 pF an den Quarz. Je nach 
Aufbau (Lochraster, Fädeldraht, was auch immer) kann auch schon die 
parasitäre Kapazität des Aufbaus genügen.

ALLE Versorgungspins von digital-ICs werden mit 100n keramisch (zur Not 
auch Folie, wird beides funktionieren) abgeblockt. Müsstest du 
eigentlich schon wissen ;)

AVRs mit ADC haben noch einen AVCC Pin. Wenn du den ADC wirklich präzise 
benutzen willst, sollte dieser durch ein LC-Tiefpass (10µh/100n passt 
meist, siehe auch Atmel Application Note AVR042) mit VCC verbunden 
werden.
AREF wird mit 100n normal abgeblockt, kann auch offen gelassen werden.

Reset kann man offen lassen oder mit 10K gegen Vcc beschalten. In stark 
EMV-belasteten Umgebungen kann man hier den RESET Pin auch noch mit 100n 
abblocken.

Je nach Versorgung schadet eine 10µH Drossel in der Gesamtzuleitung für 
Vcc auch nicht.

Vieles an der Standardbeschaltung ist meistens nicht notwendig bzw. 
funktioniert es auch ohne. Ob es 100 % verlässlich und stabil läuft ist 
dann eine andere Frage. Hier vielleicht auch der Einwurf, dass die 
Herstellerempfehlungen sich genau darauf beziehen: 100 % stabile 
Operation egal was der AVR macht.

Besonders häufige Wechsel in und aus den Sleep-Modi sind btw. eine der 
etwas anspruchsvolleren Sachen für die Versorgung. Da geht's dann 
meistens nicht mehr ohne Abblockkondensatoren.


Und nochmal den Hinweis auf AVR042, das ist praktisch allgemeingültig.
Das Datenblatt sind deine 10 Gebote und die Appnotes die ersten paar 
Bücher Mose. Oder so.

von Christian S. (vivus)


Angehängte Dateien:

Lesenswert?

Ich hab mal eine Schaltung gezeichnet.

Habe einen Taster zum einlesen, der dann eine LED anmachen soll. (Wie in 
der Anleitung s.o.)

Passt das bisher? Würdet ihr etwas hinzufügen/entfernen?


// Schaltung versehentlich 2x hochgeladen. Kann man das irgendwie 
löschen?

von Marian (phiarc) Benutzerseite


Lesenswert?


von Christian S. (vivus)


Lesenswert?

ISP habe ich extra nicht eingezeichnet, weil ich den Controller mit 
einem Arduino Uno R3 (s.o.) beschreiben will :) Allerdings wäre es 
vielleicht garnicht mal so verkehrt, das doch zutun. Schaden kanns wohl 
nicht.. :)

Passt denn der Rest?

von Karl H. (kbuchegg)


Lesenswert?

Chris Sch schrieb:

> Passt denn der Rest?

Was du noch nicht weißt:
Die 100n Kondensatoren müssen jeweils dicht an die Versorgungspins des 
µC ran. Genau deshalb ist zb der Pin 'Vcc' (Pinnummer 7) direkt neben 
einem GND Pin (Pinnummer 8) ... damit man da einen 100nF Kondensator 
direkt an den Pins hinpappen kann. Und aus genau dem gleichen Grund ist 
auf der anderen Seite vom µC der AVcc Pin direkt neben einem weiteren 
GND Pin ... ebenfalls damit man einen Kondenstor hinmachen kann. Deine 
Zusammenführung der beiden GND Pins da unten im Schaltplan ist zwar 
elektrisch ok, und wenn du das Layout machst und berücksichtigst, dass 
die 100nF dicht an den IC ran müssen, dann gibt es daran auch nichts 
auszusetzen. Aber wissen musst du es.

Was solls denn eigentlich werden? Eine eigene Platine oder ein Aufbau 
auf einem Steckbrett?

Die Sache ist die: So ein µC lebt und stirbt damit, dass man externe 
Hardware anschliesst. D.h. nach der Grundschaltung ist eines der 
wichtigsten Dinge, dass du an die Port-Anschlüsse rankommst, bzw. da ein 
bischen Experimentierhardware anschliessen kannst. Mit einer einzelnen 
LED und einem popeligen Taster alleine ist die Anzahl der Experimente 
.... überaschaubar :-)

An ARef würde ich noch einen 100nF nach GND anschliessen um die 
Referenzspannung des AD-Wandlers zu stabilisieren.

Was ich noch machen würde: Wenn das eine Platine wird: Eine Strom-da 
Anzeige in Form einer Led (+220 Ohm) von Vcc nach GND. Das gibt immer 
ein beruhigendes Gefühl, wenn auf der Platine erst mal eine LED 
leuchtet, die anzeigt, dass das Netzteil eingeschaltet ist.

Und ja. ISP würde ich auf jeden Fall vorsehen.
> weil ich den Controller mit einem Arduino Uno R3 (s.o.)
> beschreiben will :)
Aha. Und wie macht der Uno das? Telephatisch?
Oder meintest du, dass du den µC dauernd umsteckst?
Denn das wird dir ganz schnell ganz gehörig auf den Nerv gehen. 
Abegesehen davon, dass die IC-Beinchen da ihre ganz besondere Freude 
damit haben, wenn man sie mit dem Schraubendreher dauernd aus einem 
Sockel raus holt und in einen anderen reinpfriemelt. Und das viele 100 
mal. Denn eines kannst du dir abschminken: Das deine Programme auf 
Anhieb funktionieren.

von Marian (phiarc) Benutzerseite


Lesenswert?

Strom-da-LEDs gehen mir meistens tierisch auf den Sack, die meisten 
Programmier-Adapter signalisieren das auch, wenn man's wissen will. Beim 
AVR ISP Mark II leuchtet eine LED deutlich grün, wenn das Target Strom 
im zulässigen Bereich hat.

Bei Stromanschluss über Schraubklemmen schadet eine Verpolschutzdiode 
nicht.

von Christian S. (vivus)


Lesenswert?

Vielen Dank für deine ausführliche Hilfestellung  Karl Heinz! Ich werde 
deine Tipps auf jeden Fall berücksichtigen.

Zum Thema was es werden soll:

Ich will mit Hilfe eines Schiebereglers (74HC 595) am Pin des Atmegas 
ein Darlington Array (ULN 2003A) nutzen, um 8 Relais mit 5V zu schalten. 
Und dann mal weiterschaun... :)

von Marian (phiarc) Benutzerseite


Lesenswert?

Schieberegler heißen die Eingabegeräte auf Mischpulten, du meinst ein 
Schieberegister.
Die richtigen Teile hast du aber, eventuell noch nötige Hilfestellungen 
sind samt und sonders im hiesigen Wiki zu finden :)

von Christian S. (vivus)


Lesenswert?

Jep, wollte nur auf Karls Heins Frage antworten, was ich noch weiter mit 
vorhaben :) Werde bei Fragen aber hier im Thread schreiben :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.