Forum: Mikrocontroller und Digitale Elektronik ATmega 328P statt Arduino


von R. B. (dxx255)


Lesenswert?

Hallo
Ich habe ein kleines Projekt mit meinem Arduino Uno fertiggestellt und 
will dieses jetzt verkleinern und verlöten. Ich will statt dem Arduino 
Uno nur den ATmega verwenden, weil dieser kleiner und billiger ist. Nun 
meine Frage: Wie bringe ich mein Programm darauf zum Laufen? Ich weiß, 
dass ich zuerst den Bootloader installieren muss. Dies geht indem man 
den Uno als ISP konfiguriert. Aber wie lade ich dann das Programm drauf? 
Kann ich das auch über ISP machen? Oder brauche ich einen USB-to-Serial 
Konverter? Ich weiß schon das man den Uno auch als USB-to-Serial 
Konverter einsetzten kann, allerdings muss man dazu den Mikrokontroller 
des Arduinos entfernen und das geht bei mir nicht, weil ich die 
SMD-Variante besitze!
Bitte um Hilfe

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Roman Brock schrieb:
> Aber wie lade ich dann das Programm drauf? Kann ich das auch über ISP
> machen?

Ja, dann brauchst du auch keinen Bootloader.

von max.gast (Gast)


Lesenswert?

Hallo,
Du brauchst nur das hex File Deines Programms und spielst es mit einem 
Brenner, z.B. usbasp via ISP auf den M328. Evtl noch fuse fuer ext. 
Quarz setzen.Bootloader ist nicht notwendig.

von R. B. (dxx255)


Lesenswert?

Wie bekomme ich das Hex File? Geht das auch mit der Arduino IDE? Könnte 
mir das bitte jemand genauer erklären.
So gut kenne ich mich nämlich nicht aus.

von max.gast (Gast)


Lesenswert?

Hallo,
Naja, das sollte man selber schon wissen, so man seine SW so 
abgespeichert hat. Nach dem komplieren wird das hex file erzeugt, wo das 
in der Arduinoumgebung dann liegt, weiss ich leider nicht, da ich 
arduino nicht verwende.
Also einfach mal nach *.hex suchen.

von R. B. (dxx255)


Lesenswert?

Und wie bekomme ich das auf den chip? Gibts dazu vielleicht ein 
tutorial?

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


Lesenswert?

Warum so umständlich denken?
Du hast doch das Arduino Uno Board. Also steck den ATMega 328 in das Uno 
Board und brenn dein Programm drauf. Anschliessend steckst Du den ATMega 
auf dein selbst gestricktes Board.

von Sven (Gast)


Lesenswert?

damit?

http://samurai1967.dyndns.org/avr-adapter.html

ca 2339 Mio "Tutorien" wenn du nach "Isp Programmer" googelst oder so

von F. F. (foldi)


Lesenswert?

Albert M. schrieb:
> Warum so umständlich denken?
> Du hast doch das Arduino Uno Board. Also steck den ATMega 328 in das Uno
> Board und brenn dein Programm drauf. Anschliessend steckst Du den ATMega
> auf dein selbst gestricktes Board.

Mach mal vor! Und genau so wie du es hier geschrieben hast.

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


Lesenswert?

F. Fo schrieb:
> Albert M. schrieb:
>> Warum so umständlich denken?
>> Du hast doch das Arduino Uno Board. Also steck den ATMega 328 in das Uno
>> Board und brenn dein Programm drauf. Anschliessend steckst Du den ATMega
>> auf dein selbst gestricktes Board.
>
> Mach mal vor! Und genau so wie du es hier geschrieben hast.

Wo ist Dein Problem. Ich bin jetzt zwar nicht der grosse Arduino 
Spezilist, aber mit der Arduino IDE kannst Du auch auf einen leeren 
ATMega den Bootloader brennen. Anschliessend das Programm drauf. Was 
soll daran nicht gehen?

von Cyblord -. (cyblord)


Lesenswert?

Arduino-Nutzer sollten halt einfach bei Arduino bleiben. Außerhalb 
dieser Welt finden sie sich nicht zurecht, haben keine Ahnung was sie da 
eignentlich produziert haben (.hex Datei), keine Ahnung wie man was auf 
den Controller bringt (ISP) aber dafür schon richtig geile Sketches 
geschrieben und sogar schon ein "Projekt" gemacht.

Wenn man sich schon von Arduino komplett das Hirn ausschalten lässt, 
dann sollte man sich nicht wundern wenn man nix weiß.

von F. F. (foldi)


Angehängte Dateien:

Lesenswert?

Dein Hex file liegt in einem Temp Ordner.
Ungefähr wie hier:
C:\Users\ADMIN_~1\AppData\Local\Temp\build3983296894954563104.tmp\Morse. 
cpp.hex
Du musst in Arduino die "ausführliche Anzeige" in den Einstellungen 
anklicken.

von wendelsberg (Gast)


Lesenswert?

cyblord ---- schrieb:
> richtig geile Sketches

So geil wie die aus "Klimbim" oder "Nonstop Nonsens" oder "Sketchup" 
oder gar der Ottoshow?

Glaub ich nicht.

wendelsberg

von F. F. (foldi)


Lesenswert?

Albert M. schrieb:
> F. Fo schrieb:
>> Albert M. schrieb:
>>> Warum so umständlich denken?
>>> Du hast doch das Arduino Uno Board. Also steck den ATMega 328 in das Uno
>>> Board und brenn dein Programm drauf. Anschliessend steckst Du den ATMega
>>> auf dein selbst gestricktes Board.
>>
>> Mach mal vor! Und genau so wie du es hier geschrieben hast.
>
> Wo ist Dein Problem. Ich bin jetzt zwar nicht der grosse Arduino
> Spezilist, aber mit der Arduino IDE kannst Du auch auf einen leeren
> ATMega den Bootloader brennen. Anschliessend das Programm drauf. Was
> soll daran nicht gehen?

Genau, aber erst den Bootloader drauf ziehen.
Aber das klappt da auch nicht immer.

@cyblord

Hab dich schon vermisst. :-)
Übrigens, ich mache gleich meinen Tester für meinen neuen Benz (neuen 
alten Benz) in C und auf einen Tiny13.
Na, biste nicht wenigstens etwas stolz auf uns? Auf dich, weil du mich 
bekehrt hast und auf mich, weil ich das jetzt so mache.

von Cyblord -. (cyblord)


Lesenswert?

F. Fo schrieb:

> @cyblord
>
> Hab dich schon vermisst. :-)
Oha, das hört man hier nicht oft.

> Übrigens, ich mache gleich meinen Tester für meinen neuen Benz (neuen
> alten Benz) in C und auf einen Tiny13.
> Na, biste nicht wenigstens etwas stolz auf uns? Auf dich, weil du mich
> bekehrt hast und auf mich, weil ich das jetzt so mache.

Jede Seele die aus der Arduino-Unterwelt gerettet wird zählt. Sehr gut 
gemacht!
Der Post hier zeigt ja was aus dir geworden wäre, wenn du den Absprung 
nicht geschafft hättest.

gruß cyblord

von F. F. (foldi)


Lesenswert?

cyblord ---- schrieb:
> Jede Seele die aus der Arduino-Unterwelt gerettet wird zählt. Sehr gut
> gemacht!
> Der Post hier zeigt ja was aus dir geworden wäre, wenn du den Absprung
> nicht geschafft hättest.
>
> gruß cyblord

Jau! Auch da muss ich dir recht geben.
Aber trotzdem sind gestern hier noch zwei Nanos angekommen.
Probiere abends bis nachts noch mal ab und an was im Bett (mit Leds als 
Testobjekte) dafür ist das ganz praktisch.

Ganz im Ernst, wenn man dabei bleibt, dann ist es immer ein Fischen im 
Trüben und es wird niemals klar werden.
Ich kann gleich, leicht verändert, den Code für den Tester nehmen, den 
ich zuvor auf dem Arduino Board getestet hatte.
Das trifft noch so gerade für Tinys zu, aber ich kann es dann auch auf 
jeden x-beliebigen Controller mit C so machen. Für die Arduinofraktion 
ist dann schnell Schluss.

: Bearbeitet durch User
von Paul Baumann (Gast)


Lesenswert?

@Foldi & Cyblord

Habt ihr schon das Aufgebot bestellt? Wie sieht's mit Trauzeugen aus?
Besorgt Euch noch einen Satz Ringkerne für den Treueschwur....
;-)
MfG Paul

von OT (Gast)


Lesenswert?

[OFFTOPIC]
http://www.farnell.com/datasheets/1682209.pdf

In dem Abschnitt Programming :
On Rev1 boards: connecting the solder jumper on the back of the board 
(near the map of Italy) and then resetting the 8U2.
(Seite eins, die Bilder betrachten)
Also wenn die keinen Spaß bei der Arbeit haben :)
[OFFTOPIC]


Wenn der Beitragsersteller eine komplett andere Lösung vorziehen möchte, 
es gibt "relativ günstige" ATmega328 mit bereits aufgespieltem 
Bootloader.

https://guloshop.de/shop/Mikrocontroller/ATmega328-mit-Bootloader-fuer-Arduino-Uno::38.html?XTCsid=rsqcgbi4egct9ctut6hbs18u27

von cppler (Gast)


Lesenswert?

Du kannst Deinen Arduino auch als ISP "mißbrauchen":
http://tbspace.de/arduinoalsispprogrammer.html
Und in der IDE gibt's bestimmt irgendwo einen Punkt wo Du das .hex 
exportieren kannst.
Sinnvoller wäre allerdings einen MK-II oder usbasp clone zu holen und 
dann direkt in C zu programmieren, WinAVR brauchst Du zum proggen 
sowieso ...

von Cyblord -. (cyblord)


Lesenswert?

Paul Baumann schrieb:
> @Foldi & Cyblord
>
> Habt ihr schon das Aufgebot bestellt? Wie sieht's mit Trauzeugen aus?
> Besorgt Euch noch einen Satz Ringkerne für den Treueschwur....
> ;-)
> MfG Paul

Ich wollte grad schreiben "Du warst schonmal lustiger", aber dann ist 
mir aufgefallen dass das leider eine Lüge wäre.

von F. F. (foldi)


Lesenswert?

cyblord ---- schrieb:
> Ich wollte grad schreiben "Du warst schonmal lustiger", aber dann ist
> mir aufgefallen dass das leider eine Lüge wäre.

Hihihi!

von Vn N. (wefwef_s)


Lesenswert?

Albert M. schrieb:
> F. Fo schrieb:
>> Albert M. schrieb:
>>> Warum so umständlich denken?
>>> Du hast doch das Arduino Uno Board. Also steck den ATMega 328 in das Uno
>>> Board und brenn dein Programm drauf. Anschliessend steckst Du den ATMega
>>> auf dein selbst gestricktes Board.
>>
>> Mach mal vor! Und genau so wie du es hier geschrieben hast.
>
> Wo ist Dein Problem. Ich bin jetzt zwar nicht der grosse Arduino
> Spezilist, aber mit der Arduino IDE kannst Du auch auf einen leeren
> ATMega den Bootloader brennen. Anschliessend das Programm drauf. Was
> soll daran nicht gehen?

Roman Brock schrieb:
> weil ich die
> SMD-Variante besitze!

von R. B. (dxx255)


Lesenswert?

Habe ein sehr nettes Tutorial gefunden:
http://www.open-electronics.org/arduino-isp-in-system-programming-and-stand-alone-circuits/

Danke für eure Hilfe

von Cyblord -. (cyblord)


Lesenswert?

Roman Brock schrieb:
> Habe ein sehr nettes Tutorial gefunden:
> 
http://www.open-electronics.org/arduino-isp-in-system-programming-and-stand-alone-circuits/

Zum Glück, sonst hättest du tatsächlich das Datenblatt zur Hand nehmen 
und selber denken müssen. Grade nochmal gut gegangen.

von F. F. (foldi)


Lesenswert?

cyblord ---- schrieb:
> Zum Glück, sonst hättest du tatsächlich das Datenblatt zur Hand nehmen
> und selber denken müssen. Grade nochmal gut gegangen.

Das macht auch schon den Unterschied.

Dann will ich mal berichten:

Wollte mir einen Tester für das KE-Jetronik Steuergerät bauen. Nichts 
Spannendes, ist im Grunde nur eine LED.
Da die aber sofort Spannung hat und das Ausgehen der Led kaum zu sehen 
ist, wollte ich das mit einem Tiny13 machen.

Eigentlich brauchte ich nur einen externen Interrupt.

Bisher (ich lerne ja noch) habe ich alles mit nem ATmega328 (oder mit 
dem Uno) gemacht.

Noch bevor ich anfing, folg mir eine explodierende Led um die Ohren.
Von den fünf Spannungsversorgungen fürs Steckbrett waren wohl bei zweien 
die 5 Volt Regler defekt und so schnell konnte ich den Schalter nicht 
drücken.

Tiny 13 aufs Steckbrett, verkabelt und los - dachte ich.
Ein Blick ins Datenblatt zeigte schnell, dass es beim Tiny13 ganz 
anders programmiert werden muss.
Kurz rein gelesen und programmiert.
Hört nicht auf zu blinken. Also Verschiedenes ausprobiert und noch ein 
Blink in die Endlosschleife.
Debug geht auch, aber im Ablauf kommt der INTO immer wieder rein, ohne 
dass ich ihn ausgelöst hatte.
Code rauf und runter geändert. Ein cli(); am Ende der Schleife und klar 
ist, der Interrupt funktioniert im Wesentlichen.
Irgendwann, es war schon nach 01:00 Uhr nachts und ich hatte das 
Steckbrett weggelegt, da kam die Schleife und blieb. Kaum in die Hand 
genommen, ja nicht mal richtig berührt und schon war der Interrupt 
wieder da.
Also hab ich mich noch hin gesetzt und das auf Lochraster aufgebaut.
Der gleiche Scheiß, sogar noch schlimmer. Es war mittlerweile schon halb 
drei und das nur zu meiner Entschuldigung.
Ich hatte das Labornetzgerät zwar auf 9 Volt gestellt, aber der Strom 
war ganz runter.
Gerade hatte ich das bemerkt (wollte meinem Sohn das noch mal zeigen, 
weil ich mit ihm die Programmierung durchgegangen war) und Spannung und 
Strom rauf gedreht. Jetzt ist alles prima. :-)

Warum schreibe ich das?

Ich wollte diesen konkreten Fall dazu nutzen zu unterstreichen wie 
sinnvoll die Arduinos (oder auch andere LaunchPads wie das MSP430) sind.

Man muss ja nicht die Sprache nutzen, aber die Hardware ist sehr robust 
und da gibt es solche (hausgemachten) Phänomene nicht und man kann sich 
erstmal um das Lernen kümmern, ohne sich Gedanken über die Hardware 
machen zu müssen, ob es an der oder am Programm liegt.
Hätte ich diese Schwierigkeiten gleich am Anfang gehabt (auch noch ohne 
entsprechende Messgeräte), so hätte ich alles in die Ecke geworfen und 
würde nicht so viel Spaß an der Sache haben.

Andersrum hat cyblord natürlich recht, denn ich hätte keinen anderen 
Controller programmieren können, als Arduino das zulässt.
Auch würde ich nicht an diesen Fehlern wachsen können.

von M. K. (sylaina)


Lesenswert?

Naja, es gibt ja auch Entwicklungsboards für Atmegas (STK500 ist wohl 
das Bekannteste). Da muss man nicht unbedingt ein Steckbrett für nehmen. 
;)

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.