Hi Leute !!! Ich habe mir vor längerer Zeit aus einem 2 Meter 60 x RGB-LED-Strip (WS2812B) eine Hintergrundbeleuchtung für meinen TV gebaut. > LED-Aufteilung: 20 links und rechts, 2 x 10 oben > Gesamtlänge inkl. Verbindungsleitungen: 2,60 m > Leuchtfarbe: 255:255:230 > Netzteil: 5 V, 4 A Angesteuert wird die Kette von einem ATTiny85, der in Abhängigkeit von der Umgebungshelligkeit die Beleuchtung an- u. ausschaltet. So, das Ganze hat ca. ein Jahr lang wunderbar funktioniert. Seit einiger Zeit jedoch gibt's damit nur noch Probleme, die sich folgendermaßen äußern: Ich schalte den TV ein. Wenn dann irgendwann die Umgebungshelligkeit unter die Schaltschwelle fällt, etwa wenn ich die Jalousie runterlasse, um einen Film zu schauen, sendet der µC den Einschaltbefehl, und alle 60 LEDs leuchten. So weit, so gut. ABER nachdem es dann im Zimmer wieder heller ist (Jalousie wieder oben), und der µC den Ausschaltbefehl gesendet hat, bleiben neuerdings IMMER einige (immer wieder unterschiedliche) LEDs an. Um der Sache etwas auf den Grund zu gehen, habe ich dann einfach mal eine 3-Sekunden-An-Aus-Schleife vom µC ausführen lassen: alle LEDs an -> 3 s -> alle LEDs aus -> 3 s ... . Ca. 60 Sekunden lang nach dem Einschalten funktioniert das Ganze problemlos. Danach leuchten auch hier einige LEDs nach dem Ausschaltbefehl einfach weiter, und zwar zunächst auch immer verschiedene. Nach weiteren zwei drei Minuten dann pendelt sich das Ganze meist auf die letzten 13 LEDs ein, die an bleiben. Manchmal ist es aber beispielsweise auch nur jede zweite LED innerhalb der letzten 13. Und ganz selten kommt es auch vor, daß mal eine LED in einer falschen Farbe leuchtet. Erst wenn ich die Stromversorgung unterbreche, also den Strip ausschalte, dann ein paar Minuten warte (!!!), und anschließend wieder einschalte, geht das Spiel von vorne los. Und genau so verhält es sich leider auch im täglichen Gebrauch der ursprünglichen Programmierung. Der einzige, wenn auch nicht sehr elegante Workaround, der mir jetzt dazu einfällt, wäre, die Schaltung dahingehend zu erweitern, daß der µC nicht nur die eigentlichen Schaltbefehle sendet, sondern auch per Transistor die Spannung des Strips schaltet. Auf diese Weise könnte ich nach jedem Ausschaltbefehl den gesamten Strip einfach ausschalten. Aber wie gesagt, gefällt mir das als "Lösung" nicht wirklich. Ich wüßte schon gern, wieso das Ganze jetzt nach über einem Jahr plötzlich nicht mehr funktioniert. Könnte es sich evtl. rächen, daß ich damals auf den Einbau des empfohlenen Widerstands (30 Ohm - 300 Ohm) in die Steuer- bzw. Datenleitung verzichtet habe, genauso wie auf Schottkys von DI nach VCC und GND nach DI? Ich habe lediglich einen Abblockkondensator (47 µF) für eventuelle Einschaltspitzen verbaut. Grüße, The SphereX
Der 100nF Kerko am Tiny fehlt, laut deiner Beschreibung. Interner Takt? Temperaturdrift des Taktes.(die kann man kompensieren)
Klingt nach Temperaturproblem, weil es erst nach einiger Zeit auftritt.
Teste mal, ob Kältespray auf den Tiny das Problem vorübergehend
beseitigt.
Würde ja auch gut zum Sommer passen ...
Ansonsten bin ich auch der Meinung von Arduino F.:
> Temperaturdrift des Taktes.(die kann man kompensieren)
Viele Grüße, Stefan
:
Bearbeitet durch User
@ Arduino Fanboy Der Kerko ist natürlich sowieso Pflicht, also auch hier selbstverständlich mit verbaut ;-). Der Tiny läuft mit 8 MHz. @ Stefan K. Werde ich mal prüfen. Wobei letzten Sommer hat's ja auch noch einwandfrei funktioniert .... Grüße, The SphereX
Ist dein Netzteil stabil? Ich halte das weder für einen Drift des Taktes noch für ein Temperaturproblem. Ich glaube es liegt (wie so häufig) an der Versorgungsspannung.
Na zumindest ist das Netzteil schon mal so stabil, daß auch nach stundenlanger Vollbeleuchtung (alle 60 LEDs an) absolut nichts flimmert oder dergleichen. Grüße, The SphereX
The SphereX schrieb: > Na zumindest ist das Netzteil schon mal so stabil, daß auch nach > stundenlanger Vollbeleuchtung (alle 60 LEDs an) absolut nichts flimmert > oder dergleichen. Spannender ist was Dein Netzteil bei Lastwechseln macht. D.h. ob beim Einschalten der Vollbeleuchtung die Spannung kurzzeitig einbricht und der Controller zwei Assemblerbefehle überspringt, oder beim Ausschalten der Flyback-Transient irgendwelche Bits kippen lässt, so dass die Beleuchtung gleich wieder angeht. Klemm Dein Oszi an die Stellen, wo die Module bzw der Controller ihre Spannung abnehmen. Und die Masse direkt daneben, nicht 10 cm entfernt anschließen!
Da ich kein Oszi zum Durchmessen besitze und irgendwie auch das Netzteil in Verdacht hatte, habe ich mir kurzerhand einfach ein zweites gekauft. Und obwohl 4 A für die 60 LEDs ja eigentlich ausreichen, habe ich diesmal sicherheitshalber ein 8 A Netzteil genommen. Aber damit funktioniert's leider auch nicht, d. h. das Problem bleibt bestehen :-( . Da es mit Sicherheit nicht schadet, habe ich schließlich noch die hier http://www.led-studien.de/schutzschaltung-fuer-ws2812-pixel/ empfohlene Schutzschaltung nachträglich mit eingebaut. Das hat (natürlich ?) auch nichts gebracht, genauso wenig wie das testweise Erhöhen des µC-Takts von 8 MHz auf 16 MHz. Ich fasse also noch mal kurz zusammen: Nachdem das Ganze ca. ein Jahr lang fehlerfrei funktioniert hat, besteht jetzt das Problem nach wie vor darin, daß ich alle 60 WS2812B LEDs der Kette per µC-Befehl zwar angeschaltet bekomme, jedoch nach einem Auschaltbefehl aller LEDs IMMER einige einfach weiterleuchten. Ich mußte allerdings feststellen, daß das Problem ausschließlich bei sehr hellen Farben, also etwa der von mir genutzen Farbe RGB 255:255:230, auftritt. Lasse ich die LEDs beispielsweise mit RGB 175:175:175 RGB 87:87:87 oder RGB 252:60:3 leuchten, dann kann ich An- u. Auschaltbefehle senden, so viele ich will, es funktioniert immer problemlos. In dem Sinne : Wenn jemand noch eine Idee hat, wie ich ohne großen Aufwand dieses Problem doch noch lösen könnte .... ? Ansonsten wird mir wohl nichts weiter übrigbleiben, als einen Transistor einzubauen, um dann darüber den µC zusätzlich die Spannung des LED-Strips schalten zu lassen. Sollen die LEDs dann ausgeschaltet werden, setzt der µC einfach VCC auf 0V. Nicht sehr elegant, aber was anderes fällt mir leider nicht mehr ein. Grüße, The SphereX
Warum nimmst du überhaupt RGBs, um dann immer voll weiß anzusteuern? Nimm weiße LED-Streifen. Die schaltest du mit dem Controller ein und aus. Kannst sie auch per PWM dimmen. Ob das jetzt am Netzteil, am Controller, an deiner Ansteuerung oder daran liegt, daß irgendwas zu warm wird, kann man hier doch nur raten.
" ... Warum nimmst du überhaupt RGBs, /um dann immer voll weiß anzusteuern/? ... " Tja, berechtigte Frage. Ich hatte eigentlich nicht vor, weiß zu nutzen, sondern wollte mir irgendeinen Warmton zusammenmischen. Das ist mir letztlich auch gelungen. Das Problem war nur, daß die 60 LEDs mit dieser Farbe den TV-Hintergrund nicht hell genug erleuchtet haben. Da hätte ich also mehr als 60 gebraucht. Allerdings war zu diesem Zeitpunkt schon alles verbaut, d. h. die (Teil-) Strips waren bereits am TV angebracht (angeklebt). Grüße, The SphereX
The SphereX schrieb: > Der einzige, wenn auch nicht sehr elegante Workaround, der mir jetzt > dazu einfällt, Ein zweiter Workaround, der mir einfällt: sende den Ausschaltbefehl mehrfach. The SphereX schrieb: > Da es mit Sicherheit nicht schadet, habe ich schließlich noch die hier > > http://www.led-studien.de/schutzschaltung-fuer-ws2812-pixel/ > > empfohlene Schutzschaltung nachträglich mit eingebaut. Schaden tut sich nicht, aber vielleicht hätte sie genutzt, wenn sie von Anfang an drin gewesen wäre. Wenn praktisch immer die (oder einige der) letzten 13 LEDs betroffen sind, hat vielleicht die 14. von hinten einen Schaden und kann den DO nicht mehr ordentlich treiben.
HildeK schrieb: > hat vielleicht die 14. von hinten einen > Schaden und kann den DO nicht mehr ordentlich treiben. ... oder die 13. hat einen Schaden am Eingang.
The SphereX schrieb: > Ich mußte allerdings feststellen, daß das > Problem ausschließlich bei sehr hellen Farben, also etwa der von mir > genutzen Farbe RGB 255:255:230, auftritt. Lasse ich die LEDs > beispielsweise mit > ... > leuchten, dann kann ich An- u. Auschaltbefehle senden, so viele ich > will, es funktioniert immer problemlos. Das wiederum spricht für ein Problem mit Versorgungsspannungstransienten oder ein thermisches Problem bei den LED-Controllern.
Wolfgang schrieb: > p.s. > Hat jede LED einen eigenen Abblockkondensator oder nur der ATtiny? WS2812B auf einen Stripe - jede Led hat einen? Warum überhaupt WS2812B?
:
Bearbeitet durch User
Hast Du mal Dein Signal an die Leds mit dem Oszi angeschaut? Auffallend ist, dass eher der An-Zustand hängenbleibt. Ev ist Dein Timing am Led-Datensignal grenzwertig. The SphereX schrieb: > empfohlene Schutzschaltung nachträglich mit eingebaut. Das hat > (natürlich ?) auch nichts gebracht, genauso wenig wie das testweise > Erhöhen des µC-Takts von 8 MHz auf 16 MHz. Daraus schliesse ich, dass Du keinen Quarz am Tiny hängen hast? Kannst Du das mal probieren? Kältespray auf den Tiny und/oder die Leds, wenn der Fehler auftritt kann auch interessant sein. Gruß, Stefan
Hi Stefan K. schrieb: > Kältespray Oder 'Druckluft in der Dose' - ist das Gleiche, kostet aber weniger (zumindest auf eBay) MfG
Patrick J. schrieb: > Hi > > Stefan K. schrieb: >> Kältespray > > Oder 'Druckluft in der Dose' - ist das Gleiche, kostet aber weniger > (zumindest auf eBay) Kältespray und Druckluft erfüllen nicht denselben Zweck. Es wird auch kein thermisches Problen sein.
Jörg R. schrieb: > Kältespray und Druckluft erfüllen nicht denselben Zweck. Für den geplanten Einsatz schon, zumindest wenn er letztere Dose kopfüber verwendet. Es klingt aber eher nach einem Problem mit dem Netzteil. Ist das halbwegs hochwertig? Chinakracher im Dauerbetrieb mit Lastwechseln werden nicht alt.
Bla schrieb: > Es klingt aber eher nach einem Problem mit dem Netzteil. Ist das > halbwegs hochwertig? Chinakracher im Dauerbetrieb mit Lastwechseln > werden nicht alt. Netzteil hat er schon getauscht.
Hi Leute !!! Zunächst noch mal vielen Dank für Eure Hinweise und Ratschläge. Ich gehe allerdings mittlerweile auch davon aus, daß obwohl alle 60 LEDs leuchten, irgendeine zumindest bezüglich der Datenweiterleitung nicht mehr korrekt funktioniert. Und diese eine LED ohne Oszi zu finden ist sicherlich kaum möglich. Deshalb habe ich mich jetzt dazu entschieden, einen IRLZ34N Mosfet zu integrieren, der dann, vom µC gesteuert, den Strip bei Bedarf einfach abschaltet. Aber es soll irgendwie nicht sein :-( !!! Ich habe noch nicht so viel mit Mosfets zu tun gehabt. Eigentlich habe ich einen IRLZ34N erst einmal verbaut. Im Prinzip in einer ähnlichen Anwendung. Dabei handelte es sich ebenfalls um eine LED-Kette aus 72 warmweißen LEDs, ausgeführt als so eine Art Blumenstrauß (72 x 3 V, Netzteil: 24 V). Der µC dimmt in dieser Anwendung per PWM über den IRLZ34N den Strauß nach Vorgabe. Das Ding läuft seit Jahren einwandfrei. Ich habe demnach die Beschaltung des IRLZ34N zunächst einfach übernommen und diesen entsprechend mit zwei 10 kOhm Widerständen in die Schaltung für die TV-Hintergrundbeleuchtung eingebaut: 1 x 10 kOhm zwischen PortB.1 des ATTiny85 und dem Gate des IRLZ34N und 1 x 10 kOhm als Pulldown der Gate-Leitung nach Masse. Sooo ... Alles eingeschaltet, und was passiert? Alle LEDs leuchten zwar, es ergibt sich aber leider ein "sehr schöner" Farbverlauf von vollweiß bei den ersten bis zu warmweiß bei den letzten LEDs, anstatt eines komplett vollweiß erstrahlenden Strips :-(. Dazu wird der IRLZ34N auch ganz schön heiß, so daß ich sicherheitshalber erst mal noch einen Kühlkörper angeschraubt habe. Tja, jetzt konnte ich die Hintergrundbeleuchtung zwar über den IRLZ34N nach Bedarf an- u. auschalten, allerdings kam es in dieser Konfiguration zu Farbverfälschungen .... Ich habe dann noch mal zur Beschaltung des IRLZ34N recherchiert, und fand dabei den Hinweis, daß bei meiner 2 x 10 kOhm Beschaltung quasi ein Spannungsteiler entsteht, der aus den 5 V am Ausgang des µC 2,5 V am Gate des IRLZ34N macht. Deshalb schaltet dieser wohl nicht richtig durch (VGS(th) = 2 V), beliefert dabei den LED-Strip nicht ordnungsgemäß, was den Farbverlauf erklärt, und wird außerdem, obwohl für bis zu 30 A ausgelegt, bereits bei 3,6 A sehr heiß, weil RDS(on) bei VGS = 2,5 V zu hoch ist. So habe ich das jedenfalls verstanden. Es wurde empfohlen, als Gate-Widerstand etwa 120 Ohm zu verwenden. Damit sollten um die 4,94 V am IRLZ34N-Gate ankommen, der dann entsprechend auch richtig durchschaltet. Also: 1 x 10 kOhm raus, 1 x 120 Ohm rein. Tja, leider schaltet der IRLZ34N jetzt überhaupt nicht mehr. Nachdem der µC PortB.1 zum IRLZ34N-Gate auf high setzt, messe ich mit dem Multimeter vielleicht für geschätzte 300 ms so was um die 4,9 V am Strip. Danach, obwohl PortB.1 immer noch high ist, wieder 0 V. Entsprechend leuchtet jetzt natürlich überhaupt nichts mehr. In dem Sinne: Was mache ich jetzt noch falsch? Grüße, The SphereX
Deine Recherchen treffen zu. Gib mal die Messergebnisse im Fehlerfall durch (direkt am MOSFET messen): Spannung zwischen G(+) und S(-) Spannung zwischen D(+) und S(-)
OK, ich habe jetzt mal direkt am IRLZ34N (mit der Beschaltung: Gatewiderstand = 120 Ohm, Pulldown = 10 kOhm) nachgemessen, und zwar während der µc aller 15 s im Wechsel PortB.1 high und low geschaltet hat. PortB.1 = low | | 15 s : G-S = 0 V , D-S = 4,65 V | | PortB.1 = high | | 15 s : G-S = 0 V , D-S = 4,65 V | | ..... Am Strip liegen dabei entsprechend immer 0 V an. Grüße, The SphereX
Das klingt nach einem defekt. Wenn der PortPin PortB.1 auf High geht sollte am Gate was zu messen sein. Und zwar in etwa 5V. Hast du einen 2ten IRLZ34 da? Tausche ihn aus. Du kannst auch erstmal den IRLZ34 von PortB.1 trennen und messen ob der Port überhaupt noch schaltet. Wenn nicht, könnte der Controller defekt sein.
Beitrag #5076905 wurde vom Autor gelöscht.
Es ist auch keine gute Idee bei den 2812B die Masse zu schalten. Das durfte ich leider auch schon erfahren. Nach dem Anschalten auch kurz warten und erstmal alle Leds via Daten ausschalten bevor du neue Daten sendest. Frag mich nicht warum, aber das hat bei mir solche Farbfehler beseitigt. Ich hab dir mal den Schaltplan meiner Steuerung angehängt. Die läuft seit 1 Jahr erfolgreich.
@ Max Mustermann Danke für den Hinweis und die Schaltung. @ Dennis K. Also jetzt wird's ganz verrückt. Ich habe den µC einfach mal aus dem Sockel genommen und die Gate-Leitung manuell high gesetzt (Drahtbrücke zum Sockel-VCC). Der IRLZ34N schaltet damit wunderbar durch: > G-S: 5,1 V > D-S: 0 V > am LED-Strip: 5,1 V Nehme ich die Brücke raus (Gate = low), macht er dicht: > G-S: 0 V > D-S: 5,1 V > Am LED-Strip: 0 V Genaus so soll das sein. Warum funktioniert's aber nicht mit µC? Tja, vielleicht weil dieser ja tatsächlich defekt ist? Um das zu verifizieren, habe ich den ATTiny85 ohne jegliche Beschaltung auf's Steckbrett gesetzt, 5 V angelegt, und an PortB.1 gemessen. Und was soll ich sagen: Der µC macht, was er soll. Da liegen aller 15 s jeweils 0 V und 5 V an, genauso wie es mein Testprogramm vorsieht. Kurzum: Der ATTiny85 ist keinesfalls defekt. Aus irgendeinem Grund jedoch schaltet der IRLZ34N nicht, wenn er die 5 V vom PortB.1 des µC bekommt. Kann mir das jemand erklären ??? Grüße, The SphereX
The SphereX schrieb: > Also jetzt wird's ganz verrückt. Ich habe den µC einfach mal aus dem > Sockel genommen und die Gate-Leitung manuell high gesetzt (Drahtbrücke > zum Sockel-VCC). Miss mal den Strom durch die Drahtbrücke. Wenn der deutlich größer als 20 mA ist, könnte das der Grund sein. Dann brauchst du einen Transistor, um den IRL zu schalten.
The SphereX schrieb: > Kurzum: Der ATTiny85 ist keinesfalls defekt. Kann trotzdem sein, wenn er Leistung bringen muss. Brat das Programm doch mal auf einen neuen Tiny! Da der eh gesockelt ist, ist das doch eine leichte Übung. Auch wenn es am Ende nicht der Tiny war, so hast du das damit wenigstens zweifelsfrei ausgeschlossen.
Schaltplan und Code! Aus der Prosa werde ich nicht schlau.
The SphereX schrieb im Beitrag #50771 > Genaus so soll das sein. Warum funktioniert's aber nicht mit µC? Tja, > vielleicht weil dieser ja tatsächlich defekt ist? Um das zu > verifizieren, habe ich den ATTiny85 ohne jegliche Beschaltung auf's > Steckbrett gesetzt, 5 V angelegt, und an PortB.1 gemessen. Und was soll > ich sagen: Der µC macht, was er soll. Da liegen aller 15 s jeweils 0 V > und 5 V an, genauso wie es mein Testprogramm vorsieht. genau das wirst du auch messen wenn du den Pin an Eingang konfiguriert hast und nur den Pullup ein- und ausschaltest. Mit geringer Last am Ausgang tut sich dann nichts mehr. Sascha
@ F. Fo " ... Brat das Programm doch mal auf einen neuen Tiny! ... " Da hätte ich in der Tat auch mal selber drauf kommen können ;-). Leider habe ich momentan kein Zugang zur Schaltung am TV. ABER: @ Sascha Weber " ... genau das wirst du auch messen wenn du den Pin an Eingang konfiguriert hast und nur den Pullup ein- und ausschaltest. Mit geringer Last am Ausgang tut sich dann nichts mehr. ... " Der ATTiny85 befindet sich ja noch auf dem Steckbrett. Ich habe jetzt einfach mal eine 20 mA LED an PortB.1 gehangen und das Testprogramm noch mal laufen lassen. Wenn der µC, oder zumindest PortB.1, tatsächlich defekt wäre, also bereits bei geringer Last wie dem Aufladen der Gate-Kapazität des IRLZ34N einbrechen würde, dürfte die LED ja auch schon nicht mehr leuchten. Das tut sie aber sehr wohl! Also zumindest die üblichen 20 mA der LED stellen kein Problem dar. Insofern gehe ich nach wie vor davon aus, das der ATTiny85 nicht defekt ist. Wenn ich wieder an die Schaltung rankomme, werde ich selbstverständlich das Ganze trotzdem noch mal mit einem anderen µC probieren. Aber ich denke, das Ergebnis wird das gleiche sein. Das Problem muß also woanders liegen. Nur wo? Grüße, The SphereX
Ich habe mich mal noch an einem Schaltplan versucht, da dieser ja auch schon nachgefragt wurde. Grüße, The SphereX
The SphereX schrieb: > Das tut sie aber sehr wohl! Eine moderne LED leuchtet durchaus, mit dem Pullup als Strombegrenzung. The SphereX schrieb: > Also zumindest > die üblichen 20 mA der LED stellen kein Problem dar. Hast du die 20mA gemessen, oder nur geraten? Ich würde einem solchen Stripe ja nicht die Masse entziehen. Eher einen High Side Switch vorziehen. Ich habe übrigens dutzende von deinen FET Schaltungen im Einsatz. Völlig Problemlos. Wofür soll die Schaltung überhaupt gut sein? Um das eingangs genannte Problem zu vermeiden? Dann ist das die falsche Kanone für den Spatzen.
" ... Eine moderne LED leuchtet durchaus, mit dem Pullup als Strombegrenzung. ... Hast du die 20mA gemessen, oder nur geraten? ... " Erwischt! Eher gera... ähhh vorausgesetzt, also als gegeben angenommen ;-). Aber mal davon abgesehen, entnehme ich demnach Deiner Aussage, daß der µC bzw. der PortB.1 trotz leuchtender LED defekt sein kann? Hmmm, das müßtest Du mir aber dann schon noch mal erklären. Und eine weitere Verständnisfrage hätte ich da auch noch: Ein Mosfet ist doch spannungsgesteuert, richtig? Also selbst wenn über den µC-Port nur sehr wenig Strom fließt, müßte die Gate-Kapazität doch trotzdem aufgeladen werden, nur eben langsamer. Das wiederum würde zwar ein schnelles Schalten verhindern, was aber bei meinen paar Schaltvorgängen am Tag wohl eher irrelevant wäre. " ... Ich würde einem solchen Stripe ja nicht die Masse entziehen. ... " Das dies nicht so günstig ist, habe ich mittlerweile auch schon öfter gelesen. Aber ist "High Side" mit NPN so ohne weiteres möglich, oder müßte ich dazu wieder die ganze Schaltung umkrempeln. Und was würde, gesetzt dem Fall, ich bekäme es so zum Laufen wie im Schaltplan, schlimmstenfalls passieren, wenn ich dem LED-Strip zwei dreimal am Tag "die Masse entziehe"? " ... Ich habe übrigens dutzende von deinen FET Schaltungen im Einsatz. Völlig Problemlos. ... " Ich zumindest in einer weiteren Anwendung ja auch (wie hier bereits erwähnt: Beitrag "Re: WS2812B TV-Hintergrundbeleuchtung nach einem Jahr defekt?"). Dort wird zwar gedimmt, der µC steuert den IRLZ34N also per PWM, und die Spannungs-/ Stromverhältnisse sind etwas anders, aber das dürfte ja auf die grundlegende Funktionalität eigentlich keinen Einfluß haben. Deshalb wundert's mich ja auch, daß es in der Schaltung hier eben nicht funktioniert. " ... Wofür soll die Schaltung überhaupt gut sein? Um das eingangs genannte Problem zu vermeiden? ... " Es wäre ein mir wie bereits mehrfach erwähnt zwar unliebsamer, aber dennoch funktionierender Workaround. D. h. immer dann, wenn nach dem Ausschaltbefehl des µC einige LEDs trotzdem weiterleuchten, wäre der IRLZ34N quasi für die Holzhammermethode zuständig und würde dem Strip "einfach den Saft abdrehen". Nenne es meinetwegen stümperhaft, aber was anderes fällt mir leider zur Problemumgehung (nicht Lösung!) nicht ein. Grüße, The SphereX
The SphereX schrieb: > Aber mal davon abgesehen, entnehme ich demnach Deiner Aussage, daß der > µC bzw. der PortB.1 trotz leuchtender LED defekt sein kann? Hmmm, das > müßtest Du mir aber dann schon noch mal erklären. Und eine weitere > Verständnisfrage hätte ich da auch noch: Ein Mosfet ist doch > spannungsgesteuert, richtig? Also selbst wenn über den µC-Port nur sehr > wenig Strom fließt, müßte die Gate-Kapazität doch trotzdem aufgeladen > werden, nur eben langsamer. Das wiederum würde zwar ein schnelles > Schalten verhindern, was aber bei meinen paar Schaltvorgängen am Tag > wohl eher irrelevant wäre. der Pullup ist glaube ich so ca. 50k bei den AVRs, durch den 10k vom Gate nach GND hast du einen Spannungsteiler und da bleiben dann <1V damit schaltet der FET nie. Sascha
Sascha W. schrieb: > der Pullup ist glaube ich so ca. 50k bei den AVRs, eher so: 20k bis 50k Erhebliche Temperaturabhängigkeit und Exemplarschwankungen. The SphereX schrieb: > Aber mal davon abgesehen, entnehme ich demnach Deiner Aussage, daß der > µC bzw. der PortB.1 trotz leuchtender LED defekt sein kann? Habe ich weder gesagt, und schon gar nicht gemeint. Wenn du schon wild interpretierst, dann auch richtig: Ich habe damit behauptet, dass du anstatt den Pin hoch und runter zu ziehen, nur den Pullup ein und aus schaltest.
OK, jetzt habe ich zumindest verstanden, worauf Ihr hinauswollt. Euer Verdacht geht also dahin, daß der PortB.1 defektbedingt oder durch mich falsch konfiguriert nicht als Ausgang, sondern als Eingang geschaltet ist, und ich quasi nur den internen PullUp ein- u. ausschalte. Also eine softwareseitig falsche Konfiguration liegt definitiv nicht vor. Das kann ich also schon mal ausschließen. Und falls PortB.1 defektbedingt nur noch als Eingang fungierte (wie auch immer das technisch zu erklären wäre), würde die testweise angeschlossene LED bei einem angenommen Minimalwert von 20k für den internen PullUp wohl nicht mal glimmen. Tatsächlich hat diese allerdings so hell geleuchtet, wie eine rote LED dieser Form und Größe unter optimalen Voraussetzungen wohl nur leuchten kann, nämlich ziemlich hell! Grüße, The SphereX
...hmpf, ich schmier auch mal meinen Senf dazu, evtl hab ichs ja überlesen, aber an der Stelle wo die Schaltung modifiziert wurde (120 Ohm R an µc Port pin -> MosFet gate) hast du das Folgende mal gecheckt? S. R. schrieb: > Miss mal den Strom durch die Drahtbrücke. Wenn der deutlich größer als > 20 mA ist, könnte das der Grund sein. Dann brauchst du einen Transistor, > um den IRL zu schalten. die avr megas können wohl bis 50mA mit den port pins treiben, bei den tinys bin ich mir da nicht so sicher. (5V / 120 = ~ 41,6mA das könnte evtl schon hart an der Grenze sein, mal den Strom begrenzen das sagen wir mal wirklich nur 20mA durchgehen und dann gucken ob der FET dann noch schaltet bzw weit genug auf macht.
The SphereX schrieb: > Also eine softwareseitig falsche Konfiguration > liegt definitiv nicht vor. Nimm es mir bitte nicht übel, aber genau das glaube ich dir nicht. Solange nicht, bis ich den Gegenbeweis sehe. Und, dass der Pin defekt ist, kann ich auch erstmal nicht glauben.... Bin sowieso ganz schlecht im Glauben. Das ist nun wirklich keins meiner Spezialgebiete. Mit prüfen und messen ist man im µC Bereich meist viel besser bedient. Doch: Ich glaube daran, dass die Dummheit des Menschen grenzenlos ist. (zumindest meine, manchmal) Ch.G. schrieb: > nur 20mA durchgehen und dann gucken ob der FET dann noch schaltet bzw > weit genug auf macht Der Strom fließt nur kurze Zeit, bis die Gatekapazität geladen ist. Das schafft jeder, auch noch so kleine, AVR problemlos. Klar könnte man von 120R auf 220R hoch gehen... Aber das wird hier keinen Erfolg bringen.
The SphereX schrieb: > ATTiny85___WS2812B.png > > 16 KB, 41 Downloads Den Fet hast du doch erst nachträglich rein gebaut, ist das so?
The SphereX schrieb: > Also jetzt wird's ganz verrückt. Ich habe den µC einfach mal aus dem > Sockel genommen und die Gate-Leitung manuell high gesetzt (Drahtbrücke > zum Sockel-VCC). Der IRLZ34N schaltet damit wunderbar durch: Wie viel Strom brauchst du eigentlich? Ich nehme für viele Sachen den IRLML2502. Ist billig und kann bisschen was an Strom vertragen; außerdem Sot23
Was passiert denn, wenn du die Streifen komplett (erstmal zum testen) an die Versorgung hängst? Im Datenblatt ist doch auch nichts dazwischen.
@ Arduino Fanboy " ... Nimm es mir bitte nicht übel, ... " Niemals ;-) ... " ... Solange nicht, bis ich den Gegenbeweis sehe. ... " In dem Sinne: --------------------------------- $regfile = "attiny85.dat" $crystal = 16000000 $hwstack = 50 $swstack = 50 $framesize = 50 Config Portb.1 = Output Transistor_gate Alias Portb.1 Do Transistor_gate = 0 Wait 15 Transistor_gate = 1 Wait 15 Loop End --------------------------------- " ... Der Strom fließt nur kurze Zeit, bis die Gatekapazität geladen ist. Das schafft jeder, auch noch so kleine, AVR problemlos. ... " Das sollte man wohl denken. Aber in meinem Fall ist das Ganze vielleicht doch eher grenzwertig. Denn immerhin: Als ich noch den 10k Gate-Widerstand drin hatte, hat der IRLZ34N ja sehr wohl geschaltet. In Bezug auf das Ergebnis, sprich die Leuchtfarbe der LEDs, aufgrund der durch den mit dem PullDown entstandenen Spannungsteiler nur noch 2,5 V kleinen VGS zwar eher schlecht als recht, aber der µC konnte ihn zum Schalten bewegen. @ F. Fo " ... Den Fet hast du doch erst nachträglich rein gebaut, ist das so? ... " Korrekt. " ... Wie viel Strom brauchst du eigentlich? ... " 60 x WS2812B @ RGB 255:255:230 = 60 x 60 mA = 3,6 A " ... Was passiert denn, wenn du die Streifen komplett (erstmal zum testen) an die Versorgung hängst? ... " Tja, dann habe ich exakt den Zustand vor dem nachträglichen Einbau des IRLZ34N, und damit natürlich auch genau wieder die Probleme, die ich mithilfe des Mosfet eigentlich umgehen wollte (Siehe Eingangsbeitrag) ;-). Ich habe hier > http://becomingmaker.com/arduino-pwm-mosfet-gate-resistor/ < einen für mich doch sehr aufschlußreichen Artikel gefunden, der das Thema Gate-Strom behandelt. Demnach dürften bei meiner derzeitigen Beschaltung dem PortB.1 des ATTiny85 für die Zeit des Aufladens der Gate-Kapazität rund 34,5 mA abverlangt werden, was in der Tat eigentlich noch im Rahmen des Absolute Maximum Ratings von 40 mA liegt. But who knows? Mir wird wohl nichts anderes übrig bleiben, als es einfach mal mit einem etwas größeren Gate-Widerstand zu versuchen. Grüße, The SphereX
The SphereX schrieb: > " ... Was passiert denn, wenn du die Streifen komplett (erstmal zum > testen) an die Versorgung hängst? ... " > > Tja, dann habe ich exakt den Zustand vor dem nachträglichen Einbau des > IRLZ34N, und damit natürlich auch genau wieder die Probleme, die ich > mithilfe des Mosfet eigentlich umgehen wollte (Siehe Eingangsbeitrag) > ;-). Wenn deine LED-Strips OHNE µC das gleiche Verhalten, wie mit dem µC, an den Tag legen, dann würde ich den Fehler doch bei den LEDs suchen...
The SphereX schrieb: > In dem Sinne: Aua! Das sieht wie Basic aus.... Da bin ich aus dem Rennen. Trotzdem Danke, dass du dich dazu hast breitschlagen lassen, ein Stückchen Code zu publizieren. Wenn auch nicht den Teil, welcher den (ursprünglichen) Fehler verursacht. Aber du wirst schon wissen, was du da tust...
Der Code ist ok. Zum Mosfet kann ich auch nichts sagen. Die Schaltung sieht ok aus und sollte funktionieren. Besser wäre es natürlich den Stripe mit einem Highsider zu schalten, aber das weißt du ja. Zu deinem "Leuchtproblem": Wenn du irgendwo ein Oszi oder Logicanalyzer auftreiben kannst, dann zeichne das mal auf. So ein billiger Saleae nachbau für 8€ geht auch. Wenn du mit deinem Timing hart an der Grenze liegst, dann kann es schon sein dass manche Leds das irgendwann nicht mehr richtig verstehen.
Bist du sicher, dass der 10k Pulldown ein 10k ist. Ggf ist der zu niederohmig und zieht dann bei schwindender Leistung des Tiny die Spannung runter...
Wozu/ Warum soll der Streifen eigentlich seperat geschaltet werden?
Ralf G. schrieb: > Wozu/ Warum soll der Streifen eigentlich seperat geschaltet > werden? Lies den Thread: Beim Abschalten einiger LEDs bleiben manche LEDs an. Aus irgendeinem Grund.
Arduino F. schrieb: > Schaltplan und Code! > Aus der Prosa werde ich nicht schlau. S. R. schrieb: > Lies den Thread: Ach, der Würgeround mit MOSFET und die Schutzdioden in der DATA-Leitung sind nachträglich dazugekommen? ^^
Das Abschalten macht auch wegen der Stromaufnahme Sinn. Die Stripes ziehen im ausgeschaltetem Zustand auch noch ein bisschen Strom
Na hier sind ja schon wieder einige Antworten eingegangen. Sehr schön :-). @ Arduino Fanboy " ... Trotzdem Danke, dass du dich dazu hast breitschlagen lassen, ein Stückchen Code zu publizieren. Wenn auch nicht den Teil, welcher den (ursprünglichen) Fehler verursacht. ... " Wenn ich mich mit entsprechenden Fragen hier im Forum zu Wort melde, überlege ich mir vorher eigentlich immer, welche Informationen nötig sind, um mein Problem möglichste verständlich zu schildern. Der Programmcode hat in diesem Fall definitiv nicht dazu gehört. Denn wie bereits erwähnt, hat die TV-Hintergrundbeleuchtung ja ca. ein Jahr lang wunderbar funktioniert. Und ich denke mal nicht, daß sich in dieser Zeit der Code selbst umgeschrieben, also irgendwie verselbstständigt hat ;-). " ... Aua! Das sieht wie Basic aus. ... " Das sieht nicht nur danach aus, das ist es auch. Naja, und das BASCOM hier nicht gerade Begeisterungsstürme auslöst, sondern genauso wie dessen Nutzer bisweilen eher belächelt wird, ist mir auch klar. Mir jedenfalls hat es bei meinen sporadischen Projekten bis jetzt immer gute Dienste erwiesen. Aber das nur mal am Rande. @ Max Mustermann " ... Wenn du irgendwo ein Oszi oder Logicanalyzer auftreiben kannst, dann zeichne das mal auf. So ein billiger Saleae nachbau für 8€ geht auch. ... " Na da hast Du mich jetzt aber richtig neugierig gemacht. Ich dachte eigentlich, daß ich zur Lösung des Grundproblems allein für die nötige Analyse-Hardware einige Scheine hinblättern müßte. Aber nachdem ich mich jetzt mal ein wenig mit dem Thema "Logic Analyzer" beschäftigt habe, mußte ich feststellen, daß man so einen Saleae-Clone ja tatsächlich fast schon hinterher geschmissen bekommt. Und "sigrok PulsView" bringt ja sogar einen "RGB LED string decoder (WS281x)" mit. Damit dürfte es dann wohl doch auch für mich möglich sein, herauszufinden, was bei der Datenübertragung bei welcher LED schiefläuft. Die Sache würde ich demnach evtl. tatsächlich noch mal angehen, wenn der Chinese den Analyzer dann in eins zwei Monaten geliefert hat ;-). " ... Das Abschalten macht auch wegen der Stromaufnahme Sinn. Die Stripes ziehen im ausgeschaltetem Zustand auch noch ein bisschen Strom. ... " Und genau deshalb würde ich den Mosfet auch gern drinlassen, auch für den Fall, daß ich das Ursprungsproblem doch noch gelöst bekomme. " ... Besser wäre es natürlich den Stripe mit einem Highsider zu schalten, aber das weißt du ja. ... " Mittlerweile weiß ich das schon. Nur weiß ich nicht wirklich, warum. Es wäre also sehr nett, wenn Du mir vielleicht kurz erklären könntest, warum das Masseschalten nicht so günstig ist. Was würde schlimmstenfalls bei zwei drei Schaltvorgängen am Tag mit dem LED-Strip passieren? @ Dennis K. " ... Bist du sicher, dass der 10k Pulldown ein 10k ist. ... " Absolut. Grüße, The SphereX
The SphereX schrieb: > Nur weiß ich nicht wirklich, warum. Es wäre also sehr nett, wenn Du mir > vielleicht kurz erklären könntest, warum das Masseschalten nicht so > günstig ist. Ich kenne zwar die WS nicht aus eigener Erfahrung, aber du ziehst der Datenleitung die Füsse weg.
The SphereX schrieb: > " ... Aua! Das sieht wie Basic aus. ... " > > Das sieht nicht nur danach aus, das ist es auch. Naja, und das BASCOM > hier nicht gerade Begeisterungsstürme auslöst, sondern genauso wie > dessen Nutzer bisweilen eher belächelt wird, ist mir auch klar. Das ist mir alles egal, wer was belächelt, oder auch nicht. Fakt ist, dass ich damit noch nie gearbeitet habe. Unbekanntes Gebiet. The SphereX schrieb: > Wenn ich mich mit entsprechenden Fragen hier im Forum zu Wort melde, > überlege ich mir vorher eigentlich immer, welche Informationen nötig > sind, um mein Problem möglichste verständlich zu schildern. Der > Programmcode hat in diesem Fall definitiv nicht dazu gehört. Wenn deine Diagnostischen Fähigkeiten soweit ausgebildet wären, dass du sagen könntest, woran es liegt, oder auch nicht, dann bräuchtest du hier nicht zu fragen. So hältst du die wesentliche Information vor uns geheim. Nicht absichtlich, denn du hältst sie auch vor dir geheim. z.B. das Timing prüfen!!!! The SphereX schrieb: > Und "sigrok PulsView" bringt ja > sogar einen "RGB LED string decoder (WS281x)" mit. Mein Reden! Von Anfang an. Prüfe das Timing. Aber an das Fass wolltest du ja nicht ran! Abwehr, bis gerade eben. Aber jetzt, bist du auf dem richtigen Weg. (glaube ich)
F. F. schrieb: > Ich kenne zwar die WS nicht aus eigener Erfahrung, aber du ziehst der > Datenleitung die Füsse weg. Dafür hat er jetzt die Dioden eingebaut, damit der Eingang nicht beschädigt wird. Aber was sonst noch geschädigt werden könnte... Ich würde da lieber auf Nummer sicher gehen. Max Mustermann schrieb: > Das Abschalten macht auch wegen der Stromaufnahme Sinn. Müsste man mal nachmessen. Vielleicht liegt's nur in der Größenordnung eines schlampigen µC-Powermanagments, wo man es selbst nicht so genau nimmt? Den Ruhestromverbrauch des Netzteils schon mal gemessen?
The SphereX schrieb: > Es > wäre also sehr nett, wenn Du mir vielleicht kurz erklären könntest, > warum das Masseschalten nicht so günstig ist. Nur gaaanz grob, Z.B.: - Versorgungsspannung 5V - Spezifikation eines Einganges am µC o.ä. -> zulässige Spannung (meistens) von 0 bis Vcc Gemessen werden diese Werte ... in Bezug zur Masse. Wenn du die jetzt wegnimmst, hat der µC eine Versorgungsspannung 0V und am Eingang, falls gerade 'high' 5V -> siehe Spezifikation Mit den beiden '1N5817' am Eingang schließt du die Überspannung sozusagen kurz.
Wenn ich das ganze Thema hier mit einfacher Logik betrachte, dann kann es nur Der Streifen mit den WS2812 sein. Was haben wir? Neues Netzteil und stärker => Fehler bleibt. µC im Steckbrett getestet => Treibt eine Led => µC demzufolge ok. Programm => lief ein Jahr ohne Problem, läuft auf dem Steckbrett. Versorgung auf der Platine für den µC => laut TO ist die auch ok. Fazit: WS2812 Strippe defekt.
F. F. schrieb: > Wenn ich das ganze Thema hier mit einfacher Logik betrachte, dann > kann > es nur Der Streifen mit den WS2812 sein. > > Was haben wir? > > Neues Netzteil und stärker => Fehler bleibt. > µC im Steckbrett getestet => Treibt eine Led => µC demzufolge ok. > Programm => lief ein Jahr ohne Problem, läuft auf dem Steckbrett. > Versorgung auf der Platine für den µC => laut TO ist die auch ok. > > Fazit: WS2812 Strippe defekt. Gegenrechnung: 1. RC- Oszilator 2. WS2812 = kritisches Timing 3. Erwärmung Fazit: Takt Drift Abhilfe: Oszillator Kalibrieren Temperaturkompensation anhand internem Temp Sensor
So, Leute: Ich habe mich dazu entschlossen, Euren Ratschlägen zu folgen und den Mosfet-Switch als "High-Side" umzubauen. Dazu werde ich den IRLZ34N gegen einen NDP6020P austauschen. Diese Schaltfunktion lasse ich also auf jeden Fall drin. Zudem werde ich mir zur Klärung des eigentlichen Ausschaltproblems mit den LEDs einen dieser 5 € Logic Analyzer bestellen. Tja, dann wäre da aber nach wie vor aktuell noch der IRLZ34N, welcher sich bei Verwendung eines 120 Ohm Gatewiderstands nicht vom ATTiny85 schalten läßt. Und da dieses Problem sehr wahrscheinlich auch beim NDP6020P weiter bestehen bleiben dürfte, mußte hier auch eine Lösung her. @ Arduino Fanboy " ... Der Strom fließt nur kurze Zeit, bis die Gatekapazität geladen ist. Das schafft jeder, auch noch so kleine, AVR problemlos. Klar könnte man von 120R auf 220R hoch gehen... Aber das wird hier keinen Erfolg bringen. ... " UND OB !!! Wie S. R. (svenska) und Ch.G. schon richtig vermutet hatten, sind die 34,5 mA beim Aufladen der Gate-Kapazität dem µC ganz offensichtlich bereits zu viel. Denn mit 240 Ohm (+ 25 Ohm interner Ausgangswiderstand des Ports), also einer Strombegrenzung auf knapp 20 mA, funktioniert's tatsächlich wunderbar. Der IRLZ34N schaltet problemlos durch, und die LEDs leuchten alle ohne Farbverfälschungen. Besonders warm bzw. heiß, wie noch mit dem 10K Widerstand, wird der Mosfet auch nicht. Den Kühlkörper werde ich demnach wohl auch wieder abbauen können. Grüße, The SphereX
The SphereX schrieb: > Wie S. R. (svenska) und Ch.G. schon richtig vermutet > hatten, sind die 34,5 mA beim Aufladen der Gate-Kapazität dem µC ganz > offensichtlich bereits zu viel. Der Pin ist ja auch nur für 20 mA spezifiziert. Wenn ich mich recht entsinne, sind die genannten 40 mA das "absolute maximum rating" - also "gerade noch nicht zerstörend".
Genau so sieht's aus :-) !!! Grüße, The SphereX
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.