Hallo Zusammen.
ich bin derzeit an einem kleinen Projekt. Ich steuere eine High Power
RGB LED (jeweils ca. 600mA) mit einem Atmega328P an. Dafür verwende ich
die Arduino IDE und die LEDs werden mit der PT4115 Konstantstromquelle
versorgt.
3 PWM-Pins des Atmega gehen zu den 3 DIM Eingängen der 3 PT4115
Bausteine.
Der Atmega wird mit einen LM7805 mit 5V versorgt. Die Eingangsspannung
ist ca. 10V.
Am Atmega hängt noch ein IRLML2502, welcher die Versorgungsspannung der
LEDs erst nach ein paar Sekunden zuschalten soll.
http://www.mikrocontroller.net/wikifiles/4/4f/Relais_npn.png
Das rechte Bild: Anstelle des Relais und der Diode könnt euch oben die
10V Versorgungsspannung und an Drain ist GND des PT4115 angeschlossen.
Und anstelle des 100kOhm Widerstandes verwende ich 10kOhm.
Das Problem ist nun. Wenn ich PWM auf 0 setzte blitzen die LEDs die
ganze Zeit ganz leicht.
Lasse ich den Mosfet weg klappt es ohne Probleme aber dann habe ich
andere Probleme mit meinem uC, das er irgendwie nicht ganz genau sauber
aufstartet.
Das ganze ist an einem Steckbrett aufgebaut. Beide Varianten (mit/ohne
Mosfet) Also denke ich an den Dünnen Laborkabeln liegt es nicht.
Wie könnte das mit dem Mosfet zusammenhängen?
Danke
Richard schrieb:> Das rechte Bild: Anstelle des Relais und der Diode könnt euch oben die> 10V Versorgungsspannung und an Drain ist GND des PT4115 angeschlossen.
Es ist i.A. immer(!) eine ganz schlechte Idee, einem IC "seinen" GND
wegzuschalten. Denn damit verleirt der seinen Bezugspunkt und du
verletzt fast automtisch einige der Parameter im Datenblatt.
Dieser DIM-Eingang wäre dann auch der Pin, der zum Ein- und Ausschalten
des Reglers gedacht ist, denn im DB steht:
1
Logic level dimming input. Drive DIM low to turn off the current regulator.
2
Drive DIM high to enable the current regulator.
Also einfach einen 4k7 Pulldown und einen uC-Pin dort anschließen. Der
angeschlossene uC-Pin bleibt ab Reset bis zur Initialisierung nämlich
einfach hochohmig...
> Wie könnte das mit dem Mosfet zusammenhängen?
Hast du z.B. die KSQ und den uC z.B. noch über den DIM-Pin miteinander
verbunden?
> Das Problem ist nun.
Das wir hier eine Ratestunde haben. Du meinst, du hast alles gesagt, und
trotzdem kann laut dieser Beschreibung eine solche Querwirkung
eigentlich nicht sein. Ergo muss da noch mehr sein.
Am einfachsten unterhalten sich Elektroniker mit Schaltplänen. Als
schlechtere Alternative gilt eine Beschreibung und ein brauchbares Foto
vom Aufbau. Unbrauchbar ist eine Textbeschreibung, bei der der
eigentliche Fehler gerne unterschlagen wird.
Anbei der Schaltplan.
Entschuldigung das ich da in PowerPoint reinpfuschen musste, aber ich
hab in Eagle eine fertige PT4115 KSQ gehabt und Importiert somit musste
ich jetzt verschiedene Blätter auf ein Bild ziehen ;-)
Richard schrieb:> Anbei der Schaltplan.
Besser als nix.
Fazit: die Verbindung vom DIM-Eingang des Schaltreglers zum uC macht dir
diese Probleme, wenn du dem Schaltregler die Masse wegnimmst. Denn
wenn diese Masse fehlt, haben alle Pins des Schaltreglers nur noch die
10V von V+ als Bezugspunkt. Und mehr oder weniger diese Spannung wirst
du dann auch an allen Pins haben. Also hat ohne GND-Anschluss der
DIM-Pin irgendwas um 10V.
Und diese 10V gibst du auf den uC-Eingang. Dort geht es dann über die
ESD-Schutzdiode auf Vcc und der uC läuft (mehr schlecht als recht) los.
Natürlich wird aufgrund irgendwelcher Übergangswiderstände die Spannung
am DIM-Pin bei Belastung zusammenbrechen (zum Glück, sonst wäre dein uC
kaputt!). Aber offenbar reicht es aus, um noch irgendwelche seltsame
"Zuckungen" zu tun.
Langer Rede kurzer Sinn:
Keine Bastelei am GND-Pin. Nimm den DIM-Pin zum Abschalten des Reglers.
Ok das mit GND nicht unterbrechen werde ich mir auf jeden Fall merken.
Was wäre denn wenn ich den n-kanal mosfet low side betreibe. Also ich
unterbreche nicht GND sondern VCC? Das sollte theoretisch doch auch
gehen oder?
Richard schrieb:> Was wäre denn wenn ich den n-kanal mosfet low side betreibe.
Genau das tatest du bisher doch schon :-o
> Also ich unterbreche nicht GND sondern VCC?
Das wäre dann also die High-Side, die du in zukunft unterbrechen willst.
Dafür ist ein N-Kanal Mosfet ganz ungünstig, weil der zum
Durchschalten am Gate eine positivere Spannung als an der Source
braucht. Wenn du also 10V durchschalten willst, dann brauchst du am Gate
z.B. 15V oder 20V. Und es ist immer recht kompliziert, so eine Spannung
zu bekommen und die auch noch aufs Gate zu steuern...
> Das sollte theoretisch doch auch gehen oder?
Dann brauchst du einen P-Kanal Mosfet.
Vereinfacht kannst du dir merken:
Negative Seite schalten --> N Kanal mit Source an -
Positive Seite schalten --> P Kanal mit Source an +
Alternativ musst du dir das nicht merken, sondern kannst es dir einfach
jedesmal überlegen. Langfristig ist das besser... ;-)
U. C. schrieb:> Lothar M. schrieb:>> Dann brauchst du einen P-Kanal Mosfet.>> Oder einen fertigen HighSide Switch mit Ladepumpe.> Z.B. einen aus der BTS Reihe
Mir scheint als würden die PWM-Ausgänge auch beim vorgegebenen Wert 0
kurzzeitig aktiv sein. Kannst du das bestätigen?
Das Problem könntes du umgehen indem du den Pin, wenn der Treiber
ausschalten soll, als normalen Ausgang rekonfigurierst und den auf den
niedrigen Pegel steuern lässt. Dann kann man sich zusätzliche
Schaltungen sparen.
Simon schrieb:> U. C. schrieb:>> Lothar M. schrieb:>>> Dann brauchst du einen P-Kanal Mosfet.>> Oder einen fertigen HighSide Switch mit Ladepumpe.>> Z.B. einen aus der BTS Reihe>> Mir scheint als würden die PWM-Ausgänge auch beim vorgegebenen Wert 0> kurzzeitig aktiv sein. Kannst du das bestätigen?> Das Problem könntes du umgehen indem du den Pin, wenn der Treiber> ausschalten soll, als normalen Ausgang rekonfigurierst und den auf den> niedrigen Pegel steuern lässt. Dann kann man sich zusätzliche> Schaltungen sparen.
Ja das ist das Problem. Ich habe die pwm Pins als Output definiert und
den Wert als 0 im Setup().
Aber das bringt nicht den gewünschten Erfolg. Wie definiere ich es denn
zu einem "normalen" Ausgang?
Der DIM Eingang des Reglers hat einen internen Pullup.
Daher wird die LED leuchten, bis der Pin auf Low gezwungen wird.
Im/Nach Reset sind die Pins des erst mal AVR hochohmig.
Die LED leuchtet beim Reset/Poweron
> Ja das ist das Problem. Ich habe die pwm Pins als Output definiert und> den Wert als 0 im Setup().> Aber das bringt nicht den gewünschten Erfolg. Wie definiere ich es denn> zu einem "normalen" Ausgang?
Das kann ich dir leider nicht sagen. Kannst du aber bestimmt auch hier
im Wiki finden.
> Der DIM Eingang des Reglers hat einen internen Pullup.> Daher wird die LED leuchten, bis der Pin auf Low gezwungen wird.> Im/Nach Reset sind die Pins des erst mal AVR hochohmig.> Die LED leuchtet beim Reset/Poweron
Guter Punkt, dann braucht man doch noch einen N-Kanal, der mit Drain am
DIM hängt, mit Source an Masse und am Gate einen pull-up nach VDD hat
und einen zweiten Ausgang vom Mikrocomputer der den Transistor dann
abschaltet, wenn der Regler laufen soll.
Lothar M. schrieb:>> Das sollte theoretisch doch auch gehen oder?> Dann brauchst du einen P-Kanal Mosfet.
Was genau kann ich da denn für einen nehmen?
Strom sind ca 1.8A
VCC ist 10VDC
Brauche ich noch einen wiederstand am p Kanal mosfet? Danke :)
Du brauchst noch mehr, denn wenn dein uC 0V und 5V ausgeben kann, und du
das direkt ans Gate des P-Kanal Fets anschließt, dessen Source an 10V
hängt, dann ergibt das eine Ugs von 10V bzw. 5V und der Mosfet wird nie
(richtig) sperren...
Du brauchst einen Inverter bzw. Treibertransistor davor.
BTW: die Idee mit dem BTS Highside Schalter ist gar nicht mal so
schlecht.
Ich benutze auch den PT4115. Wieso hängst du an den DIM-Eingang nicht
einfach einen Pull-Down? Dann passiert beim Booten kein Blödsinn. Den
MOSFET kannst du dir dann sparen...
Matthias K. schrieb:> Ich benutze auch den PT4115. Wieso hängst du an den DIM-Eingang nicht> einfach einen Pull-Down? Dann passiert beim Booten kein Blödsinn. Den> MOSFET kannst du dir dann sparen...
Das wäre toll. Würde ich gerne ausprobieren. Was für einen
Widerstandswert hast du da genommen?
Pull-Down heisst ja den Widerstand zwischen DIM und GND platzieren,
oder?
Richard schrieb:> Was für einen> Widerstandswert hast du da genommen?
Das kannst du dir ausrechnen!
1. Den Wert des internen Pullups findest du im Datenblatt des PT4115.
2. Die Spannung, bei der DIM auf Aus geht, findest du im Datenblatt des
PT4115.
3. Den max Strom für den Port/Pin findest du im Datenblatt des µC
Der Widerstand muss so klein, dass DIM zuverlässig auf Aus gezogen wird.
Der Widerstand muss so groß, dass dein µC DIM noch gut auf Ein ziehen
kann.
Ist da kein Kompromiss zu finden, bedarf es eines Hilfstransistors.
(warum denke ich überhaupt für dich?)
(ich glaube das lasse ich mal....)
(denken lohnt nicht)
U. C. schrieb:> Der Widerstand muss so klein, dass DIM zuverlässig auf Aus gezogen wird.> Der Widerstand muss so groß, dass dein µC DIM noch gut auf Ein ziehen> kann.
Also die oberen Werte habe ich alle gefunden. Aber genau das Verstehe
ich nicht. Der Pin des Atmega328 ist ja für einen ganz kurzen Moment auf
5V. Dies möchte ich jetzt quasi über den Pulldown laufen lassen. Im
späteren betrieb ist er ja dann auch auf 5V und da soll es dann
plötzlich nicht mehr über den Pulldown gehen. Irgendwie verstehe ich das
nicht was das bringen soll.
R(Pullup, PT4115): 200kOhm
U(DimLow): 0.3V
I(Max current Atmega IO Pin): 0.04A
Raffi schrieb:> Irgendwie verstehe ich das> nicht was das bringen soll.
Das soll dir das gewünschte Verhalten bringen.
Kein Aufblitzen, bei PowerOn/Reset.
U. C. schrieb:> Raffi schrieb:>> Irgendwie verstehe ich das>> nicht was das bringen soll.>> Das soll dir das gewünschte Verhalten bringen.> Kein Aufblitzen, bei PowerOn/Reset.
OK, aber wie funktioniert es?