Wie kann man 5 V von einer 3,3-V-MCU ausgeben?

Gesamtbild: Ich möchte einen LUXdrive 3023 BuckPuck LED-Treiber (3023-DE-1000) von einem Particle Photon (im Wesentlichen einem ARM Cortex M3 Mikrocontroller) steuern. Die MCU läuft mit 3,3 V. Ich habe schon einiges ausprobiert, aber ich bekomme es nicht zum Laufen.

Dies scheint mir ein sehr triviales Problem zu sein, aber selbst hier scheinen meine sehr grundlegenden EE-Kenntnisse unzureichend zu sein.

Der LED-Treiber hat einen Steuerstift, an dem eine Spannung von 0-5 V angelegt werden kann, um den konstanten Strom einzustellen, den der Treiber bereitstellt. Bei 0V gibt es 1A aus und bei 5V gibt es nichts aus. Die 5 V können vom eigenen Referenz-Pin des Treibers genommen oder extern zugeführt werden, wobei in diesem Fall eine gemeinsame Masse zwischen dieser externen Quelle und dem LED-Masse-Pin des Treibers hergestellt werden muss. Laut den Dokumenten zieht der Steuerstift weniger als 5 mA.

Auf der Mikrocontroller-Seite habe ich einen 3,3-V-PWM-Ausgang bei 500 Hz. Die Idee ist, die LEDs zu dimmen, indem das PWM-Signal an den Steuerstift des Treibers gelegt wird und im Wesentlichen sehr schnell zwischen Strom- und keinem Stromausgang wechselt; Ich könnte die LEDs auch dimmen, indem ich den DAC des Mikrocontrollers verwende, um die Spannung am Steuerstift des Treibers zu variieren, was dazu führen würde, dass der Strom variiert. Aber ich habe irgendwo gelesen, dass LEDs glücklicher sind, wenn sie mit ihrer vorgesehenen Stromstärke betrieben und stattdessen zum Dimmen ein- und ausgeschaltet werden.

Wie auch immer, die Frage ist, wie man vom 3,3-V-PWM-Signal der MCU zu den 5 V kommt, die für den Steuerstift des Treibers benötigt werden.

Was ich bisher probiert habe:

Schalten Sie die Referenz- / Steuerpin-Verbindung des Treibers mit einem FET Verwenden Sie einen 2N7000-FET, bei dem der PWM-Ausgangspin der MCU mit dem Gate-Pin, der 5-V-Referenzpin des Treibers mit dem Drain-Pin und der Steuerpin des Treibers mit dem Source-Pin verbunden ist.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Es wurde aber nichts geschaltet. Ich bin mir nicht sicher, ob ich das Tor des 2N7000 mit den 3,3V nicht öffnen konnte oder ob hier ein konzeptionelles Problem vorliegt.

Bringen Sie das 3,3-V-PWM-Signal mit einem Operationsverstärker auf 5 V. Ich habe versucht, das 3,3-V-Signal mit einem LM358-Operationsverstärker, den ich herumliegen hatte, auf 5 V zu erhöhen. Ich habe die Verstärkung mit einem Paar 330-kOhm- und 220-kOhm-Widerständen auf 1,5 eingestellt (was das Verhältnis 330k/220k = 1,5 ergibt).

Während dies die LEDs dimmte, konnte ich sie nicht vollständig ausschalten, dh volle 5 V am Steuerstift des Treibers bereitstellen.

Irgendwelche Tipps oder Empfehlungen?

Ich nehme an, Sie haben den 3,3-V-Regler auf Ihrer Mikrocontroller-Platine weggelassen?
Ja, den Regler habe ich weggelassen. Ich habe auch einen Schaltregler weggelassen, der die 24V auf 5V für die MCU umwandelt (das Netzteil erzeugt 24V).

Antworten (2)

Es hört sich so an, als ob der FET der falsche Typ (NMOS vs. PMOS) oder der 2N7000 relativ hoch gewesen wäre v G S ( T H ) Wert (bei welcher Spannungsdifferenz zwischen G und S "schaltet es sich ein"). Wir bräuchten wirklich einen Schaltplan, wie es angeschlossen war, um genau festzustellen, warum es nicht funktionierte. Aber das 2N7000-Datenblatt gibt dies typischerweise als 2,1 V an, daher muss eine Potentialdifferenz von mindestens so viel bestehen, bevor es überhaupt beginnt, von Source zu Drain zu leiten. (Selbst dann ist es keine lineare Beziehung ... FETs können ziemlich "lustig" sein, so zu arbeiten, wie Sie es erwarten.)

Die Operationsverstärker-Idee war gut, was hätte funktionieren sollen, aber der LM358 ist kein Rail-to-Rail- Ausgangstyp, was bedeutet, dass der Ausgang niemals genau zu jeder Stromschiene gehen wird (weder 5 V noch 0 V genau). kann auf 4,65 V oder so gehen, aber nicht auf 5 V, wodurch der Rest der Schaltung leicht "eingeschaltet" bleibt. Es kann auch ein Problem mit den gewählten Widerstandswerten gegeben haben (solch große Werte können andere, unbeabsichtigte Einflüsse auf den Betrieb haben). Wenn es möglich wäre, die Versorgungsspannung leicht zu erhöhen, beispielsweise 5,5 V, könnte dies das Verhalten "korrigieren". , aber das wäre technisch gesehen ein Hack.

Eine andere Möglichkeit, dies zu umgehen, besteht darin, ein primitives Logikgatter, z. B. ein Gatter der 7400 -Serie, als "Vermittler" zwischen der 3,3-V-Logik und dem 5-V-Signal zu verwenden. Wenn Sie diese Geräte untersuchen, werden Sie bei etwas wie einem 74LS04 feststellen, dass sie eine logisch hohe Übergangsspannung am Eingang haben ( v ICH H ) von etwa 2,0 V. Das heißt, wenn Sie dies mit 5 V versorgen und den 3,3-V-Digitalausgang speisen, wird es dies gerne akzeptieren (es geht über 2,0 V hinaus) und 0 V und 5 V respektvoll ausgeben. Beachten Sie, dass alle anderen Eingänge an einem IC der 74er-Serie entweder mit Vdd oder Vss (+5 V oder Masse) verbunden werden müssen, da er sonst wahrscheinlich zerstört wird. (Eingänge dürfen niemals "schwebend" bleiben.)

Das ist großartig für einen digitalen Ausgang, aber wenn Sie möchten, dass die PWM dem LUXDrive als analoge Spannung präsentiert wird, dann ist die Lösung nicht schwierig - verwenden Sie einfach einen einfachen RC-Tiefpassfilter nach diesem Logikgatter. Der Tiefpassfilter sollte ein sehr tieffrequentes "Knie" haben, idealerweise je niedriger desto besser, damit er so viel wie möglich vom 500Hz-Signal blockiert. Der Ausgang davon sollte hauptsächlich ein DC-Signal sein, das linear proportional zu der PWM ist, die darin eingeht.

Für so etwas würde ich mit LTspice herumspielen , um den Tiefpassfilter zu simulieren und zu "sehen", wie die Ausgabe tatsächlich aussehen wird. Etwas Experimentieren ist angesagt. Dann prototypieren Sie es und sehen Sie, was der LUXDrive macht. Stellen Sie einfach sicher, dass alle Spannungen für jedes Gerät innerhalb der Grenzen liegen, und überprüfen Sie immer die gesamte Verkabelung, bevor Sie Strom anlegen.

Habe gerade einen Schaltplan hinzugefügt

Sie haben die Grundidee richtig, aber Ihre Verkabelung ist ausgeschaltet.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

In diesem Fall wird Ctrl, wenn D1 On/High/3,3 V ist, durch den Transistor oder Mosfet nach unten gezogen. Wenn D1 Aus/Niedrig/0 V ist, wird Ctrl durch R1 hochgezogen. Da Ctrl eine umgekehrte Logik hat, wobei 0 V = Ein, 5 V = Aus ist, müssen Sie Ihre Logik nicht einmal im Code umkehren.

Der Transistor kann jeder übliche Kleinsignal-NPN- oder N-Kanal-Mosfet sein. Der 2N7000 funktioniert, aber ein 2N3904 NPN könnte meiner Erfahrung nach besser sein. Es ist glatter und funktioniert als stromgesteuertes und nicht spannungsgesteuertes Gerät besser mit einer 3,3-V-Quelle. Der 2N7000 sollte bei 3,3 V öffnen, da seine minimale (maximale) Gate-Schwelle bei einer Stromaufnahme von 1 mA 3 Volt beträgt, aber das ist knapp.

R1 kann je nach Bedarf kleiner sein. 1K bis 10K. R2 sollte auf 1K belassen werden, nur um den N-Fet/NPN und den Pin der MCU vor übermäßiger Stromaufnahme zu schützen.

Für kleine Logikpegel-MOSFETs wie den 2N7000, die eine kleine Gate-Kapazität haben, ist R2 überflüssig.
Danke Passant. Ich werde mir einen 2N3904 besorgen und es versuchen. Werde berichten.
@ Jonas 2n3904, 2n2222, BC337, 2N4401 usw. Der spezifische Teil ist unkritisch, jeder gängige Kleinsignaltransistor funktioniert. Du schaltest doch nur 5mA.
@Passerby Ich glaube, es gab ein Missverständnis: Ctrl schaltet LEDs nicht nur bei einer Schwelle von 0/5 V ein / aus, sondern passt den Ausgangsstrom für jede Ctrl-Spannung zwischen 0 und 5 V an. Ich brauche> = 4,5 V an Strg, um die Lichter vollständig auszuschalten. Nach meinen Messungen verhält sich Ctrl wie ein 1,5K-Widerstand. Bei offenem FET (D1 ist Aus/Low/0 V) haben wir also 1K und 1,5K in Reihe, was einen Abfall von 2 V an R1 verursacht und nur 3 V an Strg übrig lässt. Ich brauche mind. 4,5V bei Ctrl aber, also max. 0,5V Abfall an R1, also max. 160 Ohm an R1. Aber mit R1 = 160 und geschlossenem FET fällt R1 alle 5 V ab und brennt 156 mW; nicht ideal für standby :/
Macht nichts, die 156mW werden nur bei eingeschalteten LEDs über R1 abgeführt und verbrauchen selbst sowieso mehrere Watt. Vielen Dank für Ihre Hilfe.