Hallo,
ich bin noch ein Neuling und versuche mich langsam in das Thema mit dem
Arduino Uno Board (Mikrocontroller ATmega 328) einzuarbeiten.
Jetzt möchte ich den Mikrocontroller ohne das Board verwenden, doch dazu
habe ich ein paar Fragen, auf die ich im Internet leider nicht die
richtigen Antworten gefunden habe:
1. Ich brauche in diesem Fall keinen zusätzlichen Oszillator, mir reicht
der interne Takt. Soll ich die Eingänge für den Oszillator nun gegen
Masse oder +5V schalten, oder sollte ich sie frei hängen lassen?
2. Auch den AD-Wandler und die Analogen Pins brauch ich nicht. Sollte
ich trotzdem eine Stromversorgung an die Pins AVCC / AREF und AGND
anschließen, sie frei lassen oder woanders anschließen?
Ich hoffe ihr könnt mir helfen, danke im Voraus.
Micha schrieb:> 1. Ich brauche in diesem Fall keinen zusätzlichen Oszillator, mir reicht> der interne Takt. Soll ich die Eingänge für den Oszillator nun gegen> Masse oder +5V schalten, oder sollte ich sie frei hängen lassen?
Frei lassen, nicht beschalten.
> 2. Auch den AD-Wandler und die Analogen Pins brauch ich nicht. Sollte> ich trotzdem eine Stromversorgung an die Pins AVCC / AREF und AGND> anschließen, sie frei lassen oder woanders anschließen?
AVBB und AGND auf jeden Fall anschliessen. Sonst passieren tolle Dinge.
Auch den 0.1uF Kondensator zwischen AVCC und GND nicht vergessen. Er
kann nicht schaden, nur helfen. AREF kann offen bleiben.
Micha schrieb:> Soll ich die Eingänge für den Oszillator nun gegen Masse oder +5V schalten
Das eine davon ist ein Ausgang - s. Datenblatt.
Bei solchen Anfängerfragen hilft oft ein Blick in bereits
veröffentlichte Schaltung. Und nicht nur in eine, weil nicht jede
veröffentlichte Beschaltung richtig ist. Hier im Forum werden in vielen
Threads die Schaltunge diskutiert, so das sich Fehler schnell
rauskristallisieren.
Hi
>Das eine davon ist ein Ausgang - s. Datenblatt.
Wenn der interne Oszillator aktiv ist, sind die XTAL-Pins ganz normale
Port-Pins (PB6 und PB7).
MfG Spess
Du solltest mal auf der Atmel Seite unter dem Controller schauen, den du
verwenden willst. Dort findest du jede Menge PDF's und unter anderem
auch die Apnote (weiß gerade nicht welche das ist), in der das Hardware
Design beschrieben ist. Es stehen dort auch sehr deutliche
Erläuterungen, sodass du dann auch den technischen Hintergrund viel
besser verstehst.
Micha schrieb:> 1. Ich brauche in diesem Fall keinen zusätzlichen Oszillator, mir reicht> der interne Takt. Soll ich die Eingänge für den Oszillator nun gegen> Masse oder +5V schalten, oder sollte ich sie frei hängen lassen?
Zweite Grundregel der CMOS-Technik: keine offenen Eingänge!
Unbenutzte Portpins entweder auf Eingang mit internem Pullup oder auf
Ausgang und Low-Pegel schalten.
Die Pins für den Quarz sind bei Verwendung des internen RC-Oszillators
auch normale Portpins.
> 2. Auch den AD-Wandler und die Analogen Pins brauch ich nicht. Sollte> ich trotzdem eine Stromversorgung an die Pins AVCC / AREF und AGND> anschließen, sie frei lassen oder woanders anschließen?
Siehe oben: AVCC und AGND werden immer gebraucht, zB zur Versorgung der
Treiber mit analogen Zweitfunktionen.
Und dann noch die erste Grundregel der CMOS-Technik: Zwischen jedes
VCC-GND-Pärchen gehört ein 100n Abblockkondensator, wobei die Länge der
Zuleitungen zu minimieren ist. Auch AVCC-AGND gehören dazu.
fchk
Wichtig ist vor allen, dass du dir das Datenblatt zum jeweiligen
Controller dazu nimmst. Da werden eigentlich alle deine Fragen
beantwortet. Dann die AVR042 und fürs Programmieren solltest du dir
auch noch mal die AppNote AVR4027 anschauen.
Das kann nicht schaden.
Hallo Micha,
da es bisher nicht konkret angesprochen wurde:
Um die Taktquelle des 328 zu ändern musst du die fuse-bits umschreiben,
da der µC sonst außerhalb des Arduino-Boards einen 16MHz-Quarz an den
dafür vorgesehenen Eingängen erwartet und ohne diesen nicht anläuft.
Die fuse-bits wirst du allerdings nicht mit der Arduino-IDE
umprogrammieren können, dafür brauchst du ein Programmiergerät für
Atmel-AVR (z.B. einen originalen AVRISP MKII) und die passende Software
(z.B. AVRDude - kostenlos).
Ich bin außerdem noch auf einen (allerdings englischen) Thread gestoßen,
in dem von weiteren Fallstricken berichtet wird:
http://forum.arduino.cc/index.php?topic=24474.msg185950#msg185950
Du wirst auch die boards.txt-Datei der Arduino-Entwicklungsumgebung
anpassen müssen (und wenn du einen fabrikneuen Uno anschließen willst
wieder zurückändern müssen), um den neuen Takt des Prozessors anzugeben.
Hinweis schrieb:> Du wirst auch die boards.txt-Datei der Arduino-Entwicklungsumgebung> anpassen müssen (und wenn du einen fabrikneuen Uno anschließen willst> wieder zurückändern müssen), um den neuen Takt des Prozessors anzugeben.
(Natürlich nur, wenn du den 328 weiterhin im Uno über USB programmieren
willst. Natürlich kannst du das dann auch mit dem Programmiergerät über
die ISP-Pins des Uno-Boards.)
Lothar M. schrieb:> Arduino F. schrieb:>> Falsch!> Dieser Post hätte hilfreich sein können, wenn du gezeigt hättest, wie es> "Richtig" gemacht werden könnte...
Nunja...
Wenn du möchtest...
Frage:
Wie brenne ich die Fuses in/mit der Arduino IDE?
Antwort:
1. ich wähle das gewünschte Board aus
2. ich suche den Knopf "Bootloader brennen"
3. ich drücke auf den Knopf "Bootloader brennen"
Und dabei ist es völlig egal, ob die Boarddefinition einen Bootloader
vorsieht. Die Fuses werden geschrieben.
Besser so?
Und wie der Vorposter schon richtig sagte:
Dazu ist ein ISP Adapter von Nöten.
Micha schrieb:> Vielen Dank für eure Antworten, das hat mir geholfen!
Also inzwischen kann er es oder er lässt es.
Sein letzter Post ist vom 05.04.2014.
Wie auch immer. Man muss nicht mehr nach fast drei Jahren auf solche
Anfängerfragen antworten, zumal er sich anschließend bedankte, mit den
Worten, dass ihm das geholfen hätte.