Forum: Mikrocontroller und Digitale Elektronik LM2596 per Arduino schalten


von Olli Z. (z80freak)


Lesenswert?

Der LM2596 hat ja an Pin 5 einen On/Off Eingang. Liegt der auf GND, wird 
geregelt, liegt er oberhalb von 3V(?) ist er aus.
Kann ich hier einfach direkt einen Arduino-Port zu, schalten nehmen? 
Oder muss da noch was davor?
Damit der Startzustand stimmt, sollte Pin per Pullup auf 5V.
Habe Sorge, das ich mir darüber irgendwie was in den Arduino ziehe..

von chris (Gast)


Lesenswert?

Pull up ist top speziell wenn man alles einschaltet.
Zusätzlich ein seriellen Widerstand in die Leitung vom LM und Arduino 
falls das ding doch mal defekt sein sollte damit evtl Höhre Spannungen 
den Arduino nicht beschädigen. Kannst ihn aber sonst direkt verbinden.

von Karl (Gast)


Lesenswert?

chris schrieb:
> Pull up ist top speziell wenn man alles einschaltet.

Was soll einem dieser Satz sagen? Bin ich der einzige der es nicht 
versteht?

von Olli Z. (z80freak)


Lesenswert?

Es ist so: Wenn ich den Pin 5 des LM über einen 10k Widerstand mit 
seiner Speisespannung verbinde, bleibt er an. Mit einem 1k Widerstand 
geht er aus. Es muss wohl ein ganz schön hoher Strom fliessen, damit er 
schaltet...

So "besonders" wird der Zustand in meiner Schaltung nicht sein, daher 
muss ich ihn schon beachten. Ich will geziehlt einschalten.

Der Arduino hat ja Tri-State Ausgänge, die sind beim einschalten 
hochohmig. Der Pullup muss also den Normalzustand abbilden.

Durch die Software lege ich den Ausgang dann auf High und wenn ich 
einschalten möchte auf Low.

Leider zeigte ein experiment, das der Arduino sich über den Pin mit 
Strom versorgt, er geht nämöich an, sobald ich die Schaltung so aufbaue 
und den Arduino selbst noch nicht am Strom hab! Also sogar im Tristate 
Mode!! Das hat mich schon etwas verwundert.

Anscheinend zieht er sich über die internen Pullups den nötigen Strom 
aus meiner Quelle.

von M. K. (sylaina)


Lesenswert?

Olli Z. schrieb:
> Anscheinend zieht er sich über die internen Pullups den nötigen Strom
> aus meiner Quelle.

Schließe den Arduino doch einfach mal über eine Diode an den LM2596 an 
(Flussrichtung: Arduino -> LM2596). Wenn der Leckstrom der Diode gering 
genug ist dürfte im Falle eines Falles der Arduino sich keine Versorgung 
vom LM2596 einfangen.
Alternativ kann man auch mit dem Arduino z.B. einen BC547 ansteuern der 
dann den ON/OFF-Pin (der über einen Pull-Up an seiner Versorgung klemmt) 
des LM2596 auf GND zieht.

: Bearbeitet durch User
von Eberhard H. (sepic) Benutzerseite


Lesenswert?

Olli Z. schrieb:
> Es ist so: Wenn ich den Pin 5 des LM über einen 10k Widerstand mit
> seiner Speisespannung verbinde, bleibt er an. Mit einem 1k Widerstand
> geht er aus. Es muss wohl ein ganz schön hoher Strom fliessen, damit er
> schaltet...

Der Pull-Up-Widerstand vom OFF-Pin an die Versorgungsspannung* des 
LM2596 versorgt dein Board über die Substratdiode des verwendeten 
µC-Ausgangs.

Erst wenn der Strom ausreichend groß bzw. der Pull-Up-Widerstand 
ausreichend klein ist, so dass an der Board-Last der High-Pegel des 
OFF-Pins überschritten ist, schaltet der LM2596 ab.

Das sind typisch 1,3V bis maximal 2V, womit dann auch dein Board 
rückwärts versorgt wird (deshalb ist der nötige Strom durch den 
Pull-Up-Widerstand so groß), das bei dieser Spannung möglicherweise 
sogar in einem undefinierten Zustand ist. Das ist also eine denkbar 
schlechte Lösung.

Abhilfe schafft der bereits vorgeschlagene** NPN-Transistor, der vom µC 
per Push-Pull-Ausgang über einen Basiswiderstand angesteuert wird.

Statt dem NPN-Transistor kannst du auch einen kleinen N-Kanal-MOSFET 
nehmen, der dann einen Pull-Down-Widerstand vom Gate nach GND haben 
sollte, damit der LM2596 wunschgemäß abgeschaltet ist, solange der µC 
nicht läuft.

Eine andere Lösung wäre ein Switcher mit einem Enable- statt einem 
Shutdown-Eingang.
Dann kann der µC den Switcher direkt ansteuern und es ist auch nur ein 
hochohmiger Pull-Down-Widerstand zwischen Enable und GND nötig (also 
kein Pull-Up mehr).

Spontan fällt mir bezüglich Enable ein MIC4685WR ein, der aber nicht 
pinkompatibel zum LM2596 ist und auch nur maximal 30V am Eingang 
verträgt (ein MIC4576 sollte bis maximal 36V am Eingang direkt mit dem 
LM2596 austauschbar sein, also ebenfalls mit Shutdown-Pin).

Ebenfalls mit Enable-Pin und sogar noch etwas vielseitiger (aber mehr 
Pins) wäre der LM2676.

* Am Shutdown-Pin des LM2596 dürfen maximal 25V anliegen, also Vorsicht 
bei Pull-Up.

** Der Vorschlag von Michael Köhler (sylaina) mit der Diode wird nicht 
klappen (der LM2596 lässt sich dann nicht durch den µC per Low-Signal 
aktivieren).

von M. K. (sylaina)


Lesenswert?

Eberhard H. schrieb:
> ** Der Vorschlag von Michael Köhler (sylaina) mit der Diode wird nicht
> klappen (der LM2596 lässt sich dann nicht durch den µC per Low-Signal
> aktivieren).

Stimmt, das mit der Diode kann nicht funktionnieren da der Strom durch 
den Pull-Up ja nicht mehr in den LM2596 fließen soll sondern direkt zur 
Masse. Darüber habe ich heute morgen gar nicht nachgedacht.

von Wolfgang (Gast)


Lesenswert?

Olli Z. schrieb:
> Leider zeigte ein experiment, das der Arduino sich über den Pin mit
> Strom versorgt, er geht nämöich an, sobald ich die Schaltung so aufbaue
> und den Arduino selbst noch nicht am Strom hab! Also sogar im Tristate
> Mode!! Das hat mich schon etwas verwundert.

Das ist verwunderlich, dass du dich darüber wunderst. RTFM sag ich nur.

Guck dir doch mal im Datenblatt von dem Prozessor, der auf deinem 
Arduino Board werkelt, die unter "Electrical Characteristics" 
angegebenen "Absolute Maximum Ratings". Dann wirst du feststellen, dass 
als maximale Spannung am Pin irgendetwas in der Größenordnung von 
VCC+0.5V zulässig ist - auch bei VCC=0V gilt dies. Wenn du dann 5V 
anschließt, fließen die munter über die integrierten Schutzdioden, die 
du in der Abbildung "I/O Pin Equivalent Schematic" siehst, und das 
finden die oft gar nicht lustig.

von Olli Z. (z80freak)


Lesenswert?

Vielen Dank für die ausführliche Erläuterung!
Ich denke das beste/sicherste ist wirklich ein separater Transistor.
Da die Eingangsspannung auf keinen Fall die 25V überschreitet, wäre,die 
Idee so:
 1k Ohm Pullup von Vcc des Wandlers auf /Shutdown des LM2596.
 NPN-Transistor vom gleichen Pin auf Masse. Basis an einen 10k Ohm.
 (kann ich beides direkt auf dem Modul anbringen).
 GND und Basis-Vorwiderstand zum Arduino führen.
So habe ich auch wieder eine gerade Logik. Low bedeutet aus und High 
dann an.

Bem Pullup habe ich mit 10k keinen Erfolg gehabt, obwohl im Datenblatt 
von 1,3 a 2V und wenigen uA die Rede ist. Erst bei ca. 2k gings. Da sind 
wir aber schon im mA Bereich!

von Eberhard H. (sepic) Benutzerseite


Lesenswert?

Olli Z. schrieb:
> Vielen Dank für die ausführliche Erläuterung!
> Ich denke das beste/sicherste ist wirklich ein separater Transistor.
> Da die Eingangsspannung auf keinen Fall die 25V überschreitet, wäre,die
> Idee so:
>  1k Ohm Pullup von Vcc des Wandlers auf /Shutdown des LM2596.
>  NPN-Transistor vom gleichen Pin auf Masse. Basis an einen 10k Ohm.
>  (kann ich beides direkt auf dem Modul anbringen).
>  GND und Basis-Vorwiderstand zum Arduino führen.
> So habe ich auch wieder eine gerade Logik. Low bedeutet aus und High
> dann an.
>
> Bem Pullup habe ich mit 10k keinen Erfolg gehabt, obwohl im Datenblatt
> von 1,3 a 2V und wenigen uA die Rede ist. Erst bei ca. 2k gings. Da sind
> wir aber schon im mA Bereich!

Zunächst heißt das verflixte Pin !ON/OFF oder Shutdown (nicht /Shutdown, 
ggf. aber /Enable)) und das Versorgungs-Pin heißt Vin (nicht Vcc).

Du musst den Pull-Up zum Deaktivieren ohne µC auf jeden Fall an Vin des 
LM2596 legen. Mehr als 100µA müssen laut Datenblatt keinesfalls in das 
Shutdown-Pin geliefert werden. Je nach minimaler Versorgungsspannung des 
LM2596 kann der Pull-Up auch deutlich hochohmiger ausfallen (z.B. 47 
kOhm, wie bei einem Datenblattbeispiel, 10 kOhm sind aber bestimmt auch 
OK) - solange man nicht versucht, über diesen Widerstand ein ganzes 
Arduino-Board zu versorgen! ;-)

Mit dem vorgeschlagenen NPN oder einem N-Kanal-MOSFET zwischen µC und 
LM2596 klappt das.

von Olli Z. (z80freak)


Lesenswert?

Hab es jetzt wie besprochen aufgebaut. Klappt wunderbar!

Als Widerstand habe ich einen 2.4 kOhm genommen (hatte ich grad zur 
Hand). Als Transistor einen BC547.

Der Arduino kommt nur auf Masse und über einen 10kOhm an die Basis des 
Transistors. Darüber bekommt er auch keinen Strom. Alles gut.

Die Schaltung hat dadurch einen definierten Einschaltzustand.

ZIEL ERREICHT!

Ich bedanke mich sehr herzlich und wünsche eine gute Nacht.

P.S.: Fürs nächste mal suche ich mir ne andere KSQ, die sowas von hause 
aus drauf hat...

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.