Forum: Mikrocontroller und Digitale Elektronik PC-Dimmer DMX512 Interface läuft nicht!


von Paraxelzus (Gast)


Lesenswert?

Hallo Leute, ich bin neu hir im Forum und meine C kenntnisse halten sich 
in grenzen.

Zum programmieren benutze ich die IDE Eclipse mit dem AVR Plugin und 
einen AVRISP MKII.

Da ich gerne mit LEDs Herumbastle wollte ich mir einen DMX512-hardware 
Adapter bauen.
Hierzu habe ich mir das PC-Dimmer Projekt ausgesucht. (galvanische 
Trennung, Software, einfacher Aufbau des Adapters, günstig)

http://www.pcdimmer.de/index.php/dmx512-hardware/dmx512-interface

leider musste ich feststellen das das Projekt mich an den Rande der 
Verzweiflung bringen würde!

Nachdem ich die Platine fertiggestellt hatte und das projekt in meine 
IDE imprtiert hab, kam beim builden des Projektes die Warnung:

Invalid project path: Duplicate path entries found (/Test [Include path] 
isSystemInclude:true includePath:E:/Microcomputer/AVR 
Eclipse/WinAVR/avr/include), path: [/Test].  Test

da ich diese Warnung schon einmal bekommen hab und dennoch alles 
wunderbar geklappt hat ( ich hab eine LED zum leuchten gebracht ^^ )
habe ich diese ignoriert und den Code auf meinen ATMEGA 8 gebrannt.
Nachdem ich den Adapter mit meinem PC verbunden hab wurde dieser jedoch 
nicht erkannt (Unknown Device). Auch der Treiber ließ sich nicht 
installieren. Daraufhin hab ich die Platine noch einmal nach 
Verdrahtungsfehlern untersucht und Tatsächlichkeit einen gefunden: Ich 
hatte die Datenleitungen des USB D+ mit D- Vertauscht. Nachdem ich 
diesen fopa korrigiert hab wurde der Adapter allerdings immer noch nicht 
erkannt.
Nun dachte ich es könnte an meiner Warnung in der IDE liegen und hab mit 
folgendem Befehl den mitgelieferten *.hex Code direkt auf den ATMEGA 8 
gebrannt.

avrdude -p m8 -cavrisp2 -Pusb -Uflash:w:test.hex:a -Ueeprom:w:test.eep:a

Der Adapter wird dennoch nicht erkannt :-( nach einigen Stunden 
Fehlersuche hab ich dann folgenden Eintrag gefunden:

Bekannte Probleme:
Es kann vereinzelt vorkommen, dass der USB-Hostanschluss eines Computers 
das Timing der USB-Emulation des ATmega8 nicht genau erkennt. Windows 
meldet dann in der Regel "USB-Gerät wurde nicht erkannt". In solchen 
Fällen genügt es, einen USB-Hub zwischen dem USB-Anschluss und dem 
DMX-Interface anzuschließen
gesagt getan USB Hub dazwischen geschaltet und es funktioniert immer 
noch nicht!!
Ich hoffe es kann mir jemand von euch helfen oder hatte schon mal 
ähnliche Probleme

MFG

von F. H. (Gast)


Lesenswert?

1) hast Du geprüft, ob alle Spannungen in Deiner Schaltung zur Verfügung 
stehen?

2) hast Du die Fuse-Bits richtig geschrieben? Der Artikel erwähnt extra, 
dass die Taktquelle auf extern gesetzt werden muss!

3)
> avrdude -p m8 -cavrisp2 -Pusb -Uflash:w:test.hex:a -Ueeprom:w:test.eep:a

... heißt, dass Du eine test.hex in den µC geflasht hast. Lade ich aber 
das Softwarepaket von Deiner geposteten Homepage, lautet das File 
"0000000000000042.hex" ?!

4) es heißt "Fauxpas"!
> ... Nachdem ich diesen fopa korrigiert ...

Viel Erfolg!

von Nico U. (paraxelzus)


Angehängte Dateien:

Lesenswert?

Danke für die schnelle Antwort :-)

Zu 1) Ja alle Spannungen stehen zur Verfügung. Hab die Schaltung 
mehrmals durchgemessen! ( nach dem programmieren leuchtet die gelbe LED 
)

Zu 2) Hab leider keine Ahnung von Fuse-Bits. Hab aber in der IDE den 
Controller ATMEGA 8 mit einen Takt von 120000000 (siehe Anhang) 
angegeben. Ich dachte das würde reichen.

Außerdem nahm ich an das in der mitgelieferten HEX Datei  alle 
einstellungen die der Controller braucht vorhanden sind und so auch die 
Fuse-Bits gesetzt werden. Ist dies nicht so?

Zu 3) ^^ ich hab die Hex Datein und die EEP Datei die mitgeliefert 
wurden umbenannt :-) in test.Hex und test.eep

Zu 4) Ich hab das leider nicht so mit der Rechtschreibung ( hatte das 
Wort vorher sogar bei Google eingegeben xD hätte mal lesen sollen was 
die Beschreibung ist) ich hoffe du kannst mir verzeihen :-)

MFG

von Martin K. (maart)


Lesenswert?

Hast du eventuell einen anderen PC zum Testen?
Hier hat mal einer seinen Programmieradapter nicht zum Laufen bekommen, 
an einem anderen PC hat er aber funktioniert.

Johannes Nicola Unterschütz schrieb:
> Zu 4) Ich hab das leider nicht so mit der Rechtschreibung ( hatte das
> Wort vorher sogar bei Google eingegeben xD hätte mal lesen sollen was
> die Beschreibung ist) ich hoffe du kannst mir verzeihen :-)

Dann sollte man einfach nicht mit Fremdworten werfen ;-)

von Nico U. (paraxelzus)


Lesenswert?

Ja an meinen Netbook mit Win XP wird er auch nicht erkannt :-(

Ich überlege schon ob ich die Schaltung mal nur mit der USB Peripherie 
aufbaue um wirklich zu 100% Verdrahtungsfehler aus zu schließen!
wenn ihr sagt das ich sonst alles richtig gemacht hab!


> Dann sollte man einfach nicht mit Fremdworten werfen ;-)

^^ beim nächsten mal bin ich schlauer :-)

von Nico U. (paraxelzus)


Lesenswert?

Nochmal zu:

> Zu 2) Hab leider keine Ahnung von Fuse-Bits. Hab aber in der IDE den
> Controller ATMEGA 8 mit einen Takt von 120000000 (siehe Anhang)
> angegeben. Ich dachte das würde reichen.
>
> Außerdem nahm ich an das in der mitgelieferten HEX Datei  alle
> einstellungen die der Controller braucht vorhanden sind und so auch die
> Fuse-Bits gesetzt werden. Ist dies nicht so?


sind Fuse-Bits Einstellungen nicht im Hex Code enthalten ?

von F. H. (Gast)


Lesenswert?

> sind Fuse-Bits Einstellungen nicht im Hex Code enthalten ?
nein

Laut Datenblatt läuft der ATmega8-16 mit default-Fuse auf 1MHz internal 
RC.
Wenn Du also keine Fuses gesetzt hast, läuft Dein µC nur mit 1MHz und 
nicht wie gefordert mit 12MHz.

Da du ja einen ISP-MK2 hast, kannst Du die Fuses einfach im AVR-Studio 
setzen! -> SuFu!

von Martin K. (maart)


Lesenswert?

Johannes Nicola Unterschütz schrieb:
> sind Fuse-Bits Einstellungen nicht im Hex Code enthalten ?

Zumindest in diesem nicht. Auf der Webseite steht ja explizit, dass sie 
extra gesetzt werden müssen.

von Nico U. (paraxelzus)


Lesenswert?

So! Ich hab mal die heißeste Spur verfolgt und mich an die Einstellungen 
der Fußes-Bits gewagt.

Leider denke ich das ich Hiermit schmerzliche Erfahrungen gesammelt hab 
:-(.
„Erfahrung ist die Sammlung aller Fehlschläge“

Meine Vorgehensweise war wieder, da ich meiner IDE nicht vertraue, die 
Fuse-Bits manuell einzustellen mit AVRDude!

Leider hab ich glaube ich einen ATMEGA 8 gekillt -.- auf jeden Fall 
reagiert er nicht mehr! Auf jegliche Lese- oder Schreibversuche.

Den Befehl den ich verwendete lautete:

avrdude -p m8 -c avrisp2 -P usb -U hfuse:w:0xc9:m -U lfuse:w:0xe8:m

Kann man dies Irgendwie wieder rückgängig machen??


Auf jeden Fall hat es dann beim zweiten Versuch mit folgendem Befehl 
Geklappt!!!

avrdude -p m8 -c avrisp2 -P usb -U hfuse:w:0xd9:m -U lfuse:w:0xff:m

Dank Eurer Hilfe rennt die Kiste XD. Oh Mann hab ich mich gefreut trotz 
schmerzlicher Erfahrungen!!

von Martin K. (maart)


Lesenswert?

Vielleicht installierst du dir mal das Atmel Studio, dann kannst du die 
Fuses auch ganz schmerzfrei setzen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.