Forum: Mikrocontroller und Digitale Elektronik AVR ATMega Ersatz im Arduino Uno


von Frank R. (davinci1999)


Lesenswert?

Hallo,

ich brauche eine Kaufberatung. Ich habe mir vor einiger Zeit das Arduino 
Uno Board gekauft und mir eine Versuchsschaltung für ein Photometer 
gebaut. Die möchte ich jetzt gern auf einer Platine selbst nachlöten, 
damit ich diese Schaltung unabhängig verwenden kann. Beim Versuch mir 
passende Controller bei z. B. Conrad zu bestellen bin ich etwas verwirrt 
über die Vielzahl der Typen, Bauformen. Ich suche einen gleichen 
Microcontroller, wie der der verbaut ist 
(http://www.watterott.com/de/Arduino-Uno) oder besser einen baugleichen 
mit weniger Speicher (8K RAM sollten reichen). Meine Idee ist nämlich, 
die Programmierung über das Arduino Board vorzunehmen und den Chip dann 
einfach auf meine Platine zu löten. Könnt ihr mir einen Link geben auf 
einen mC, mit dem ich diese Idee umsetzen kann? Ich bin mir bei der 
Vielzahl der abweichenden Bezeichnungen nicht sicher, was ich temporär 
in mein Board stecken kann ohne das mC Programm zu ändern. Ist das z. B. 
der im Uno verwendete Controller?
http://www.conrad.de/ce/de/product/155197/MICROCONTR-ATMEGA328P-PU-8BIT-PDIP-28/SHOP_AREA_29142&promotionareaSearchDetail=005

Vielen Dank für eure Hilfe!

Frank

von Michael U. (Gast)


Lesenswert?

Ist zwar ein anderer Anbieter aber der richtige Controller.

https://www.it-wns.de/themes/kategorie/detail.php?artikelid=539&source=2

Gruß
Michael

von Frank R. (davinci1999)


Lesenswert?

Hallo Michael,

vielen Dank für die schnelle Antwort! Also ist der von mir verlinkte von 
Conrad auch ok. Dein Angebot ist deutlich günstiger, aber ich habe mir 
bei Conrad gerade eine Grundausstattung an Bauteilen zusammengestellt, 
weswegen ich die mC nicht woanders bestellen möchte. Also könnte ich den 
von mir verlinkten Controller verwenden? (Auch wenn er für meine erste 
Schaltung sicherlich etwas "oversized" ist)?

Grüße

Frank

von Thomas E. (thomase)


Lesenswert?

Frank R. schrieb:
> Ich suche einen gleichen Microcontroller, wie der der verbaut ist

Das ist der Atmega 328p.

Frank R. schrieb:
> http://www.conrad.de/ce/de/product/155197/MICROCON...

Genau der. Aber kaufen solltest du den woanders. Es sei denn, du druckst 
dein Geld selber.

Du kannst für die Anwendung auch einen anderen Controller aus der 
gleichen Baureihe verwenden. Dabei handelt es um die Atmega 
48/88/168/328.
Diese 4 Conroller sind sozusagen Geschwister. Andere AVRs z.B. der 
Atmega8 ist ein Cousin von denen.

Je nach Verwandschaftsgrad müssen beim Code mehr oder weniger 
umfangreiche Änderungen vorgenommen werden. Innerhalb der Geschwister 
sind es meistens gar keine.

Was aber in JEDEM FALLE gemacht werden muß, ist, den Code mit den 
Einstellungen für den richtigen Controller zu compilieren.

Wenn du die für den 328er erzeugten Binärdaten auf den 168er flashst, 
kann das noch gut gehen, sofern er denn reinpasst. Beim 48er oder 88er 
wird es nicht funktionieren.

Dein nächstes Problem ist allerdings, daß der auf dem Arduino 
eingesetzte Controller mit einem darauf installierten Bootloader 
geflasht wird. Das bedeutet, daß du einen fabrikneuen Controller, egal 
welchen, mit den normalen Arduino-Bordmitteln nicht benutzen kannst. Du 
musst vorher den Bootloader auf den neuen Controller flashen. Und da 
passt der vorhandene Arduino Bootloader NUR für den 328. Für die anderen 
3 aus der Reihe brauchst du einen angepassten Bootloader.
Einer der wenigen gravierenden Unterschiede zwischen den "Geschwistern".

Also das Arduino-Board alleine reicht dir nicht. Du brauchst zwingend 
einen ISP-Prorammer, z.B. AVRISPmkII. Oder du bastelst dir so einen 
Programmer mit dem Arduino-Board. Anleitungen gibt es dafür.

Damit kannst du dann den vorhandenen Bootloader auf einen neuen 328er 
flashen. Auf die anderen 3 geht das nicht, da dieser nur als Hex-File 
verfügbar ist und du den Quelltext bräuchtest, um diesen auf die anderen 
3, genau genommen 2 (88/168) anzupassen und neu zu compilieren.

Man könnte auch sagen, daß du mit deinem Vorhaben die Grenzen der 
Arduino-Welt erreicht bzw. überschritten hast.

mfg.

von Mike (Gast)


Lesenswert?

> Du brauchst zwingend einen ISP-Prorammer...

So ein Quatsch!

Er kann sehr wohl ohne einen zusätzlichen Brenner seinen Bootloader 
flashen.
http://www.geocities.co.jp/arduino_diecimila/bootloader/index_en.html


> Man könnte auch sagen, daß du mit deinem Vorhaben die Grenzen der
> Arduino-Welt erreicht bzw. überschritten hast.


@Thomas Eckmann

Ich denke Du hast noch keine komplexen Projekte mit Arduino gemacht.

Mal nen Tipp an Dich http://www.youtube.com/watch?v=vNc6mIwH9lI&NR=1

von Thomas E. (thomase)


Lesenswert?

Mike schrieb:
> So ein Quatsch!

Thomas Eckmann schrieb:
> Oder du bastelst dir so einen
> Programmer mit dem Arduino-Board. Anleitungen gibt es dafür.

Erst lesen, dann schreiben.

mfg.

Mike schrieb:
> Ich denke Du hast noch keine komplexen Projekte mit Arduino gemacht.

Natürlich nicht.

Um die Komplexität geht es hier aber nicht.

Mike schrieb:
> Mal nen Tipp an Dich http://www.youtube.com/watch?v=vNc6mIwH9lI&NR=1

Nun werd' mal nicht unverschämt.

mfg.

von Michael K. (Gast)


Lesenswert?

Mike schrieb:

> Ich denke Du hast noch keine komplexen Projekte mit Arduino gemacht.
>
> Mal nen Tipp an Dich http://www.youtube.com/watch?v=vNc6mIwH9lI&NR=1

Das ist aber toll. Inwieweit ist das ein komplexes Projekt mit dem 
Arduino? Hat der das Video gerendert? Oder die Sprachsynthese gemacht? 
Oder willst Du einfach nur provozieren?

von Frank R. (davinci1999)


Lesenswert?

Hallo,

danke für die Hinweise, das Thema Bootloader hatte ich übersehen. Ich 
glaube, ich fange doch erstmal an mir einen ISP zu basteln. (Das mit dem 
Photometer ist eh nur ein Lernprojekt, wenn auch ein nützliches, da ich 
damit meine Wasserwerte im Aquarium kontrollieren könnte).

Vielleicht lösche ich meinen Einkaufskorb bei Conrad nochmal und nehme 
einen anderen Laden. Manche Dinge sind dort recht teuer. Bei einer Diode 
von einem Cent ist das egal, aber bei den Controllern merkt man den 
Unterschied doch.

Grüße

Frank

von Oliver (Gast)


Lesenswert?

Hallo Frank,

ich verwende einen Arduino Duemilanove als ISP mit dem 
ArduinoISP-Sketch. Zur Programmierung verwende ich avrdude. Das 
funktioniert einwandfrei, wenn man verhindert, dass der Arduino beim 
Start von avrdude einen Reset ausführt. Dazu verbinde ich die 
Reset-Leitung des Arduino mit einem 120 Ohm Pullup-Widerstand gegen VCC.

Genaueres hier:
http://www.arduino.cc/playground/Main/DisablingAutoResetOnSerialConnection

Damit kann man dann Bootloader oder auch eigene Anwendungen ohne 
Bootloader auf einen anderen ATmega (oder ATtiny) flashen. Das kann auch 
ein Hexfile sein, das durch die Arduino-IDE (bzw. den dort integrierten 
avr-gcc) erstellt wurde. Du kannst so den Platz für einen Bootloader 
sparen und einen kleineren ATmega verwenden.

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.