Atmega328P StandAlone?

Hallo Zusammen,

ich habe ein wenig darüber gelesen, dass man ja auch den Atmega328P allein laufen lassen kann.
Und da er ja auch einen eigenen Taktgeber hat braucht man nicht ein mal den Quartz.

Wie muss ich mir das vorstellen?

  1. Könnte man quasi den Ardunio Uno einfach komplett mit dem gewünschten Sketch beschreiben,
    testen, wenn alles ok ist, den Atmega vom Uno ziehen, auf ein Breadboard stecken, mit 5V und GND
    versorgen und entsprechend auf die I/O Pins anschließen und alles läuft?
    Oder muss noch zwingend andere Bauteile Kondensatoren, Widerstände etc. angechlossen werden?

  2. läuft er dann auch auf 16Mhz mit den internen Taktgeber?

  3. Muss man den internen Taktgeber irgendwie aktivieren?

  4. Kann man dann einfach einen neuen Atmega 328P auf den Uno stecken oder
    Muss man noch erst einen Bootloader installieren?

Danke
Gruß AingTii

Den internen Taktgeber muß man durch setzen der Fuses aktivieren, bzw. bei einem fabrikneuen Controller ist es die Standardeinstellung. Es gibt aber auch Dateien, die man nachträglich in die IDE einpflegen kann. Dann erscheint in der Arduino Auswahlliste auch der entsprechende Eintrag z.B. Atmega 328 stand alone 8 MHz intern.
Das 1x muß man den Eintrag Bootloader flashen in der IDE auswählen. Obwohl genau genommen kein Bootoader geflasht wird, sondern nur die Fuses gesetzt werden. Danach wählt man nur noch den stand Alone Eintrag an und compiliert seinen Sketch, den man dann aber nicht mehr per serieller Schnittstelle, sondern mit einem ISP Programmer, z.B. mit dem USBasp oder einen 2. Arduino übertragen muß.
Eine Minimalbeschaltung gibt es im Netz. Das wären ein RC-Glied für einen Reset beim Einschalten 10K gegen plus und 100n gegen Masse. Und 2 Abblockkondensatoren von 100nF und 47 µF so dicht wie möglich an den Versorgungspins des IC. Optional dann noch ein 2 reihiger 6 oder 10 pol. Header mit 2,54mm Pinanbstand als ISP-Schnittstelle, um den Controller umprogrammieren zu können. Und eventuell noch ein Spannungsregler, sofern der Controller nicht mit einer ihm zuträglichen Spannung extern versorgt wird. Aus einer LiPo Zelle passt die Spannung, ansonsten halt noch einen kleinen 5V Spannungsregler mit entsprechender Außenbeschaltung.
Hier ist das das "Nachrüsten" der IDE samt Linka auf die nötige Datei gut und bebildert erklärt (wenn auch in englisch, aber man kann bekanntlich nicht alles haben) :wink:

Ich kann nur bestätigen, dass ein 328P nahezu ohne zusätzliche Bauteile auf einem Steckbrett läuft. Natürlich sind einige Dinge zu beachten wie z.B. die Taktrate. Ein Chip vom UNO direkt kann NICHT ohne Quartz dann "extern" betrieben werden. Will man DAS erreichen, muss ein externer Chip auf 8 MHz "internen" Takt eingestellt werden. Hierzu müssen die Fuse-Bits entsprechend gesetzt werden. Ich weiß auf jeden Fall, dass es bei mir wunderbar funktioniert hat. Sehr hilfreich ist folgendes Original Tutorial dabei:

Nachsatz zu meinem letzten Beitrag: Das interessante dabei ist, dass ich außer dem UNO (R3) absolut keine anderweitige Hardware dazu benötigte. Alles lief perfekt in der Konfiguration Windows & UNO R3 & Arduino-IDE 1.0.6
Viel Erfolg

Sehr hilfreich ist folgendes Original Tutorial dabei:

https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard

Nein!
Das Tutorial hat einen derben Fehler!
Es fehlen die beiden Abblockkondensatoren.
Und der an Aref

Das kann funktionieren, aber wirkliche Stabilität erreicht man damit nicht.
Stunden an Frust kann es bewirken .....

Nicht nur, dass die Kondensatoren fehlen, auch die Verbindungen zum Quarz und den Kondensatoren am Quarz sind viel zu lang ausgeführt. Dadurch handelt man sich schnell Probleme ein. Nicht so, im angehängten Bild.

Atmega328.jpg

da die Frage scheinbar häufiger kommt: um einen ATMega328 (störungsfrei!!!) zu betreiben, braucht man mindestens 3 Kondensatoren und 1 Widerstand:

und das gilt auch nur wenn:
a) die Spannung extern bereits auf +5 V geregelt wird
b) der interne Takt des Controllers verwendet werden soll
c) der Controller fertig programmiert ist und nachträglich keine Änderungen gemacht werden sollen (sonst braucht man noch ein ISP Adapter wenn der Controller nicht austauschbar ist).
d) der AD-Wandler nicht verwendet werden soll

Die Abblock-Kondensatoren sollten übrigens so nahe wie möglich an den entsprechenden Pins des Controllers plaziert werden.

Dem stimme ich so nicht ganz zu. Ein Keramik-Kondensator an AREF nach GND ist erst nötig, wenn der Atmega den ADC nutzen soll. Wird dieser nicht gebraucht, kann auch der Kondensator getrost wegbleiben. Der Kondensator von Reset nach GND ist optional, und wird in den aller wenigsten Fällen benötigt.

Zumindest der Kondensator an RESET wird in den APP-Notes von ATMEL ausdrücklich aufgeführt. Ich finde jetzt auf die Schnelle nur die Schematic Checklist für die XMEGA (APP-Note AVR1012), allerdings gilt meines Wissens das Gleiche auch für die “normalen” MEGAS.

Beim AREF gebe ich Dir aber Recht. Das ist bei mir die Macht der Gewohnheit, ihn als selbstverständlich zu sehen.

PS: habe das Schema entsprechend angepasst

Hallo,

und schwupps haste durch nachträgliches ändern im Bild den Sinn vom Thread durcheinander gebracht. Besser wäre gewesen ein neues Bild in der neuen Antwort einzufügen, wenn überhaupt. Ich hätte nur geantwortet und das Bild einfach gelassen. Ist ja nicht falsch.

jein .. ich bin da selbst auch immer hin und hergerissen. Ich sehe aber im Internet immer wieder Schaltungen auftauchen, die nicht korrekt sind. Auch wenn im Diskussionsverlauf dann oft verbesserte Varianten auftauchen, so lesen viele Leute nicht bis zum Ende und kopieren dann falsche Dinge. Deshalb korrigiere ich meine Fehler immer im Original-Posting. Das mag den Diskussionsfluss etwas behindern, führt umgekehrt aber dazu, dass keiner eine falsche Schaltung weiter zitieren kann.

Meine Sicht auf die Dinge:
Die beiden Abblockkondensatoren an den Versorgungsleitungen sind ein MUSS.

Der Konni an Aref mag u.U. nicht notwendig sein.
Von den Kosten/Aufwand, geht der sowieso unter...
Also dran damit, und eine der Sorgen, von Morgen, ist im Vorfeld ausgehebelt.

Der Konni an Reset macht bei längeren Leitungen Sinn (ISP Stecker), und wenn man den Start etwas verzögern möchte, z.B. weil angeschlossene Geräte eine längere Anlaufzeit haben.

Der AREF Kondensator stabilisiert glaube ich nur die Referenzspannung, da die auch die interne Referenz oder die Betriebsspannung intern mit dem Pin verbunden wird. Selbst wenn man den ADC verwendest geht es evtl. auch ohne.

@Serenifly: das ist meines Wissens nach prinzipiell korrekt ... aber :slight_smile:

Bei Verwendung des ADC mit der internen Spannungsreferenz filtert der Kondensator Störimpulse aus. Zitat Datenblatt:

Internal reference voltages of nominally 1.1V or AVCC are provided On-chip. The voltage reference may be externally decoupled at the AREF pin by a capacitor for better noise performance

Außerdem sollte dann auch AVCC extra gefiltert werden. Deshalb hatte ich oben als Kondition angegeben, dass der ADC nicht verwendet wird, da sost noch etwas mehr Beschaltung hinzukommt, wenn man es wirklich wie empfohlen machen will (auch wenn den Aufwand nur die wenigsten bei Verwendung des ADC tatsächlich betreiben ). "Irgendwie" geht es aber natürlich auch ohne ... genauso wie es auch "irgendwie" ohne Abblock-Kondensatoren geht.

Hallo,

irgendwie geht mir die Diskussion um die Kondensatoren in die falsche Richtung. Lieber einen mehr als zu wenig dran. Fertig.

da kann ich 100% zustimmen :slight_smile:

mgcss:
jein .. ich bin da selbst auch immer hin und hergerissen. Ich sehe aber im Internet immer wieder Schaltungen auftauchen, die nicht korrekt sind. Auch wenn im Diskussionsverlauf dann oft verbesserte Varianten auftauchen, so lesen viele Leute nicht bis zum Ende und kopieren dann falsche Dinge. Deshalb korrigiere ich meine Fehler immer im Original-Posting. Das mag den Diskussionsfluss etwas behindern, führt umgekehrt aber dazu, dass keiner eine falsche Schaltung weiter zitieren kann.

Dann änder den Post so daß es nachvollziehbar ist was falsch war

falscher Teil [EDIT] das ist der berichtigte Teil[/EDIT]

So bleibt die Diskussion verständlich und ein User nimmt nicht den falschen Teil.

Grüße Uwe

@mgcss
Das ist was ich gemeint habe. Deutlich wird es wenn man sich mal das Blockschaltbild anschaut. Da sieht man dass die 1,1V und AVcc (was ja auch Referenz sein kann) über einen Multiplexer sowohl auf AREF als auch den eigentlichen ADC gehen.

Das ist auch der Grund weshalb man wenn eine externe Spannung an AREF anliegt unbedingt die Referenz in der Software auf Extern setzen muss bevor man analogRead() macht. Sonst hat man einen Kurzschluss zwischen AREF und AVcc.

/off topic

nix_mehr_frei:
Den internen Taktgeber muß man durch setzen der Fuses aktivieren, bzw. bei einem fabrikneuen Controller ist es die Standardeinstellung. Es gibt aber auch Dateien, die man nachträglich in die IDE einpflegen kann. Dann erscheint in der Arduino Auswahlliste auch der entsprechende Eintrag z.B. Atmega 328 stand alone 8 MHz intern.
Das 1x muß man den Eintrag Bootloader flashen in der IDE auswählen. Obwohl genau genommen kein Bootoader geflasht wird, sondern nur die Fuses gesetzt werden. Danach wählt man nur noch den stand Alone Eintrag an und compiliert seinen Sketch, den man dann aber nicht mehr per serieller Schnittstelle, sondern mit einem ISP Programmer, z.B. mit dem USBasp oder einen 2. Arduino übertragen muß.

Klarstellung: Zum Fuse setzten und Bootloader flaschen (bei leerem Atmega) braucht es einen ISP-Programmierer. Danach kann der Sketch entweder über seiell (mit einem USB-Seriel Adapter) oder mit einem ISP-Programmer geladen werden. All das kann mit der Arduino-IDE gemacht werden.

Grüße Uwe

AingTii:
4. Kann man dann einfach einen neuen Atmega 328P auf den Uno stecken oder
Muss man noch erst einen Bootloader installieren?

Den ATmega 328 gibt es mit und ohne Bootloader, wobei der Preisunterschied erstaunlich gering ist. Kommt drauf an, was Du vor hast.

Für meine ATtinys habe ich mir eine Platine mit Nullkraftsockel und Kabel mit Stiftleiste passend für den UNO als In System Programmer (ISP) gelötet, weil ich das doch ganz angenehm finde.