ATmega 328P statt Arduino

#3343876
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
(Firma: Bastler aus Mönchengladbach) Persönliche Seite #3343976
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?
#3343977
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ß.
#3343987
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.
#3343995
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
#3344001
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.
Gast #3344008
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
#3344050
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!
#3346496
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren