Sketch per ISP auf Atmega128A

Hallo,

ich möchste gerne ein Arduino Sketch auf einen Atmega128A hochladen. Das Problem ist, dass der Mikrocontroller bereits auf einer Platine verlötet ist. Jedoch ist eine ISP Schnitstelle nach außen geführt.

So weit ich weiß, ist der Atmega komplett leer und jungfräulich.

Kann ich ein Arduino Uno als In System Programmer nutzen, und eben in der Arduino IDE als Programmer "Arduino as ISP" auswählen und das Sketch hochladen? Oder muss ich noch den Atmega128 als Board hinzufügen, sprich zb MegaCore mit aufnehmen.

Und habe ich das richtig verstanden, dass ich den Bootloader nicht brauche, wenn ich das Sketch direkt per ISP auf den Mikrocontroller lade?

Oder liege ich ganz falsch was mein Vorhaben betrifft?

Beste Grüße Sebastian :)

Mit dem Uno sollte das funktionieren.

Die IDE muss aber wissen, welchen Controller du flashen willst. Also das Board solltest du hinzufügen.

Und den Bootloader brauchst du nicht dazu.

ok, das hilft mir schon mal weiter :slight_smile:

wie schaut das denn aus mit den Fuses?
Muss ich da etwas machen (immerhin ist der Controller ja komplett neu), oder stellt sich da alles ein, wenn ich per ISP etwas hochlade?

sskora: wie schaut das denn aus mit den Fuses? Muss ich da etwas machen (immerhin ist der Controller ja komplett neu), oder stellt sich da alles ein, wenn ich per ISP etwas hochlade?

Wenn der Controller ganz neu ist, sind die Fuses im allgemeinen so gesetzt, dass der interne Oszillator mit 1 MHz aktiv ist. Falls das für dich so passt, brauchst du nichts zu tun. Wenn du aber z.B. einen externen Quarz verwenden willst (z.B. mit 8 oder 16 MHz), dann musst du Fuses entsprechend setzen.

Um Fuses zu setzen gibt es verschiedene Möglichkeiten. Durch das Hochladen eines Programmes per ISP werden die Fuses jedenfalls NICHT automatisch gesetzt, sondern eben nur das Programm ("der Sketch") hochgeladen.

Am einfachsten kannst du die Fuses setzen, wenn du einen Bootloader brennst. Dabei werden nämlich AUCH die Fuses gesetzt. Zuvor musst du natürlich z.B. die MegaCore "installieren" und die entsprechenden Einstellungen vorgnehmen (z.B. Prozessor und Taktrate). Wenn du dann danach ein Programm per ISP brennst, wird der Bootloader wieder gelöscht, die Fuses bleiben aber erhalten.

Eine andere Möglichkeit Fuses zu setzen geht über die Kommandozeile mit AVRDude.

Ich habe mich gerade in MegaCore “eingelesen” und habe es installiert, das geht soweit schon mal :slight_smile:
Das einzige Problem das ich gerade sehe ist, dass MegaCore für den (u.a.) Atmega128 ist, ich aber einen Atmega128A haben werde. Macht das einen unterschied, was MegaCore angeht? Was ich jetzt zumindest gelesen habe, ist der 128A eine verbesserte Version, bei dem zumindest die Pins identisch zum 128 sind…

edit: Ich sehe gerade bei bei MegaCore die Zeile “(All variants - A, L, V)”, denke das sollte es geklärt haben :slight_smile: