Flashen Atmega 8515

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 ;)
    Ich habe nochmal eine Frage zum flashen des Atmegas fürs DMX Interface.
    In dem Firmware Ordner im Projeketarchiv sind mehrere Versionen in wohl verschiedenen FOrmaten. Leider sasgt mir das alles nichts und ich frage mich welche ich auf das Interface flashen soll, denn bei mir trat folgendes Problem auf.
    ICh habe mit HIlfe des Code Generator von Markus Cords die Firmware kompiliert und geflasht.Hat alles geklappt. Als Programmieradapter nutze ich den Serielle Adapter von Hendrik Hoelscher. Als Software benutze ich Pony Prog.
    Dann ist meine Frage: Welche EEPROM DAtei muss ich dann übertragen oder nuss ich das überhaupt?

    Das größte Prpblem aber ist, dass ,nachdem ich mittels Pony Prog die Fuse Bits ausgelesen habe, der Atmega nicht mehr erkannt wird. Fehler: Device Missing or unknown Device.
    D.h. Ich kam gar nicht erst zu dem Schritt die Fuses zu verändern.

    Habt ihr eine Idee was ich falsch mache unud wisst ihr welche Dateien ich überhaupt in welcher Reihenfolge flashen muss ??
    Vielen Dank schocnmal im Vorraus!

    Sven

  • Tach,

    vergiss' die Firmware, die kannst Du ignorieren. Der Code-Generator erzeugt nach Eingabe der gewünschten Seriennummer eine Datei mit der Endung .hex, die man mit PonyProg öffnet. Normalerweise ist bereits der richtige Controller eingestellt (AVR micro, ATmega 8515). Zum beschreiben gehst Du auf "Command" und "Write all".

    Versuch' mal, die Fusebits auszulesen. Wenn das beim fabrikneuen(!) Atmega schon nicht funktioniert, ist irgendwas faul mit dem Adapter.

    ....T-Offline sei dank....

  • Danke erstmal für die schnelle Antwort.

    Okay also brauch ich den EEPROM gar nicht gesondert flashen.
    ISt es möglich das am Programmieradapter was kaputt ist wenn er das beschreiben des Flash SPeichers problemlos macht?
    Und ja die Atmegas waren fabrikneu. Hat wie gesagt alles super geklappt bis ich auf ReadFuseBits gegangen bin.
    Seitdem erkennt er den Atmega nicht mehr.

  • Wenn "Write All" gewählt wurde, wird beides gemacht - das ist der Sinn dahinter. ;)

    Den Schreibvorgang erkennts Du an der Fortschrittsanzeige (mit dem Ladebalken), wenn der noch nichtmal kommt, wurde nichts geschrieben - das kann verschiedenste Ursachen haben, weil es nicht sein kann, dass der ATmega beim schreiben erkannt wird und danach nicht mehr die FBs auszulesen sind. Falls doch, wird es wohl ein Wackelkontakt, instabile Versorgung oder was-weiß-ich sein.

    ....T-Offline sei dank....

  • Doch, das ist ja das merkwürdige.
    Der hat alles einwandfrei gemacht. Ich habe den Atmega auf die FIrmware hin sogar nochmal ausgelesen.
    Hat er alles ohne Probleme gemacht.
    Erst als ich auf Read Fuses gegen bin hat er sie einmal ausgelesen und dann war er tot. ALso ab dann kam die Meldung Missing Device.

  • Bist Du sicher, dass die Fusebits nicht geändert und geschrieben worden sind? Weil das wäre so der Standardfehler, gerade wenn man bei PP alle Haken für CKSEL macht und der Adapter keinen Quarzoszillator hat.
    Der beschriebene Fehler geht eigentlich garnicht, ist das reproduzierbar?

    Du kannst den ATmega bei erfolgreichem Schreiben trotzdem ins Interface einsetzen - das IF muss vom PC erkannt werden! Der Loopback-Test (Test.exe, Modus Nr. 6, Scan) muss bei verbundenen DMX-In und -Out-Buchsen funktionieren. Nur wird die Kommunikation mit DMX-Geräten nicht gehen, weil die Taktung des Controllers falsch bzw. unterschiedlich ggü. den DMX-Geräten ist.

    Achja, da oben habe ich Blödsinn geschrieben: Das EEPROM wird trotzdem beschrieben, dazu öffnest Du die Datei mit der Endung .eep. Darin stecken die Werkseinstellungen für die Timingparameter usw. Später kann man das EEPROM über die Test.exe via USB beschreiben und die Parameter ändern.

    ....T-Offline sei dank....

  • Ich hatte den Fehler bei 2 Atmegas hintereinander...

    Und zum EEprom kurz die Frage. Beim CodeGenerator ist keine *.eep Datei dabei.
    UNd ich Projektarchiv sind verschiedene jeweils in den Ordnern generic Motorola S-Format usw.
    Und ich weiß einfach nicht welche ich von denen nehmen soll.

  • Dazu schweigt sich die Anleitung aus, und ich muss leider zugeben: Ich habe keine Ahnung. Sehr wahrscheinlich ist es das aus dem Generic-Ordner, jedenfalls sieht das plausibel aus und sollte gehen - ausprobieren.
    Dass der Codegenerator keine .eep erzeugt ist kein Problem, da die Konfiguration unabhängig von der Seriennummer ist. Man kann das EEPROM auch komplett unbeschrieben lassen, man muss dann aber später über die Test.exe die Timings nochmal manuell einstellen und mittels "Store" im Controller speichern.

    Deine Fehlerbeschreibung ist mir zu dürftig - lassen sich die Atmegas jetzt garnicht mehr ansprechen (auslesen von Flash- und EEPROM)?

    ....T-Offline sei dank....

  • ja lassen sich im Programmer gar nicht mehr ansprechen.
    Allerdings hast du mich vorhin auf die Idee gebracht sie im Interface zu testen.
    Da funktioniert soweit alles.
    Wird einwandfrei erkannt. Da ich zu Hause keine DMX Kabel habe bin ich gerade dabei zu versuchen mir die Kabel für einen LOOP Test zu machen.

  • Also wenn das Gerät vom PC fehlerfrei erkannt wird und:
    -Über die Test.exe (dieses grüne Ding mit gelbem Blitz in dem Projektordner) erkannt wird (man sieht die Seriennummer)
    -und angesprochen werden kann ("Open Link", dann einen Modi wählen, außer bei "0: Standby" MUSS die DMX-LED leuchten, weil dann der DC/DC-Wandler eingeschaltet wurde und somit der Datenaustausch erfolgen kann)
    ist das schon viel wert.

    Bitte etwas präzisieren, was jetzt genau funktioniert und was nicht.

    So wie ich das bisher sehe, hat die Programmierung funktioniert, wenn das o.g. geklappt hat. Dann ist irgendwas mit dem Adapter nicht in Ordnung, die Fusebits müssen auf jeden Fall geändert werden, sonst wirds nix mit DMX. Welcher ISP-Adapter wird denn benutzt?

    ....T-Offline sei dank....

  • wie oben schon beschrieben der von Hendrik Hoelscher, der serielle Programmieradapter
    Und wonach ich mich Frage ist der Zustand der FUSE BITS, weil nach dem Auslesen der Fuse BITS mit Pony Prog wird der AVR nicht mehr im Programmieradapter erkannt.
    Im interface funktioniert er jedoch soweit wird auch erkannt und auch die LEDs leuchten entsprechend. NUr ich habe keine Ahnung wie ich an die Fuse BIts kommen soll. Denn ob das Interface wirklich im DMX TIming sendet kann ich nur ausprobieren wenn ich DMX Geräte dranhänge oder ?
    Falls ja ist das Problem hier hab ich keine. Dann komm ich erst Montag wieder dran.

  • Ich garantiere Dir sogar, dass der DMX-Empfang nicht arbeiten wird, denn: Die Fusebits sind bei einem fabrikneuen ATmega auf einen internen 1MHz-Taktgeber eingestellt. Das ist viel zu langsam und außerdem ungenauer als z.B. ein Quarz oder Oszillator. Die Anmeldung am PC klappt trotzdem, aber vom Takt hängt der Datenverkehr für DMX-Signale ab.

    Ich meinte nicht den Adapter von RS232 auf ISP, das war schon klar, sondern den Adapter ISP zu ATmega. Also wo steckst Du den ATmega zum flashen rein? Die Anleitung von Hölscher bezieht sich auf seine Bauten und diese haben eine ISP-Schnittstelle, das DE-IF aber nicht.

    ....T-Offline sei dank....

  • Achso. Damit das funktioniert habe ich auf die Platine einen Programmiersockel gelötet. Habe dann in dem Datenblatt des Atmega nachgeschaut und habe dann dementsprechend die Ausgänge von Hennes Adapter an den entsprechenden Pin des Sockels gelötet.

    EDIT: Und VCC habe ich noch dazwischen geklemmt über ein aufgeschnittenes USB Kabel.

  • Nein. Auf ner Lochraster-Platine, wo ich ich Hennes Schaltpläne umgesetzt habe.

    Könnte es sein, dass die Fuses irgendwie verstellt worden sind also irgendwie auf externen Taktgeber eingestellt sind und deswegen in der Programmierkonstruktioin nicht mehr erkannt werden ?

  • Lass' Dir doch nicht alles aus der Nase ziehen...........was nach welchem Schaltplan (Link dazu)?

    Man kann die Fuses nicht unabsichtlich verstellen oder Du verschweigst das - klingt für mich bisher aber danach, weil: Schreibt man die Fuses auf externen Taktgeber (CKSEL0 bis 3 haben alle Haken bekommen, Achtung: NUR unter PonyProg!!) um, dann geht das und wird gemacht, danach kommt aber die Fehlermeldung -24 missing device, wenn auf der Programmierplatine KEIN externer Taktgeber an XTAL1 (Pin 19) angeschlossen ist, sondern ein Quarz oder garnichts. Der Controller kann nicht mehr erkannt werden, weil der Takt fehlt. Die Fusebits sind trotzdem korrekt geschrieben worden und für externen Taktgeber wäre das ein Traum, weil im DE-IF ein externer Taktgeber selbigen vorgibt - er kommt vom USB-Controller. Der Quarz auf der Platine ist nämlich nicht für den ATmega vorgesehen (s. Schaltbild), sondern für den USB-Controller.

    Das ist der Standardfehler, nämlich a) die Haken-Geschichte bei PonyProg und b) dass fast jede Programmierplatine den blöden Quarz anstelle eines Oszillators haben, das würde dieses elende Anfängerproblem nämlich zur Bedeutungslosigkeit verdammen.

    ....T-Offline sei dank....

  • ENTSCHULDIGUNG.
    Ich dachte du wüsstest welchen Schaltplan ich meine.
    Schaltplan ist exakt nach Hendrik Hoelschers Seriellem Adapter.
    http://www.hoelscher-hi.de/hendrik/light/ressources/an011.pdf
    Seite 2 Serieller Adapter.
    Nur habe ich dann dementsprechend die im rechten Kasten genannten Anschlüsse mit dem Programmiersockel verbunden.
    Jeweils an den PIN der in der Manual des Atmega steht.
    War das deine Frage? Entdschuldigung wenn ich nicht präzise antworte. Ich hab mich mit dem Thema Mikrocontroller usw. bisher recht wenig beschäftigt.

    Und zum Flashen.
    Es hat alles einwandfrei geklappt bis ich auf Read Fuses geklickt habe. Dann habe ich die Häkchen anders gesetzt und sobal ich auf Write Fuses klicken wollte kam die Meldung Missing Device.

  • Quote

    Es hat alles einwandfrei geklappt bis ich auf Read Fuses geklickt habe. Dann habe ich die Häkchen anders gesetzt und sobal ich auf Write Fuses klicken wollte kam die Meldung Missing Device.


    Aja, soviel zum Thema "Ich habe nichts gemacht" :P
    Dann ist ja alles in Ordnung, wenn Du die Haken so gesetzt hast, wie vorgesehen wurden die Fusebits geschrieben. Wenn nicht: Pech gehabt, Lösung kommt gleich.

    Der ISP-Adapter ist mir schon klar, das PDF habe ich längst durch. Es reicht aber nicht aus, einfach Masse, MISO, MOSI, SCK, Reset und die Betriebsspannung an den Atmega zu hängen. Das heißt, es reicht eigentlich schon, das ist die absolute Minimalbeschaltung, die aber unsauber ist. Man sollte für eine sichere Funktion nämlich Stützkondensatoren sowie Pullup-Widerstand für den Reset-Anschluss vorsehen.
    Das Wichtigste ist aber ein Taktgeber, der fehlt in Deiner Beschaltung völlig! Dass man trotzdem ein Programm aufspielen konnte, lag an dem voreingestellten internen Taktgeber des ATmegas, der den Takt diktiert. Sobald man aber irgendwas an der Konfiguration der Taktquelle über die Fusebits (CKSEL0 bis 3) ändert, ist Essig mit der Kommunikation.

    ....T-Offline sei dank....

  • Achso...
    Weil da kommt ja immer so ein Balken wenn man die Sachen schreibt. Und der Balken kam direkt nachdem ich auf Write Fuses geklickt habe. Die Fehlermeldung war als ob er die Fuses nicht geschrieben hätte.
    Hast du den Schaltplan von einer Schaltung wo das besser realisiert ist als bei meiner etwas primitiven Version?
    Wenn es wirklich daran liegt, dass ich das Programm falsch gedeutet habe wäre ja gut. Vielen Dank auf jeden Fall schonmal für die viele Hilfe bisher!!

  • Viele Schaltungen sehen ISP vor (In-System-Programmierung), und dafür ist der Adapter auch gedacht. Der Gag bei der ISP ist, dass der Controller aus der Zielschaltung zur Programmierung nicht entfernt werden muss - das wäre bei bereits verlöteten oder SMD-Bauteilen sehr umständlich. Das geht deswegen, weil ein Teil der Beschaltung sowohl zur Programmierung als auch im späteren Betrieb ohnehin nötig ist, z.B. bei Hölschers Schaltungen der Quarz mit den Kondensatoren. Mehr dazu hier: http://www.mikrocontroller.net/articles/AVR_Checkliste

    Es gibt natürlich besondere Fälle, in denen der Controller zuerst außerhalb der Zielschaltung geflasht werden soll - das DE-IF hat ja keine ISP-Schnittstelle, deswegen muss der ATmega zuerst in einen Adapter gesetzt werden. Diese Adapter haben die benötigten Teile (Pull-Up-R, Kondensatoren, Quarz) und wiederum eine ISP-Schnittstelle, die man über einen ISP-Adapter mit dem PC verbinden muss. Würde man nämlich seinen ISP-Adapter tauschen müssen (z.B. weil der neue PC keine RS232-Schnittstelle mehr hat), kann man den Adapter für den Controller weiterhin benutzen.

    Du kannst die Fusebits trotzdem auslesen und schreiben, dazu muss lediglich eine externe Taktquelle vorliegen. Zufälligerweise hat der USB-Controller im Interface einen Taktausgang mit 4MHz (CLKOUT), der sollte auch arbeiten, wenn das IF an USB hängt und kein ATmega drinsteckt.
    Den Taktausgang (Du kannst den Takt einfach an Pin 19 am Sockel des Atmegas mit einem Draht abgreifen, dann muss man da nicht extra rumlöten) schließt Du an den Pin 19 des "verfusten" ATmegas an, der wiederum an den ISP-Adapter angeschlossen/gesteckt ist (und der wiederum am PC hängt). Beide Massen (GND) müssen natürlich ebenfalls verbunden werden, also Masse IF mit Masse Programmieradapter!

    Jetzt sollte der ATmega wieder über PP angesprochen werden können.

    ....T-Offline sei dank....

  • 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.