Seite 1 von 2

DMX512-RGBLED: LED leuchtet bei 0 noch schwach

Verfasst: 12.06.2010, 16:05
von Novamberka
Hallo Experten,

ich hab soeben versucht, LEDs zum Testen über DMX mit der DMX512-RGBLED-Schaltung anzusteuern, zum Testen mit einer LED mit Vorwiderstand direkt am Portpin des ATTiny2313. Leider habe ich dabei das Problem, dass die LED bei 0 auf dem DMX-Kanal immernoch schwach leuchtet, was ich aber nicht gebrauchen kann, sie müsste schon ganz aus sein.

Hat jemand eine Idee, wie ich dieses Problem beheben kann? Ist das normal?


Vielen Dank im Voraus!

Heinz

Re: DMX512-RGBLED: LED leuchtet bei 0 noch schwach

Verfasst: 14.06.2010, 11:59
von Christian
Hallo Heinz,


ich habe mir eben den Quelltext der RGB-Firmware noch einmal angeschaut. Dort wird der Wert des jeweiligen DMX-Kanals (0 bis 255) direkt auf das Register des PWM-Ausgangs geschrieben. Wenn also die Software oder das Pult den DMX-Wert auf 0 setzt, dann liegt auch das PWM-Signal auf 0 und die LED sollte aus sein. Es wäre sehr hilfreich, den Ausgang des Atmel unter dem Oszi sich anzuschauen, um sicherzustellen, dass der Fehler nicht irgendwo anders liegt.


viele Grüße,
Christian

Re: DMX512-RGBLED: LED leuchtet bei 0 noch schwach

Verfasst: 01.08.2010, 21:34
von Sascha G
Hallo,

habe das selbe Problem, das liegt am Fast PWM Mode ich habe den Mode mal geändert dann geht es, hat es einen Grund warum die PWM so langsam eingestellt ist ?

Code: Alles auswählen

// Timer 0 PWM Init


  TCCR0A = (1 << WGM00)
  		 | (0 << WGM01)// | (1 << WGM01)
		 | (1 << COM0A1)
		 | (1 << COM0B1);
  TCCR0B = (0 << WGM02)
  		 | (1 << CS00)
		 | (0 << CS01)// | (1 << CS01)
		 | (0 << CS02);
...

 // Timer 1 PWM Init

  TCCR1A = (1 << WGM10)
  		 | (0 << WGM11)
		 | (1 << COM1A1)
		 | (1 << COM1B1);
  TCCR1B = (0 << WGM12) // (1 << WGM12)
  		 | (0 << WGM13)
		 | (1 << CS10)
		 | (0 << CS11)//| (1 << CS11)
		 | (0 << CS12);



Gruß

Sascha

Re: DMX512-RGBLED: LED leuchtet bei 0 noch schwach

Verfasst: 03.08.2010, 14:56
von Christian
Hallo Sascha,


ehrlich gesagt habe ich den Code und die Schaltung selbst noch nicht getestet. Der Code ist mal so eben Zwischendurch entstanden. Danke also für die Korrekturen, die ich sehr gerne in den Code mit einpflegen und auf der Website dann hochladen werde.

Hast du die vorgeschlagene Schaltung von meiner Website verwendet (mit den doppelten Transistor-Gatetreibern) oder hast du einen MOSFET mit TTL-Eingang verwendet?

Zu der Frage mit der Geschwindigkeit: der Timer arbeitet auf Eingangstakt, also mit 8MHz. Es wird somit kein Prescaler eingesetzt. Du kannst also nur noch den Quarz auf 16MHz verdoppeln, damit du eine schnellere PWM-Ausgabe bekommst. Aber eigentlich sollte die PWM-Frequenz völlig ausreichend für ein paar LEDs sein :)

Code: Alles auswählen

  // Timer 0 PWM Init
  TCCR0A = (1 << WGM00) // PWM, Phase Correct (Triangular)
         | (1 << COM0A1) // Set ORC0A on Compare Match on CountUp, Clear on Compare Match on CountDown
         | (1 << COM0B1); // Set ORC0B on Compare Match on CountUp, Clear on Compare Match on CountDown
  TCCR0B = (1 << CS00); // No Prescaling (->8Mhz)

  // Timer 1 PWM Init
  TCCR1A = (1 << WGM10) // PWM, Phase Correct (Triangular) 8-Bit
         | (1 << COM1A1) // Set OC1A on Compare Match on CountUp, Clear on Compare Match on CountDown
         | (1 << COM1B1); // Set OC1B on Compare Match on CountUp, Clear on Compare Match on CountDown
  TCCR1B = (1 << CS10); // No Prescaling (->8Mhz)
viele Grüße,
Christian

Re: DMX512-RGBLED: LED leuchtet bei 0 noch schwach

Verfasst: 03.08.2010, 18:30
von Sascha G
Hi,

hab die Schaltung nur auf meinem Entwicklungsboard getestet also LEDs direkt angesteuert werde aber mal das ganze aufbauen ich überlege imo ob ich FETs nehmen soll oder Direkt ne Stromquelle mit PWM Eingang. Zu der PWM Geschwindigkeit da war zuerst ein Prescaler eingestellt den hab ich raus genommen ;-)


Gruß

Sascha

Re: DMX512-RGBLED: LED leuchtet bei 0 noch schwach

Verfasst: 03.08.2010, 19:59
von Christian
Ah, OK. Hatte deinen Code gleich genommen und rüberkopiert und den alten Code gar nicht mehr angeschaut. Dann ists klar :)

Hatte keinen wirklich Hintergrund *g*

Nochmals danke wegen des Updates. Falls du noch mehr programmierst oder weitere Ideen hast, würde ich die gerne mit auf der Website veröffentlichen.


ciao,
Christian :wink3:

Re: DMX512-RGBLED: LED leuchtet bei 0 noch schwach

Verfasst: 03.08.2010, 20:12
von Sascha G
Hi,

na ja so der super Programmierer bin ich net ;-) imo denk ich über eine logarithmische Helligkeitskorrektur nach aber ich weiß noch nicht wie ich das programmiertechnisch lösen soll.


Gruß

Sascha

Re: DMX512-RGBLED: LED leuchtet bei 0 noch schwach

Verfasst: 03.08.2010, 20:17
von Christian
Das geht relativ einfach. Im Sourcecode zum 230V Dimmer habe ich so eine Korrektur bereits implementiert. Dort wird eine Tabelle mit 256 Werten abgelegt. Der DMX-Wert gibt dann nur noch die Tabellenzelle an, sodass das PWM-Register dann mit dem Tabellenwert gefüttert wird. Ist relativ schnell realisiert.

bis dann,
Christian :)


Update: ich hab mal einen schnellen Table-Hack programmiert. Die Tabelle ist in der lib_hard_pwm.c. Teste das mal :) Die Kurve müsste aber mit sicherheit noch angepasst werden.

Re: DMX512-RGBLED: LED leuchtet bei 0 noch schwach

Verfasst: 03.08.2010, 20:43
von Sascha G
Hi,

ja is schon besser geworden die Tabelle kann man noch etwas verbessern denk ich muss mal im Netz suchen nur in der Software klappt das mit dem DMX Kanal wechsel net mehr also wenn ich den PD6 auf GND lege Blinkt die LED an PD4 nur die hört nicht mehr auf ;-)


Gruß

Sascha

ich fand fand die andere Version vorher besser mit dem Kanal wechsel

Re: DMX512-RGBLED: LED leuchtet bei 0 noch schwach

Verfasst: 03.08.2010, 20:53
von Christian
Hi,

der Kanalwechsel über den Taster an PD6 ist weiterhin vorhanden. Du musst ein paar Sekunden PD6 auf GND ziehen, bis der Kanalwechsel akzeptiert wird. Es soll ja ein kleiner Schutz gegen Aus-Versehen-Drücken geben.

bis dann,
Chris

Re: DMX512-RGBLED: LED leuchtet bei 0 noch schwach

Verfasst: 03.08.2010, 21:00
von Sascha G
ja die Tabelle ist besser viel besser das Problem beim Kanalwechsel ist also erst blint die LED ja langsam dann schnell aber die hört nicht mehr auf zu blinken also ich komme nicht mehr aus dem Kanalwechselmodus raus.



Gruß

Sascha

Re: DMX512-RGBLED: LED leuchtet bei 0 noch schwach

Verfasst: 03.08.2010, 21:02
von Christian
Ich teste das grad mal selber... moment.

Update: Bug ist gefunden und gerade behoben worden. Ich zippe das ganze grad nochmal und lads hier gleich hoch

Update 2: hier ist das fertige Paket. Updates:

- Startadresse wird nun wieder korrekt nach längerem Tastendrücken gesetzt
- LED-Helligkeitstabelle für alle 4 PWM-Ausgänge (wahlweise linear, oder zwei logarithmische Varianten - siehe Bilddatei in ZIP)
- Startadresse kann in Header-Datei auch fix ins Flash programmiert werden


vielen Dank für die Tests :wink2:

Re: DMX512-RGBLED: LED leuchtet bei 0 noch schwach

Verfasst: 03.08.2010, 21:33
von Sascha G
Hi,

jetzt klappt es mit der Adresse hast du das mit der DMX-Status LED wieder auskomentiert ?


Gruß

Sascha


Edit ich habs gefunden ;-)

Re: DMX512-RGBLED: LED leuchtet bei 0 noch schwach

Verfasst: 03.08.2010, 21:37
von Christian
Hi,

ich hab schusseligerweise in der Header-Datei vergessen die Pins wieder umzubiegen. Hab die Datei im letzten Post aktualisiert. Kannst aber auch einfach in der main.h die Zuordnung wieder anpassen.

Wie siehts mit der LED aus? Ich hab bei mir eine kleine Gelbe 3mm LED dran und die dimmt wunderbar :)

Ciao,
Chris

Re: DMX512-RGBLED: LED leuchtet bei 0 noch schwach

Verfasst: 03.08.2010, 21:40
von Sascha G
Hi,

ich habs gefunden ;-)

Na ja ich hab so en Pollin Entwicklungsboard da hängt en ULN dran und dann ne rote LED... mir gefällt Log1 am besten...


Gruß

Sascha