Flashen Eines AVR Chips HowTo ?

We proudly present: The release of DMXControl 3.3.3!


On September 29, 2026, we held our release show for DMXControl 3.3.3. During our usual “hour-long” session, we showed you all the new features in this version and what it now has to offer.
Read all about it in the corresponding news article: We proudly present: The release of DMXControl 3.3.3!


  • Hallo Forum,

    Ich habe vor mich weiterhin in DMXC Forum so gut mit einzubringen wie auch bisher. Da die Frage seit der Platinen Bestellung nach geflashten AVR's nicht mehr aufhört, möchte ich mich nun etwas mit diesem Thema zu befassen.

    Ich habe vor mir eine "Station" zum flashen zu bauen oder evtl. sogar zu kaufen.
    Das Problem was ich z.Z. habe ist jenes: das ich noch nie einen Chip geflasht habe und auch keinerlei Information wie dieses von statten geht.
    Ich möchte mir dieses Wissen nun also von Grund auf aneignen und brauche dazu eure Hilfe:
    Ich möchte das jeder der etwas Ahnung von dieser Materie hat (oder meint zu haben :tongue: ), mir mal in diesem Thread grundlegende Dinge erklärt;
    Wie z.B. was ist eine Boden Fuse bzw. Fuse?
    Welches Programm macht am meisten Sinn?

    Wie flasht ihr denn eure AVR's.
    Könnt Ihr Bilder eurer "Flashstationen" hochladen?

    Ich möchte so schnell wie möglich dazukommen, das ich gefalshte Chips an euch weiter geben kann um eine noch besseren Zusammen Arbeit zu gewährleisten

    Fragen kommen im laufen dieses Thread bestimmt von meiner Seite noch genug auf also nehmt es mir nicht übel ^^ :P


    Zusammenfassung:

    MfG

    Olaf

  • @ Stefan
    Welches Datenblatt ?

    Wie ich bereits sagte: Das Datenblatt des Mikrocontrollers.
    Wenn du den Atmega8515 programmieren willst, dann würde ich am besten auch dessen Datenblatt nehmen - andernfalls kanns schief gehen :)
    Auf Seite 180 und 181 sind die Fuses in einer Übersichtstabelle mit Beschreibung und Standardwert aufgeführt, im Datenblatt davor (um Seite 30-60 rum und im Bereich von Seite 170 nochmal) sind sie detailliert erklärt. Durchsuche einfach das Datenblatt nach "Fuse" dann findest du die Stellen schnell.

    Freundliche Grüße

    Stefan

  • Hallo,

    ich glaube, fürs Erste ist das Datenblatt ein wenig unübersichtlich, um generelle Kenntnisse über Fuse- und Lock-Bits zu bekommen.
    Ich selbst habe auch einige Zeit gebraucht, um wenigstens ein paar dieser zu verstehen - d.h. die FuseBits sind eigentlich Abkürzungen. z.B. SPIEN = ISP enable (sprich: braucht man den ISP im System, dann enable aktivieren)
    Hier kleiner Link, vielleicht wirst du auch bei anderen Beiträgen noch fündiger: Link
    (WDTON = Watchdog on; EESAVE = EEPRom Save = es wird verhindert, dass das eeprom versehentlich gelöscht wird; CKOPT = ClockOptional = Extern Clock enable? - weitere Einstellungen bei SUT_CKSEL; Bild von STK500 Progammer Fuse-Bits )


    2.Thema: "Massenflashen " und Station dazu
    Wenn du vorhast einige AVRs zu flashen, so würde ich dir empfehlen einen solchen Sockel zu nehmen: Link
    Hat einige Vorteile. z.B. schnelles Wechseln ohne Werkzeug und keine Beschädigungen am IC und Sockel zu hinterlassen.

    Ich selbst besitze ein STK500 (siehe Bild von Stefan). Eigentlich geniales Teil, denn wenn man sich ein AVR "verfused" so kann man zu 75% aller Fälle den AVR retten. Dabei lässt sich in 3 Modi's programmieren: ISP (bekannt), ISP High-Voltage und Parallel? High-Voltage. Wenn meist der ISP nicht mehr geht (habe ich schon 2x gehabt), so lässt sich meist mit der Parallelen High-Voltage Programmierung noch was erreichen.
    Leider hat des Teil solch billige Sockel - der Preis von ca. 65 - 80€ ist auch nicht schlecht...


    Als Software nehme ich für Hendriks Transceiver PonyProg her - für Alles andere AVR-Studio.
    Im STK500 Programmer im AVR-Studio kann man sogar alles Automatisiert ablaufen lassen - sprich: AVR löschen, flash schreiben, eeprom schreiben, fuse-bits setzen, lock-bits setzen - alles mit einem Klick.


    Soweit einmal meine Erfahrungen... :D


    Grüße,

    Black

    Ein Jeder muss mal klein anfangen ...
    ... denn es ist noch kein Genie vom Himmel gefallen :D

    Und meine Lampen haben Fieber, denn sie glühen immer wie irre, bevor sie Ihren großen Auftritt haben...

  • ich glaube, fürs Erste ist das Datenblatt ein wenig unübersichtlich, um generelle Kenntnisse über Fuse- und Lock-Bits zu bekommen.
    Ich selbst habe auch einige Zeit gebraucht, um wenigstens ein paar dieser zu verstehen - d.h. die FuseBits sind eigentlich Abkürzungen. z.B. SPIEN = ISP enable (sprich: braucht man den ISP im System, dann enable aktivieren)

    Naja, zwei Punkte dazu: 1. braucht man die Fuses nicht zu verstehen um sie richtig programmieren zu können (ist im Progammpaket und hier im Forum oft genug beschrieben, wie man sie programmieren muss), und 2. wird in externen Quellen auch nicht mehr drinstehen, als im Datenblatt selbst - eher andersherum. Woher wollen die externen Quellen ihre Informationen haben, wenn nicht aus dem Datenblatt?

    im AVR-Studio kann man sogar alles Automatisiert ablaufen lassen - sprich: AVR löschen, flash schreiben, eeprom schreiben, fuse-bits setzen, lock-bits setzen - alles mit einem Klick.

    Naja, aber auch nur fast - nachdem man davor ein paar mehr Mausklicks gemacht hat. Man kann wohl eine ELF-Datei erstellen lassen, wo die Fuses mit drin stehen - das befreit einen aber nicht davon, die HEX und die EEPROM-Datei auszuwählen. Irgendwie habe ich mir das komfortabler vorgestellt, oder mache ich da was falsch?

    Allerdings ist die Lösung fürs DE-Interface auch nicht ganz praktikabel, da man vor jedem Flashen den Quellcode neu kompilieren muss, da ja jedes Interface eine eigene Seriennummer bekommen soll. Mit einem Klick ist es dann auch nicht mehr getan.

    Ach nebenbei: Ich hab da die Konvention, einfach das aktuelle Datum und Uhrzeit als Seriennummer zu nehmen - die Wahrscheinlichkeit, dass da irgendwer zur exakt gleichen Zeit auch einen AVR flasht ist sehr gering, somit ist die Seriennummer eindeutig. Das heißt, am 19.03.2011 09:20:52 bekommt der AVR die Seriennummer 20110319092052

    Freundliche Grüße

    Stefan

  • @ lostinLife die Anleitung habe ich schon durch, ist mir selber sehr un-Hilfreich, da ich mich wie gesagt mit der Materie erst in nächster Zeit beschäftigen werde.

    Stefan, deine Idee mit der Datums und Uhrzeit Angabe hatte ich auch ich werde es ebenfalls so machen wenn ich mehrere flashen werde.

    Hat jemand mal einen Aktuellen Link von PonyProg welche Version sollte ich verwenden einfach die neuste, oder gibt es eine die stabiler läuft ?

  • Naja, aber auch nur fast - nachdem man davor ein paar mehr Mausklicks gemacht hat. Man kann wohl eine ELF-Datei erstellen lassen, wo die Fuses mit drin stehen - das befreit einen aber nicht davon, die HEX und die EEPROM-Datei auszuwählen. Irgendwie habe ich mir das komfortabler vorgestellt, oder mache ich da was falsch?


    Also, wenn du mehrere AVRs mit dem gleichen Inhalt flashen willst, ist diese Variante, denke ich, komfortabler. Braucht man nur den AVR wechseln und immer flashen drücken. Bei Ponyprog sind das schon mehr klicks, denn mann muss jedes Fenster einzeln öffnen (Flash-Speicher, EEProm-Speicher, Fuses)
    Beim DE-Interface wird es dann etwas schwieriger:
    Flashen drücken => wird geflasht => fertig => Fenster schließen => Seriennummer ändern => compilieren => Programmerfenster neu öffnen => flashen drücken => usw. ...

    Apropos:
    Für das DE-Interface hat es mal ein Programm gegeben, wo man lediglich seine gewünschte Seriennummer eintippen musste und das Programm hat dann entsprechend die Hex-File erstellt und sogleich PonyProg aufgerufen, den AVR geflasht (soweit ich mich entsinne, hat es automatisch PonyProg aufgerufen - oder man musste nur die erstellte Datei doppelklicken und alles ist von selbst abgelaufen - irgendwie so war das...) und natürlich auch die Fuse-Bits ensprechend gesetzt. Fertig.


    Ähm...:
    Ihr wisst schon, dass es die Möglichkeit gibt sich von Digital-Enlightenment offizielle Seriennummern zu holen?

    Quote from Firmware.txt aus Projektarchiv


    Um zu gew‰hrleisten, dass alle gebauten Interfaces miteinander kompatibel sind biete ich an, eine Liste zu f¸hren und freie Seriennummern zu vergeben. Um eine solche globale Serienummer zu erhalten bitte eine Mail an "info@digital-enlightenment.de" schicken.


    ... bin ich da der Einzige, der diesen Abschnitt gelesen hat und sich solche Seriennummern holt ?(


    Viele Grüße,

    Black

    Ein Jeder muss mal klein anfangen ...
    ... denn es ist noch kein Genie vom Himmel gefallen :D

    Und meine Lampen haben Fieber, denn sie glühen immer wie irre, bevor sie Ihren großen Auftritt haben...

  • Als Software auf Windows 7 64-bit nehm ich den AVR Burn-O-Mat her.
    Ich weis zwar nicht mehr genau, wie man den konfiguieren muss, damit der "parallel Programmer" oder wie der heißt funktioniert, aber irgendwo steht das schon ;)

    Als Programierboard hab ich das AVR-Evaluierungsboard vom Pollin.

    Gruß

  • Ist aber nur für XP versionen die hatte ich auch schon gefunden, geht die auch auf W7 oder was -?

    Ausprobieren :) Du willst sie einsetzen, dann solltest du sie ausprobieren, nicht ich ;)

    Bei Ponyprog sind das schon mehr klicks, denn mann muss jedes Fenster einzeln öffnen (Flash-Speicher, EEProm-Speicher, Fuses)
    Beim DE-Interface wird es dann etwas schwieriger:
    Flashen drücken => wird geflasht => fertig => Fenster schließen => Seriennummer ändern => compilieren => Programmerfenster neu öffnen => flashen drücken => usw. ...

    Okay, nun weiß ich, wieso ich PonyProg nicht einmal installiert hab... ;)
    Das Programmierfenster kannst du im AVR Studio offen lassen.

    Ihr wisst schon, dass es die Möglichkeit gibt sich von Digital-Enlightenment offizielle Seriennummern zu holen?

    Nein, ich habe mir da früher auch Seriennummern geholt, aber das war mir dann irgendwann zu viel Aufwand. Mit Datum & Uhrzeit sind die Interfaces ja auch eindeutig voneinander unterscheidbar (die Wahrscheinlichkeit, dass da zwei Interfaces dieselbe Seriennummer haben, ist schon sehr gering. Die Wahrscheinlichkeit, dass dann wirklich mal zwei solche Interfaces an einen Rechner gesteckt werden quasi nicht mehr vorhanden). So kann ich immer wenn ich will die AVRs flashen, muss nicht erst eine Seriennummer beantragen, dann auf Antwort warten, ... :) Die Seriennummer ist lang genug, dass da die komplette Zeit reinpasst, dann kann man das doch so machen :)

    Freundliche Grüße

    Stefan

  • Das Programmierfenster kannst du im AVR Studio offen lassen.

    Wie ich heute festgestellt habe, kann man im AVR Studio alle Schritte sogar automatisch durchführen lassen, wie man will - im Programmierfenster gibts dafür ein Auto-Tab, was ich bisher nicht groß beachtet habe.
    Also sind das noch weniger Schritte pro Durchlauf, die man machen muss:

    • Seriennummer im Quellcode eingeben
    • [F7] drücken
    • Controller tauschen
    • auf [Start] klicken


    Um den Rest kümmert sich das AVR Studio: Überprüfen, ob der passende Controller drinsitzt, diesen löschen, passend beschreiben, überprüfen und Fuse-Bits setzen. Effektiv warte ich nun mehr Zeit vor dem Gerät, als ich aktiv etwas tue :)

    Für den ersten Punkt habe ich nämlich auch noch eine kleine Hilfe: Ein AutoHotkey Script, welches mir die Seriennummer schreibt. Alte Seriennummer (komplett) löschen, und dann das Script (hier als HotString definiert) laufen lassen, schon hat man eine neue Seriennummer drinstehen - schneller geht es nicht. Ich füge sie in nem Kommentar auch noch als kompletten String ein, dann kann man sie bei Bedarf rauskopieren.
    Viel Spaß mit dem Skript:

    Freundliche Grüße

    Stefan

  • Souko April 9, 2018 at 7:27 PM

    Added the label DE Interface
  • Newly created posts will remain inaccessible for others until approved by a moderator. The last reply was more than 365 days ago, this thread is most likely obsolete. It is recommended to create a new thread instead.