Hallo Leute, Ich habe ein Problem mit meiner Schaltung. Und zwar steuere ich meine LEDs mit einem Zetex mit der Transistorschaltung am Adjust-Pin an. D.h. ein PWM mit DutyCycle 100% entspricht Helligkeit "0" und ein PWM mit DutyCycle 0% entspricht 255. Und das ist mein Problem. Wenn ich die Elektronik einschalte, dann blitzen die LEDs kurz auf. Ich deklariere die Pins (die den Transistor ansteuern) zwar gleich zu Beginn als Ausgänge und schalte sie auf 1, aber anscheinend ist das ein bisschen zu langsam! Gibt es noch eine andere Möglichkeit die Atmel-Pins so schnell wie möglich auf logisch 1 zu ziehen, ohne die Hardware zu ändern (ist nämlich nicht mehr möglich)? BTW: Ich verwende einen ATMega328p Vielen Dank! mfg
du kannst die startup-zeiten verkleinern wenn deine stromversorgung schnell genug die 5V erreicht. aber ganz wegbekommen wirst du den effekt nicht ohne die HW zu ändern.
startup hab ich schon auf 0ms. Was müsste ich an der HW ändern (nur interessenshalber)?
Andy schrieb: > Ich deklariere > die Pins (die den Transistor ansteuern) zwar gleich zu Beginn als > Ausgänge und schalte sie auf 1, aber anscheinend ist das ein bisschen zu > langsam! Nö, nur falschherum. Dadurch erzeugst Du einen kurzen Low-Puls. Peter
der ist aber nur drei CLKs lang. ich denk den würde man nicht sehen. das problem kommt eher daher, daß die AVR pins high-Z sind bevor das programm sie konfiguriert.
Wenn die Pins am Anfang als Ausgänge geschalten sind und deshalb hochohmig, dann sollte eigentlich kein Strom durch die LEDs fließen, oder?
Also zuerst auf log. 1 und dann als Ausgang definieren, hab ich schon probiert: Geht auch nicht!
Die Reihenfolge war falsch, aber das ist nicht die Ursache. Wenn der Kram dahinter einen offenen Pin als "0" sieht, dann geht es nicht ohne externem Pullup.
Man könnte die Pins auch gleich nach dem Reset setzen, also noch bevor der ganze andere Startup-Kram abläuft.
das ändert aber nichts daran, daß der ganze krempel eine kurze zeit braucht bis die 5V µC spannungsversorgung steht, der taktgenerator angeschwungen ist und der µC letztendlich startet.
Was nichts dran ändert, dass bei einem Quarzoszillator erst einmal zig Millisekunden draufgehen bevor die Software zum Zug kommt.
Klaus Falser schrieb: > Wenn die Pins am Anfang als Ausgänge geschalten sind und deshalb > hochohmig, ... Häh? > dann sollte eigentlich kein Strom durch die LEDs fließen, oder? Zitat von ganz oben: >>>>> LEDs mit einem Zetex Porbiers einfach mit einem Pullup ;-) BTW: >>>>> LEDs mit einem Zetex Ach, mit dem Zetex also. Mit welchem Zetex denn?
das mit dem externen Quarzoszillator kann ich bestätigen. Wenn ich den internen nehme, blitzts nicht! Ich kann aber den internen nicht nehmen, da ich für meine DMX-Steuerung einen genauen Takt brauche!
tjo dann ists eindeutig die anschwingzeit des quarzoszillators.
Evtl. Keramikschwinger verwendet und die Fuses entsprechend einstellen. Blitzt zwar auch, aber erheblich kürzer. Noch kürzer wird's mit einem vollständig externen Quarzoszillator (Vierbeiner), aber der braucht deulich mehr Platz als die sinnvollste Lösung: externe Pullups.
Steht doch im Datasheet vom Zetex: Softstart-Kondensator an ADJ.
Ehe man die Hardware so unveränderlich macht sollte das Ganze getestet sein :-( Externe Pullups sind das einzig sinnvolle, die kann man auch noch auf eine fetige Platine auflöten wenns ein Einzelstück ist. Wenn nicht kann man das Layout immer ändern.
softstart-kondensator? was soll das nun wieder für ein murks werden? ich denke da soll eine PWM rein - na dann viel spaß mit dem C da dran!
Udo. R. S. schrieb:
> Externe Pullups sind das einzig sinnvolle,
Aber nur solange, bis man ins Datasheet schaut. Demzufolge ein Pullup
für Festbeleuchtung sorgt, für Dunkelheit aber GND. Und deshalb ein
Kondensator nach GND empfohlen wird.
Ben _ schrieb: > softstart-kondensator? was soll das nun wieder für ein murks werden? ich > denke da soll eine PWM rein - na dann viel spaß mit dem C da dran! Originalinfo Datasheet, sogar mit Bild. Man kann den ADJ zwar auch direkt mit PWM füttern, aber ebenso mit Gleichspannung. Wofür dann ein R/C-Glied sorgt, dessen C nebenbei den Softstart mitbringt. Ob ein Pulldown-Widerstand was bringt wäre zu untersuchen. Der Pin ist nicht stromfrei, könnte sein dass der etwas arg niederohmig ausfallen muss.
und daß du damit die PWM versaust steht da bestimmt nicht drin. daran muß der doofe entwickler selber denken. entweder einen pulldown oder pullup, der für stabile verhältnisse sorgt bis der µC die kontrolle übernimmt - alles andere erscheint mir sehr zweifelhaft.
Ben _ schrieb: > und daß du damit die PWM versaust steht da bestimmt nicht drin. Ist sogar beabsichtigt. Ein richtig dimensioniertes R/C-Glied versaut die PWM dermassen gründlich, dass eine geeignete Gleichspannung als Steuerspannung entsteht (PWM als DAC). > muß der doofe entwickler selber denken. entweder einen pulldown oder > pullup, Yep, Pulldown <= 5K müsste funktionieren.
yep klasse idee, das mit der gleichspannung. mal sehen wie lange es dauert bis aus dem Zetex wegen der verlustleistung ein Zet-Ex wird!
Bin ich hier eigentlich der einzige, der sich mal die Mühe gemacht hat ins Datasheet reinzusehen: "The ADJ pin can be driven by an external dc voltage (VADJ), as shown, to adjust the output current to a value above or below the nominal average value defined by RS.". Der ZXLD1356 ist ein Schaltregler, der über den ADJ-Pin wahlweise per PWM oder per Gleichspannung gesteuert wird.
Lothar Miller schrieb: > Klaus Falser schrieb: >> Wenn die Pins am Anfang als Ausgänge geschalten sind und deshalb >> hochohmig, ... > Häh? > Oh jeh, habe natürlich Eingänge gemeint.
Schaltplan ist auch so klar, mir jedenfalls. Der Controller-Pin liegt offenbar direkt am ADJ-Pin vom Zetex. Im offenen Zustand sorgt das für einen genau definierten Strom durch die LED. Kriegt man komplett weg mit einem Pegel unter 0,2V, was bei den internen 1,25V/50KOhm mit etwas Reserve auf besagte <= 5K rausläuft.
Ist das denn bei DMX sooo schlimm das die LED kurz auf blitzen?? Ich würde die Zeit vergrößern und im Datenblatt schreiben das das so sein soll :) It's not a bug it's a feature...
A. K. schrieb: > Schaltplan ist auch so klar, mir jedenfalls. Der Controller-Pin liegt > offenbar direkt am ADJ-Pin vom Zetex. Im offenen Zustand sorgt das für > einen genau definierten Strom durch die LED. > > Kriegt man komplett weg mit einem Pegel unter 0,2V, was bei den internen > 1,25V/50KOhm mit etwas Reserve auf besagte <= 5K rausläuft. Nein, als erstes hat er ja geschrieben, dass er den Pin über einen Transistor ansteuert. Deshalb ja auch bei logisch 1 LED aus und bei logisch 0 Leds an. Ich würde einfach einen Pull Down an der Adj. Pin setzen und dann mit PWM drangehen. Michael
Moment mal A. K.
Ich arbeite nebenbei noch und habe keine zeit mir noch ein Datasheet
rauszusuchen zumal die Typbezeichnung nicht mal konkret war. Wenn dann
häng(t) halt das Sheet zumindest mit an.
Ausserdem Zitat:
>ein PWM mit DutyCycle 100% entspricht Helligkeit "0"
Also ist Helligkeit 0 wenn die PWM dauerhaft 'high' bzw. wohl 5V bringt.
So zumindest muss man es verstehen. Also ext. Pull UP
OK, also vielen Dank zunächst für die vielen Antworten. RC-Gleid fällt weg, da ich das PWM-Signal für einen stabilen Arbeitspunkt der LEDs brauche (Weißlichterzeugung). Wie gesagt, kann ich an der Hardware nix mehr ändern, d.h. es müsste etwas softwaremäßiges her...
wenn du an der HW nichts mehr ändern kannst, also nichtmal SMD pullups oder so zwischenlöten kannst dann war's das. deine software macht bereits alles was sie kann.
Dein Problem ist die Zeit, bevor die Software überhaupt anläuft. Wie soll die Software dann daran etwas ändern?
Eine Zeitreisemaschine in und für Software wäre vielleicht eine Lösung, allerdings scheint es das in der Codesammlung noch nicht zu geben. Musst Du also selber schreiben... ;)
Folgendes funktioniert:
1 | _delay_ms(-50); |
2 | portb = 0xFF; |
3 | ddrb = 0xFF; |
Andy schrieb:
> @Karsten: Habs probiert, geht leider nicht... :-)
Kein Wunder! portb und ddrb sind ja auch klein geschrieben ;)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.