Hallo, ich bin gerade dabei mir eine Beleuchtung mit RGB-LED-Strips zu basteln und hätte gerne euer Feedback zur Auslegung des PWM-Controllers bevor ich weitere Teile bestelle und verbaue. Die LED-Strips haben bis zu 300 RGB LEDs, von denen immer 3 in Reihe mit passenden Vorwiderständen für den Betrieb an 12V geschaltet sind. Der maximal zu schaltende Strom pro Farbe beträgt 20mA * 300 LEDs / 3 LEDs = 2A. Die Steuerung übernimmt ein ATTiny2313, der über RS485 seine Befehle bekommt und 3x 16bit PWM ausgibt (2x Hardware-PWM, einmal mit 8bit Timer getrickst) Jetzt die erste Frage: Wie hoch sollte ich die PWM-Frequenz wählen? Da die LEDs den Raum nur indirekt beleuchten (Reflexion an Rauhfasertapete an Wand und Decke), denke ich dass alles ab 25Hz okay sein sollte. Maximal könnte ich mit dem Tiny auf ca. 300Hz gehen. Was meint ihr? Die zweite Frage hängt von der Antwort auf die erste ab :) : Welcher Transistor kann direkt vom ATTiny2313 getrieben werden und bis 2A ohne aufwendige Kühlung schalten? Aus der MOSFET-Übersicht habe ich mir bisher IRLZ34N und IRLU024N etwas genauer angesehen und geprüft wie sie sich bei 2A Dauerstrom verhalten: IRLZ34N: Bei 175° junction temperature (worst case), einer Gate-Spannung von 5V und 2A I_DS fallen am Transistor ca. 0,2V ab, also eine Verlustleistung von 0,4W. Ohne Kühlkörper (R_JA = 62°C/W) wird die Schaltstelle also weniger als 25°C wärmer als die direkte Umgebung -> OK. IRLU24N: Bei gleichen Annahmen fallen am Transistor ca. 0,3V ab, also eine Verlustleistung von 0,6W. Ohne Kühlkörper (R_JA = 110°C/W) wird die Schaltstelle also weniger als 66°C wärmer als die direkte Umgebung -> kritisch, lieber Kühlkörper vorsehen... Was in der Betrachtung fehlt ist das Verhalten beim Umschalten; da fehlt mir etwas das Wissen zur richtigen Betrachtung. Gibt es Erfahrungswerte für den Innenwiderstand eines ATTiny2313-Pins mit dem man die Zeitkonstante fürs Umladen der Gate-Kapazität (IRLZ34N:880pF, IRLU24N:480pF) bestimmen könnte? Wenn das bekannt ist: Hält der AVR das aus, wenn er das ohne extra Widerstand 50 - 600 Mal in der Sekunde machen soll? Was sagt der MOSFET dazu? Danke und Grüße Ladde
Ich habe gerade im Artikel FET die Berechnung der Schaltverlustleistung gefunden. Mit 300Hz PWM-Frequenz, 12V und 2A komme ich für beide MOSFET-Typen auf Verlustleistungen < 1mW => absolut unkritisch. Zurück zur Frage, ob der Tiny ohne Treiber ausreicht: Ich veranschlage mal (keine Ahnung ob das Sinn ergibt), dass der Tiny zum umladen des Gates nicht länger als die fall/rise-Zeit des MOSFETS brauchen soll, also 29ns. Wenn diese 29ns 5 Tau entsprechen sollen, ergibt sich tau zu ca. 6ns und der Gate-Widerstand zu 6,82 Ohm (IRLZ34N) bzw. 12,5 Ohm (IRLU24N). Damit ergäbe sich im Umschaltmoment ein theoretischer Strom von 733mA (IRLZ34N) bzw. 400mA (IRLU24N) => beides weit außerhalb der max. 40mA des Datenblatts. Will ich den Strom auf 40mA begrenzen, müsste ein Widerstand mit 150 Ohm (E12-Reihe) her. Kann ich die Schaltverluste dann mit t(rise/fall) = 5 * tau = 5 * 150 Ohm * C_Gate berechnen? Ergäbe dann 0,1mW (IRLU24N, 25Hz) bis 2,3mW (IRLZ34N, 300Hz) => alles ok :) Ganz schön viele Annahmen, bei denen ich keine Ahnung habe, ob sie sinnvoll sind... Könnte jemand die Ergebnisse bestätigen / berichtigen? Danke & Grüße Ladde
Wenns klein sein soll: IRF7413 Schaltet bei mir 245Hz bei 2,5A und wird nicht warm dabei. Hängt zudem direkt am Atmega64. Ist übrigens auch für eine Beleuchtung: http://www.fritzler-avr.de/HP/DMX_zbel.php 25Hz PWM sollte schon deutlich als geflacker warnehmbar sein, also gib dem Tiny seine 20MHz und vollgas beim 16 bit Timer ;) RS485, klingt so als willste über DMX ansteuern?
Hi, wenn du den uC mit 5V betreibst nimmst du einfach einen Widerstand (irgendwas zwischen 10 und 100 Ohm) vom Portpin zum Gate und das läuft 1A. PWM Frequenz irgendwas zwischen 250Hz und 1kHz. Lg
Hallo Martin, danke für die Antwort. Wenn dein Atmega die 1800pF des IRF7413 problemlos umladen kann, dann sollte mein Attiny mit den 880pF des IRLZ34N ja keine Probleme bekommen :) DMX ist derzeit nicht geplant sondern vorerst ein eigenes abgespecktes Protokoll. Damit lassen sich bis zu 128 RGB-Module (vorerst kommen nur 4 ins Wohnzimmer) vom Sofa aus steuern (Farbton, Sättigung, Helligkeit).
DMX is doch schon abgespeckt bis aufs nötigste? und 128x3 = 384, passt also mit den 512 DMX Bytes. Der RS485 Receiver hängt ja sicherlich am UART? -> gibts fertige Libs zum senden und empfangen für.
Hallo L.P., auch dir danke für die Antwort :) Aus anderen Erfahrungsberichten habe ich herausgelesen, dass der Innenwiderstand eines AVR-IO-Pins bei etwa 25 Ohm liegt und dass bei 10% duty cycle auch ein Kurzschluss (Pin high an GND oder Pin low an 5V) kein Problem ist. Von 10% duty cycle bin ich ja sehr weit entfernt und gehe daher erstmal den einfachsten Weg und mache morgen einen Testaufbau ohne Widerstände. Dass dann pro Portpin kurzzeitig 5V * 5V / 25 Ohm = 1W verbraten werden ist zwar nicht schön aber anscheinend kein Problem. Sollte es doch Probleme geben, kommen eben noch Widerstände dazwischen. @Martin: Was für Abblockkondensatoren hast du denn an deinem Atmega? Reichen 100nF? Edit: DMX werde ich mir morgen früh mal ansehen, hatte bisher nur einen sehr flüchtigen Blick drauf geworfen und mich dann auf mein eigenes Protokoll konzentriert.
Hi, ja LogicLevel FETs kann man auch direkt treiben. Ich persönlich verwende immer 10 Ohm Widerstände wenn ich LL FETs treiben will. 100nF pro Versorgungspin ist i.o. Evtl. kann man noch die uC Versorgung zusätzl. vorher entkoppeln. Dazu geht die im Datenblatt vorgeschlagene Schaltung zur ADC Versorgung. Lg.
Bei Vollast zieht mein Licht 8A und hat 5m Zuleitung, daher der 4700µ Stützkondensator. Nur an dessen Pins gehen die Leiterbahnen zum Prozessor (davor nen 7805). Hat den Hintergrund, dass die Schwankungen so nicht so stark zur Prozessorversorgung durchschlagen. An die Verorgungspins des Prozessors natürlich noch die bekannten 100nF. Die Leiterbahnen im RGB Streifen sind übrigens recht dünn, also so alle 2m nei Einspeisen.
Idee/Tipp: frage mal den China-Dealer deines Vertrauens nach diesen LED-PWM-Controllern (kleine weiße Kiste) mit Fernbedienung. Da ist alles fertig drin. Den Atmega in der Kiste kannst du ja rauswerfen und mit deinem System anschließen. Den IR-Empfänger samt Fernbedienung bekommst du quasi für lau (eventuell musst du mit einem Oszi oder Logic-Analyzer die Befehle noch auslesen). Ich habe so eine Kiste da aber leider kein Knips-Gerät, sonst hätte ich euch mal ein Foto zur Verfügung gestellt.
Hallo und danke für die weiteren Antworten. Ich löte gerade die ersten beiden Controller auf Lochraster zusammen. Anbei Schaltplan und Layout. Im Layout sind noch ne ganze Menge Airwires. Das sind die Verbindungen zum ISP-Port und zu den DIP-Schaltern, die ich "fliegend" mit isolierter Litze verbinde.
Der MAX485 ist falsch beschalten, der kann nichts empfangen,w eil er selber imemr sendet, also schalte DE auch auf Masse. TXD musste dann nicht beschalten, eine Leiterbahn weniger. ich weis ja nicht was du mir 12V Sense erreichen willst, aber gucken ob die Spannung ausfällt kann der nicht, dazu müsst der schon vor der Diode hängen. Dem 7805 fehlen die 100nF Kondis. Die Sromführendne leiterbahnen zu dne RGB Strefien sind VIEL ZU DÜNN. D2 bis D4 brauchts nicht. Die Mosfets kannste auch um 180° Drehen, dann fallen die 3 Drehtbrücken weg. Die "Drahtbrücke" twischen AVR und Gate ist dann ein 100 Ohm Widerstand. Das mit den LEDs rechts an den 820R Widerständen is völlig Banane. Das macht man so: http://www.elv.de/controller.aspx?cid=758&detail=10&detail2=29 Die Leiterbahnen zum DIP Switch kann man intelligenter sortieren, dann überkreuzt sich das nicht. Die Bits musste so oder so per Software zusammenfumeln.
Hallo Martin, danke für die Rückmeldung. Zum MAX485: Ich möchte sowohl empfangen als auch senden können. Daher DE auf 5V und /RE auf GND. Eigene Nachrichten werden in Software ausgefiltert. Habe ich etwas im Datenblatt übersehen, washalb das nicht gehen sollte? Zu 12V Sense: Richtig, damit soll das Wegfallen der 12V festgestellt werden. Ich gehe davon aus, dass die Spannung aufgrund der wechselhaften Belastung stark schwankt und entkoppel deshalb mit der Diode. Wenn die 12V ausfallen, versorgt der Elko noch eine Weile die Logik. Wenn die Elkospannung unter 10V fällt, registriert das der Controller und "fährt runter". Zum 7805: Jo, Kerkos fehlen. Weiß auch nicht, wie das passieren konnte... Mal sehen, ob's auch ohne läuft... Ist nicht schön, aber für die ersten Prototypen leider zu spät zum Ändern. Leiterbahnbreite: Das ganze wird auf Lochraster aufgebaut mit maximal möglichem "Leiterbahn"-Querschnitt. Die Drahtbrücken zwischen FETs und Anschlusklemmen finde ich auch eher blöd, ich versuche mal, die FETs zu drehen. D2-D4: Bei 5m LED-Strip + Zuleitungen kommt schon etwas Induktivität zusammen. Bevor ich mir da mit eventuellen Spannungsspitzen die FETs grille, baue ich lieber ein paar Dioden zur Absicherung ein. LEDs: Mit 5V Versorgung und 2mA LEDs fuktioniert das Setup im Link leider nicht. Habe nach einer Lösung mit möglichst geringem Bauteilaufwand gesucht und mich hieran orientiert: http://www.neufeld.newton.ks.us/electronics/?p=151 Bin selber gespannt, ob es funktioniert ;)
So wie ich das verstanden habe soll es aber auch mehrere Geräte davon geben und wenn alle auf Senden geschalten sind gibts nen schönen kurzen auf dem Bus. Also DE an nen Portpin klemmen mit Senden abgeschalten werden kann. Dazu brauchste kein 12V sense. Wenn der Prozessor bei zu wenig Spannung in Reset gehen soll, dann aktivier den Brownoutdetektor. Oder was läuft da wichtiges drauf was unbedingt vorm abklappen der Versorgung gesichert werden muss?
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.