Hallo allerseits,
ich möchte gerne auch den USB-DMX Interface-Controller von http://www.digital-enlightenment.de/usbdmx.htm nachbauen. Dazu habe ich mir eine Platine ätzen lassen, die Drahtbrücken auf der ‚Vorderseite‘ gelötet und die Bauteile hoffentlich richtig angebracht. Mein fehlender Schritt ist die Programmierung des Atmega 8515.
Dazu habe ich drei relativ einfache Adapter zwischen Computer und uC aufgebaut.
- TwinAVR (mit dem es leider scheiterte) http://www.rowalt.de/mc/avr/progd.htm (parallel Port, PonyProg)
- Ulrich Radig’s USB Atmel ISP Programmer http://www.ulrichradig.de/ (funktionierte leider auch nicht, AVR Studio)
- den einfachsten aller Controller http://www.hoelscher-hi.de/hendrik/light/ressources/an011.pdf (parallel Port) (damit habe ich Zugriff auf den uC und kann diesen auch beschreiben, PonyProg)
Die Frage ist jetzt nach dem Hex-File und den richtigen Fuses. Ich benutze PonyProg, da dies die einfachste für mich zu bedienende Software ist und ich damit schon diverse Atmega644 programmiert habe.
Für die Fuses ist hier ein Screenshot angegeben http://www.digital-enlightenment.de/prusbdmx.php3.
Mein Vorgehen ist wie folgt: Zuerst nehme ich die code.asm Datei. Dort ändere ich die Seriennummer (Datum & Uhrzeit). Diese habe ich in ein neues Projekt des AVR Studios kopiert und damit ein hex-File erstellt. Dabei kommt folgende Warnmeldung: “test.asm(193): warning: Register r25 already defined by the .DEF directive”
Diese hex-File habe ich per Ponyprog auf den uC geladen. Danach die Fuses so wie auf dem Screenshot von http://www.digital-enlightenment.de/prusbdmx.php3 gesetzt. (komischerweise steht in der Beschreibung, dass BODEN aktiviert sein soll, dies angeblich im screenshot nicht ist; sehe ich aber so im Bild)
Die Fehlermeldung in PonyProg kam, dass der uC nicht mehr angesprochen werden kann (weil eben die Fuses neu gesetzt sind und ein externer Taktgeber benötigt wird, laut Flashen Atmega 8515 inkl. Lösung).
Das DMX USB Interface funktioniert aber noch nicht.
Deshalb meine Frage bzw. Bitte an euch. Kann mir jemand bitte sein hex-File schicken? Wenn ich den uC korrekt programmiere, so kann ich mindestens die Fehlerquelle ausschließen und woanders suchen.
Und falls noch jemand Pony-Prog benutzt, wäre es super, wenn ich noch ein Screenshot der Fuses bekommen würde (in dem Screenshot der Projektdatei ist z.B. LB1 angeklickt. Ich habe keine Ahnung ob das bei PonyProg „Lock1“ ist; aber da fast alles angeklickt ist, ist die Fehlerwahrscheinlichkeit eher gering!?
uC hex-File aufspielen
-
Fmu -
May 13, 2011 at 6:27 PM -
Thread is Resolved
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!
-
-
Hi,
nimm dir das angehängte Archiv,
entpacke alles und führe die CodeGen.exe aus.
Gib dort deine Seriennummer die du willst ein und wähle Intel Hex Format aus.Danach auf "Start" klicken und dann erscheint ein Button "Zum Programmieren mit PonyProg hier drücken"
da drauf klicken.Dein DE-IF sollte natürlich mit dem Programmer verbunden sein und du solltest es mit Spannung versorgt haben.
PonyProg muss vorher NICHT geöffnet sein.
Danach
Fertig

Grüße, Souko
-
Hallo,
vielen Dank!
Ich habe neue uCs bestellt, nachdem ich die alten "kaputt" gemacht habe. Sobald diese eintreffen, werde ich es ausprobieren. -
Hi,
die alten sind bestimmt nicht kaputt (solange sie Mechanisch in Ordnung sind)das heisst, wen du die Fuses falsch gesetzt hast, dann brauchen die einen externen Takt um wieder zu funktionieren.
nimm dir irgend einen Quarz und häng den an die "kaputten" ran oder einen Frequenzgenerator, damit die µC's wieder arbeiten und setze die Fuses wieder zurück.
Dann geht das wieder
Grüße, Souko
-
Zu den Fuses! Ich hoffe ich habe nicht überlesen, dass das oben schon genannt wurde. Auf jedenfall müssen die Fuses in Pony Prog genau andersrum gesetzt werden als in dem Bild im DE-IF Projektarchiv. Im Screenshot aus dem Projektarchiv steht "Programmed bits are unchecked 0 and unprogrammed bits are 1 checked"
Bei Ponyprog ists genau andersherum: "Checked means programmed (bit = 0).
Im Anhang habe ich gerade nen Screenshot von pony Prog gemacht.
So müsste richtig sein.VG,
Sven -
Nein, das hast du nicht überlesen,
aber das CodeGen-Prog macht das von alleine.es MUSS aber der µC mit einem externen Takt versorgt werden, da das im DE-IF auch passiert.
Grüße, Souko
-
Hallo,
vielen Dank für die Antworten.
Dass man einen externen Taktgeber braucht, wenn man die fuses falsch gesetzt hat, habe ich gelesen. Das stand hier Flashen Atmega 8515
Folglich hatte ich den Programmer hier nachgebaut, http://www.xs4all.nl/~sbolt/e-spider_prog.html, bei dem ein 4MHz Quarz zwischen den beiden XTAL-Pins angeschlossen ist. In PonyProg habe ich unter "I/O Port Setup" "DT-006 I/O" ausgewählt, der Test klappt auch "Test ok".
(Für den ganz einfachen Programmer (mit den zwei 1kOhm Widerständen) habe ich"AVR ISP I/O" ausgewählt. Das funktioniert mit dem einfachen Programmer auch (test ok)),
mit dem jetzigen; also mit Quarz; klappt das nicht.
Habt ihr den Quarz einfach an die XTAL Ports angeschlossen (mit oder ohne die Kapazitäten). Eine andere Lösung, die die hier (Flashen Atmega 8515) vorgeschlagen wird, ist einen funktionierenden uC mit dem zu verbinden, bei dem die fuses falsch gesetzt sind. (Habe meine nur leider verfust, sodass ich neue bestellt habe, trotzdem würde ich meine gerne "retten")
Habt ihr einen Schaltplan von dem einfachen Programmer, der einen Quarz verwendet? Oder ist das der einfachste (mit den beiden 1kOhm Widerständen; paralleler Programmieradapter http://www.hoelscher-hi.de/hendrik/light/ressources/an011.pdf) und schließt ihr einfach einen 4MHz Quarz zwischen die beiden XTAL Pins an?
Ich habe im Datenblatt geschaut (http://www.atmel.com/dyn/resources/…nts/doc2512.pdf) da ist auf S.35f ein einfacher Schaltplan abgebildet. Nur wie schaut der Rest des Programmer aus?
Viele Grüße und vielen Dank -
Hallo,
vielen Dank für die Antworten.
Dass man einen externen Taktgeber braucht, wenn man die fuses falsch gesetzt hat, habe ich gelesen. Das stand hier Flashen Atmega 8515
Folglich hatte ich den Programmer hier nachgebaut, http://www.xs4all.nl/~sbolt/e-spider_prog.html, bei dem ein 4MHz Quarz zwischen den beiden XTAL-Pins angeschlossen ist. In PonyProg habe ich unter "I/O Port Setup" "DT-006 I/O" ausgewählt, der Test klappt auch "Test ok".
(Für den ganz einfachen Programmer (mit den zwei 1kOhm Widerständen) habe ich"AVR ISP I/O" ausgewählt. Das funktioniert mit dem einfachen Programmer auch (test ok)),
mit dem jetzigen; also mit Quarz; klappt das nicht.Du musst de Quarz an Xtal 1 und Xtal 2 hängen und jeweils einen Keramikkondensator (22nF) von Xtal 1 und 2 an GND
Dann das ganze mit SPannung versorgen und den AVR ISP I/O wählen.
Habt ihr den Quarz einfach an die XTAL Ports angeschlossen (mit oder ohne die Kapazitäten). Eine andere Lösung, die die hier (Flashen Atmega 8515) vorgeschlagen wird, ist einen funktionierenden uC mit dem zu verbinden, bei dem die fuses falsch gesetzt sind. (Habe meine nur leider verfust, sodass ich neue bestellt habe, trotzdem würde ich meine gerne "retten")Hier musst du in dem Funktionierenden µC eine Taktschleife programmieren, die dir einen Takt auf einen Pin ausgibt. Diesen verbindest du mit XTAL1 hängen.
Habt ihr einen Schaltplan von dem einfachen Programmer, der einen Quarz verwendet? Oder ist das der einfachste (mit den beiden 1kOhm Widerständen; paralleler Programmieradapter http://www.hoelscher-hi.de/hendrik/light/ressources/an011.pdf) und schließt ihr einfach einen 4MHz Quarz zwischen die beiden XTAL Pins an?
Ich habe im Datenblatt geschaut (http://www.atmel.com/dyn/resources/…nts/doc2512.pdf) da ist auf S.35f ein einfacher Schaltplan abgebildet. Nur wie schaut der Rest des Programmer aus?
Viele Grüße und vielen DankDer Programmer von Henne ist eigentlich ganz gut.
Man kann sich das Gerät aber einfach erweitern, indem man einen Quarzoszilator dran hängt. Keinen Quarz, sondern einen Oszilator:
http://www.conrad.de/ce/de/product/…earchDetail=005
(Hab dir ne Zeichnung gemacht)
Der bekommt 5 Volt , GND und gibt dann an einem Pin ein Taktsignal aus.
Weil, wenn dein AVR die Fuses falsch gesetzt hat, kann es sein das er auf externen Takt eingestellt ist und den Quarz garnicht erst anschwingt.
Weil ein Quarz muss "angeworfen" werden
Ein Oszilator muss das nicht. -
Hallo,
danke, habe mir genau den Oszi gekauft und das dann nach Schaltplan (danke für die Zeichnung) aufgebaut. Allerdings habe ich die Pins des Oszillators falsch verbunden, sodass leider etwas arg viel Strom floss (I>100mA). Denke, dass ich ihn leider kaputt gemacht habe. Danach (besser wäre natürlich davor
) habe mir das Datenblatt bei Conrad angeschaut und die Pins richtig verbunden. Leider ging konnte ich den Atmega via PonyProg nicht ansprechen. Ich werde mir morgen einen neuen besorgen und den Programmer neu aufbauen.
Aber mit diesem Aufbau sollte ich es ja dann (endlich) schaffen den uC mit deinem Programm zu programmieren
-
Hallo,
habe mir heute beim Conrad nen neuen Oszillator gekauft und die Schaltung zusammengelötet. Jedoch kann ich meine "verfusten" uC leider damit nicht ansteuern.
Daraufhin habe ich einen neuen genommen, mit dem Programm CodeGen.exe das hex-File generiert, mit PonyProg auf den uC geschrieben, danach die Fuses geändert (dazu gleich noch ne Frage) und die Fehlermeldung bekommen "Device missing or unknown device (-24)". Trotzdem habe ich den uC in das DMX-USB-Interface eingebaut und auf Anhieb konnte ich mit der Test.exe von http://www.digital-enlightenment.de/prusbdmx.php3 die Ausgangssignale verifizieren (Mode 6: Loop). Jedoch lässt sich leider mein DMX-LED-Scheinwerfer nicht ansprechen. Hier steht http://www.digital-enlightenment.de/faq.htm, dass "Wenn das geht kann nur noch ne Clockfuse vom AVR falsch sein, das kann man erst mit anderen DMX Geräten sicher testen."
So, nun zu den fuses: Sven11 hat mir ja dankenswerterweise den Screenshot für die Fuses für Ponyprog zur Verfügung gestellt. Wenn ich den jedoch mit der "fuses.jpg" hier http://www.digital-enlightenment.de/prusbdmx.php3 vergleiche, so sehe ich eine Abweichung, BODEN ist aktiviert bzw. deaktiviert. Daraufhin habe ich mit dem oben beschriebnen Verfahren einen zweiten uC (hab mir ein paar auf Vorrat gekauft) beschrieben und diese "BODEN"-fuse gesetzt. Wenn ich die Test.exe-Datei ausführe, so sehe ich an den gescannten Kanälen die, die ich gesetzt habe (Mode6).
Zusammenfassend kann ich sagen, dass die ich die gesendeten Signale sehe (mit dieser Loop-Anordnung), wenn ich bei den uC die BODEN-fuse setzte, bzw. nicht.
Leider kann ich mit der CodeGen.exe die hex-File nicht direkt via Ponyprog auf den uC bringen, da anscheinend zuerst die Fuses gesetzt werden und danach das hex-File transferiert wird.Leider kann ich die mit der geänderten Schaltung (Henne + Oszillator) (danke für den Schaltplan) den uC nicht beschreiben. Bin ich dafür zu doof, oder muss ich noch etwas beachten?
Die 5V, die am Oszillator anliegen und am uC (VCC) kommen von einem stabilisierten Netzteil. Die GNDs von Programmer, uC und Oszillator und Netzteil habe ich verbunden. Richtig gelötet ist die Schaltung, mindestens sagt das der Test mit dem Messgerät, es gibt keine Kurzschlüsse etc.
Programmiert ihr eure auch mit der obigen Variation von Hennes Adapert? Von Pollin habe ich noch so ein Evaluationbord, das ist jedoch nicht für den Atmega 8515 geeignet.Vielen Dank für die vielen Antworten bis jetzt. Irgendwie komme ich mir grade etwas unfähig vor so einen uC zu beschreiben, wenn der Takt extern vorgegeben wird.
-
Hallo,
habe ich vielleicht etwas komplett falsch verstanden und muss ich zum flashen den DMX-Transceiver (Rev. 3.01) von http://www.hoelscher-hi.de/hendrik/light/dmxled.htm nachbauen. Kann ich damit dann meinen uC beschreiben?Viele Grüße
-
Also ich hab meine Atmegas alle mit dem von dir nachgebauten Adapter beschrieben...
ABER: Es klappt nicht an jedem Drucker(LPT)-Port. An meinem PC, sowie an meinem alten PC hat es NICHT funktioniert. Mit meinem Notebook ebenfalls nicht. Erst an einem Uralt Notebook (233 MHz Mühle) hat es endlich geklappt.
Scheinbar sind nicht alle LPT Ports vollständig ausgeführt - vor allem nicht bei neueren PCs! Hab ich zufällig durch langes googeln rausgefunden. Vielleicht hast du ja einen alten PC im Keller stehen.
-
Hallo,
Danke für die Antwort und den Tipp. Habe das auch schon gelesen, es wunderte mich jedoch, dass ich die uC ja wunderbar beschreiben kann, nur wenn ich die fuses neu setze, kann ich ihn nicht mehr ansprechen. Dennoch habe ich nen alten Rechner (April 01) geholt, Windows neu aufgesetzt und es erneut versucht. Gleiche Fehlermeldung.
Hmm, aber du hast auch den Adapter hergenommen, hast du geschrieben, ohne noch irgendein Bauteil hinzuzufügen? Also 2x 1kOhm, 1Mhz Quarz und Drähte?
Viele Grüße -
Ich hab keinen Quarz direkt angeschlossen... Erst beschrieben und anschließend Fuses gesetzt.. Hat immer geklappt!
-
Hallo,
wenn der Controller beschrieben wurde und danach die Meldung "missing device" aufkommt, wurden garantiert die Fusebits umgestellt (je nach Ausstattung des Adaters auf Quarz oder Oszillator). Ansonsten das Übliche: Kaltlötstellen, Leiterbruch u.ä.
Was ich mal beobachtet habe: Bei langsamer Taktung des Atmegas (4MHz) wollte das Ding ab und zu nicht so richtig, manchmal kam "missing device". Mit aktiviertem CKOPT oder externem Oszillator ging es dann aber.Eure Adapter sind alle scheiße, das habe ich dem Themenersteller damals auch geschrieben. Warum diese Minimalbeschaltung, die nur Ärger verursacht? Baut Euch einen anständigen Adapter, auf dem alle Widerstände und Kondensatoren drauf sind, die erforderlich sind. Wer über LPT flashen will am besten gleich mit Bustreiber (SN74HC244 oder SN74HCT244) und Oszillator statt Quarz, oder beides.
Die Fuses: Siehe das Bild von sven11, so muss es bei PonyProg und nur bei PonyProg gemacht werden! Wer einen Oszillator auf seinem Programmieradapter hat, kann alle CKSEL-Kästchen aktivieren, dann reagiert der ATmega nur noch auf externen Takt. Dann muss der DMX-Empfang und Versand sowohl über den Mode 6 als auch an einem echten DMX-Gerät klappen, wenn der Rest auch geht. Wenn man das BODEN vergessen hat, kein Problem, kann man nachholen und außerdem funktionierts auch so. Es kann nur vorkommen, dass das Interface die Timing-Einstellungen beim Neustart vergisst.
-
Na, na, die Fäkalsprache hier muss aber nicht sein. Du nimmst hier Sachen in den Mund, die nehme ich noch nichtmal in die Hand.
-
Also ich hab meine Atmegas alle mit dem von dir nachgebauten Adapter beschrieben...
ABER: Es klappt nicht an jedem Drucker(LPT)-Port. An meinem PC, sowie an meinem alten PC hat es NICHT funktioniert. Mit meinem Notebook ebenfalls nicht. Erst an einem Uralt Notebook (233 MHz Mühle) hat es endlich geklappt.
Scheinbar sind nicht alle LPT Ports vollständig ausgeführt - vor allem nicht bei neueren PCs! Hab ich zufällig durch langes googeln rausgefunden. Vielleicht hast du ja einen alten PC im Keller stehen.
Es können auch die Druckerporteinstellungen im Bios sein:
SPP, ECP, ECP mal alle versuchen. Die ohne IRQ und DMA sollte eher gehen.
-
Hallo Alex,
danke für Antwort.
Dass der Adapter mit der "Minimalbeschaltung" bei mir nicht so funktioniert wie er sollte (trotz verändertem Schaltplan, dank Souko), habe ich gemerkt. Ganz am Anfang des Beitrags habe ich mehrere vorgeschlagen, u.a.
- TwinAVR (mit dem es leider scheiterte) http://www.rowalt.de/mc/avr/progd.htm (parallel Port, PonyProg)
- Ulrich Radig’s USB Atmel ISP Programmer http://www.ulrichradig.de/ (funktionierte leider auch nicht, AVR Studio)Ist da deiner Meinung nach "ein anständiger" dabei? Welchen Adapter benutzt du bzw. wo finde ich einen Schaltplan.
Viele Grüße
-
Hallo,
ich mache das seit Jahren mit meiner alten Schrottkiste, weil das Laptop keine LPT-Schnittstelle hat. Von Adaptern von USB auf LPT oder RS232 kann man nur abraten, die funktionieren fast nie.
Ich habe bislang nur Erfahrung mit einem Adapter von LPT auf ISP gemacht, Link: http://rumil.de/hardware/avrisp.html
Dieser hat mit mehreren PCs und PonyProg auf Anhieb funktioniert. Ich würde langfristig aber auf USB umsatteln, weil es einfach praktischer ist und universeller ist. Leider funktioniert m.W. PonyProg nicht mit USB-ISP-Adaptern.Mit "anständig" meine ich vor allem die Art der Beschaltung. Die Widerstandslösung bei LPT ist eine Krücke, genauso wie die Minimalbeschaltung des Controllers ohne Stützkondis usw.
-
Ich kann diesen Adapter mit USB nur empfehlen:
http://wiki.ullihome.de/index.php/USBAVR-ISP/deder kostet 15€ und es gibt auch eine brauchbare Programmiersoftware.
mfg
Dmxfreaky -
-
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.