Forum: Mikrocontroller und Digitale Elektronik Auslegung PWM-Controller 2A für RGB-LED-Strips


von L. K. (ladde)


Lesenswert?

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

von L. K. (ladde)


Lesenswert?

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

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

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?

von L. P. (lpg)


Lesenswert?

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

von L. K. (ladde)


Lesenswert?

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).

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

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.

von L. K. (ladde)


Lesenswert?

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.

von L. P. (lpg)


Lesenswert?

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.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

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.

von Brater (Gast)


Lesenswert?

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.

von L. K. (ladde)


Angehängte Dateien:

Lesenswert?

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.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

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.

von L. K. (ladde)


Lesenswert?

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 ;)

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

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
Noch kein Account? Hier anmelden.