Forum: Analoge Elektronik und Schaltungstechnik Spannungsversorgung für µC per Transistor schalten


von Adrian Bergmann (Gast)


Angehängte Dateien:

Lesenswert?

Hallo allerseits,

Vom Elektronik 101 aus dem Studium abgesehen hab ich wenig Ahnung von 
analogen Schaltungen. Und von LTSpice auch nicht so viel :)
Allerdings habe ich momentan für ein Hobbyprojekt eine Aufgabenstellung, 
die ich analog bewältigen muss:

Ein µC soll per Batterie betrieben werden. Wenn ein Taster gedrückt 
wird, soll das Ding anspringen und auch weiterlaufen und sich dann nach 
getaner Arbeit selbständig vom Saft nehmen.
Meine Idee, das zu lösen ist folgende: Der Taster liegt an der Basis 
einer Darlingtonschaltung. Die Versorgungsspannung des Mikrocontrollers 
wird am Emitter des Transistors abgegriffen.
Parallel zum Taster wird die Basis auch von einem Ausgang des µC 
versorgt, sobald der Bootvorgang abgeschlossen ist.
Damit der Taster nicht während des ganzen Bootvorgangs gedrückt bleiben 
muss, habe ich parallel nun noch einen Kondensator mit niedrigem 
Serienwiderstand gelegt. Gedanke war, dass beim Einschalten die 
Zeitkonstante niedrig ist, der C also sofort geladen ist, aber sich beim 
Abschalten langsam über die Basis entlädt (tau >= 1s), so dass die NPNs 
durchlassen, bis die Setup-Routine beendet ist und das Board sich selbst 
am Leben halten kann.

Das Schaltbild anbei soll das Entladeverhalten beschreiben, die 
Spannungsquelle soll hierbei einen Schalter simulieren (Ich bekomme bei 
LTSpice einfach keinen Schalter hin). Allerdings habe ich das Gefühl, 
der Kondensator tut überhaupt nichts - siehe Spannungsverlauf der 
Basisspannung. Nach meinem Verständnis müsste bei ~4.3s die Spannung mit 
einer Zeitkonstante von etwa 1s abklingen, oder nicht?

Darüber hinaus würde mich interessieren, ob meine Schaltung anhand 
meiner Beschreibung überhaupt Sinn macht, oder ob ich irgendwo einen 
riesigen Denkfehler habe und das gar nicht funktioniert, wie ich mir das 
vorstelle.

von Toxic (Gast)


Lesenswert?

Warum muss der uC von der Betriebsspannung abgetrennt werden?
Wenn es nur darum geht die Batterie zu schonen,dann genuegt es 
vollkommen den uC in den Sleep-mode zu versetzen.

von Adrian Bergmann (Gast)


Lesenswert?

Weil zusätzlich noch einiges an Peripherie dranhängt, die zu viel Strom 
zieht, als dass ich sie vom Board aus versorgen könnte. Und wenn ich nur 
das Board schlafen legen würde , würde die den immer noch ziehen.
Könnte ich auch mit Transistoren lösen. Aber meine Variante ist mir 
weniger aufwändig erschienen. Und ich lerne dabei mehr :)

von WehOhWeh (Gast)


Lesenswert?

Du willst quasi den µC mit Taster einschalten, und der soll sich selber 
nach getaner Arbeit abschalten?
Soweit richtig?

Dann wäre ein RS-Flipflop was:
Auf den "Set" - Eingang schaltet dein Taster was drauf, "Reset" bedient 
der µC.
Das Flipflop bleibt an, nachdem es mal ein "1" auf "Set" gesehen hat. 
Ein "1" auf Reset, bewirkt dass es ausgeht.

Das kann man auch mit Transistoren aufbauen - vorzugsweise mit MOSFET, 
weil kein Strom fließen soll. Flipflop ist schon mal gutes Futter für 
Google. "Selbsthaltung" auch.

Es geht auch anders:
Man kann auch den µC in den Deep-Sleep schicken und per Taster wieder 
aufwecken, in dem Fall müsste man die Versorgung nicht abdrehen. Welcher 
µC ist es denn genau?
Der Stromverbrauch in "aus" geht dann hinunter bis zu ein paar 100nA, je 
nach Typ, das ist quasi nicht. Auch für Batterien.

von S. Landolt (Gast)


Lesenswert?

> wird die Basis auch von einem Ausgang des µC versorgt
Der uC kann doch nicht mehr Spannung liefern als am Emitter von Q2 
anliegt - wie soll damit die Basis von Q1 aufgesteuert werden?

> Damit der Taster nicht während des ganzen Bootvorgangs gedrückt bleiben muss
Wie lange dauert dieser?

von HildeK (Gast)


Lesenswert?

Suche mal nach dem AVR-Transistortester von Markus F. oder Karl-Heinz 
Kübbeler hier im Forum.
Oder auch hier: AVR-Transistortester
Dort ist ein solcher Schaltungsteil eingebaut.

von Adrian Bergmann (Gast)


Lesenswert?

An Flipflops habe ich überhaupt nicht gedacht - das ist natürlich viel 
simpler. Sleep-Modus wollte ich aus o.g. Gründen nicht.

Ok, das erübrigt mir die Sache mit dem Kondensator. Aber ich kann ja 
sicher nicht den kompletten Betriebsstrom über das FF laufen lassen.
Wäre folgendes Vorgehen dann korrekt: der Q-Ausgang des FF treibt die 
Basis einer Darlingtonschaltung und der µC und die Peripherie (alles 
5Vcc) wird dann vom Emitter versorgt?

von qwertzuio (Gast)


Lesenswert?

Für sowas gibt es fertige Spannungsregler mit Enable-Eingang. Einen Pin 
im MC zu initialisieren und einen festen Pegel ausgeben geht 
warscheinlich schneller als du den Taster loslassen kannst. Den Rest des 
Bootvorgangs kann man ja danach abfeiern.

von Toxic (Gast)


Angehängte Dateien:

Lesenswert?

Siehe Anhang - sollte vom Prinzip her deinen Wuenschen entsprechen

von Thomas (kosmos)


Lesenswert?

Man könnte auch getrennte Spannungsregler mit Standby her nehmen. Also 
ein sehr sparsamer der nur den uC versorgt und dieser schaltet über den 
Standby-Pin einen größeren für die restliche Peripherie und geht dann 
wieder schlafen.

Ansonsten würde ich für den simplen Vorschlag einen FET nehmen der 
durchgeschaltet bleibt so kann man den Verbrauch noch etwas senken.

von WehOhWeh (Gast)


Lesenswert?

Toxic schrieb:
> Siehe Anhang - sollte vom Prinzip her deinen Wuenschen entsprechen

Ich bin nicht sicher, ob das gescheit funktioniert. Das hängt von den 
Ports ab. Die haben oft Dioden gegen die Versorgung.

D.h. da ist noch eine Diode vom PIN in zu VCC in Flussrichtung drin. Ist 
der µC versorgt, stören sie nicht.
Wenn die VCC aber nicht da sind, fließt da ein Strom und der µC wird 
über den Transistor zugeschaltet. Oder halb zugeschaltet, und es dämmert 
in einem undefinierten Zustand vor sich hin.

Es kann sein, dass einige Ports, z.B. die 5V-toleranten Pins das nicht 
haben. Das stände im Datenblatt.

Aber niemand hindert einem daran, den PNP mit dem Flipflop zu schalten.

von Toxic (Gast)


Lesenswert?

WehOhWeh schrieb:
> Ich bin nicht sicher, ob das gescheit funktioniert. Das hängt von den
> Ports ab. Die haben oft Dioden gegen die Versorgung.

Das stimmt allerdings.
Es ist daher besser R2 als Basiswiderstand fuer einen weiteren 
Transistor zu benutzen,dessen CE-Strecke parallel zum Taster beschaltet 
wird.In dem Fall muss GP5 statt Lowpegel einen Highpegel ausgeben.
So sollte es dann eigentlich gehen - wenn ich nicht noch einen weiteren 
Denkfehler eingebaut habe.....

von nicht"Gast" (Gast)


Lesenswert?

Moin,

mal so als ganz blöden Einwurf :)

den µC vom Taster aus dem Sleep holen. der µC schaltet dann den Rest ein 
oder aus und legt nach getaner Arbeit wieder schlafen.

nur so als Idee

von Adrian Bergmann (Gast)


Angehängte Dateien:

Lesenswert?

Vielen Dank für die Antworten! Irgendwie versteh ich immer weniger...
Ich habe auf der RS-FF-Basis mal meine Schaltung geändert. Würde meine 
Skizze hier funktionieren?

Und wenn ja, sieht jemand auf Anhieb, ob und wenn ja für welche 
Widerstände vor dem Spannungsregler Mindest/Maximalwerte eingehalten 
werden müssen?
Den Pulldown R2 schön groß, genauso wie R4, der den Basisstrom begrenzt 
- ansonsten sind die Dimensionen relativ egal, oder?

von HildeK (Gast)


Lesenswert?

Adrian Bergmann schrieb:
> Würde meine
> Skizze hier funktionieren?

Wahrscheinlich nicht, denn das FF wird mit 9V versorgt und der µC mit 
5V. Das reicht dann kein zuverlässiges HIGH am FF-Reset und du musst 
damit rechnen, dass das FF dann dauernd geresettet ist bzw. nicht 
geresettet werden kann (je nach Aktivpegel für Reset).

Den Basisstrom braucht man beim Emitterfolger nicht zu begrenzen.

Brauchst du überhaupt eine Darlingtonschaltung als Emitterfolger? 
Benötigt dein µC viel mehr als 100mA? Außerdem ist dabei der Drop schon 
so groß, dass dein nachfolgender 5V-Regler nur bei frischer Batterie 
noch volle Ausgangsspannung liefern kann.

> Damit der Taster nicht während des ganzen Bootvorgangs gedrückt bleiben
> muss,
Was für einen Rechner willst du damit starten? Ich dachte, das ist ein 
µC? Da dauert doch der Startvorgang maximal ein paar hundert 
Mikrosekunden, allerhöchsten 10ms wenn man warten will, bis z.B. ein 
Quarz sicher angeschwungen hat. Das kannst du doch mit dem Taster 
manuell kaum unterbieten. Oder soll da Windows, Linux drauf laufen?
Ein FF kannst du dir auch sparen, denn das ist letztendlich schon im µC 
vorhanden. Du setzt als erstes den Pin zur Selbsthaltung und wenn du mit 
dem Programm fertig bist, dann setzt du den wieder auf Null.
Dazu braucht man zwei Transistoren, einen pnp und einen npn sowie etwas 
Hühnerfutter. Oder zwei kleine Fets, einen nMOS und einen pMOS.
Ich hatte ja oben schon Hinweise für ein Beispiel angegeben. Zur 
Vereinfachung hänge ich dir das aber nochmals an. Es dreht sich um T1 
und T3. T2 brauchst du nicht, der ist in dem Projekt nur zum Neustart 
gedacht, ohne dass man auf die Unterbrechung warten muss. Da schließt 
man den Taster direkt an GND an.
Hier z.B. ist das Beispiel in einem Beitrag verlinkt worden: 
http://www.mikrocontroller.net/attachment/65454/schematic.png

von Adrian Bergmann (Gast)


Lesenswert?

Danke für deinen Input!

> Wahrscheinlich nicht, denn das FF wird mit 9V versorgt und der µC mit
> 5V. Das reicht dann kein zuverlässiges HIGH am FF-Reset und du musst
> damit rechnen, dass das FF dann dauernd geresettet ist bzw. nicht
> geresettet werden kann (je nach Aktivpegel für Reset).

Verstehe. Ein Active High Reset angenommen, würde es ja dann reichen, 
wenn der µC einen weiteren Transistor schaltet, der die 9V dann an den 
Reset-Eingang durchlässt.

> Den Basisstrom braucht man beim Emitterfolger nicht zu begrenzen.
>
> Brauchst du überhaupt eine Darlingtonschaltung als Emitterfolger?
> Benötigt dein µC viel mehr als 100mA? Außerdem ist dabei der Drop schon
> so groß, dass dein nachfolgender 5V-Regler nur bei frischer Batterie
> noch volle Ausgangsspannung liefern kann.

Da werden unter anderem 3 Servos mitversorgt. Da wollte ich auf Nummer 
sicher gehen.

>> Damit der Taster nicht während des ganzen Bootvorgangs gedrückt bleiben
>> muss,
> Was für einen Rechner willst du damit starten? Ich dachte, das ist ein
> µC? Da dauert doch der Startvorgang maximal ein paar hundert
> Mikrosekunden, allerhöchsten 10ms wenn man warten will, bis z.B. ein
> Quarz sicher angeschwungen hat. Das kannst du doch mit dem Taster
> manuell kaum unterbieten. Oder soll da Windows, Linux drauf laufen?

Ein Linux ist es nicht gerade. Aber ich prototype gerade mit einem 
Arduino, der mit Bootloader schonmal eine gute Sekunde benötigt, bis er 
Pins toggelt.

> Ein FF kannst du dir auch sparen, denn das ist letztendlich schon im µC
> vorhanden. Du setzt als erstes den Pin zur Selbsthaltung und wenn du mit
> dem Programm fertig bist, dann setzt du den wieder auf Null.
> Dazu braucht man zwei Transistoren, einen pnp und einen npn sowie etwas
> Hühnerfutter. Oder zwei kleine Fets, einen nMOS und einen pMOS.
> Ich hatte ja oben schon Hinweise für ein Beispiel angegeben. Zur
> Vereinfachung hänge ich dir das aber nochmals an. Es dreht sich um T1
> und T3. T2 brauchst du nicht, der ist in dem Projekt nur zum Neustart
> gedacht, ohne dass man auf die Unterbrechung warten muss. Da schließt
> man den Taster direkt an GND an.
> Hier z.B. ist das Beispiel in einem Beitrag verlinkt worden:
> http://www.mikrocontroller.net/attachment/65454/schematic.png

Die Schaltung ist für mich ziemlich schwierig nachzuvollziehen. Aber so 
langsam komme ich an. Werde mir das morgen nochmal in aller Ruhe 
anschauen. Danke nochmal!

von DevilElec (Gast)


Lesenswert?

Hallo,

warum so kompliziert?

ein Taster, 2 Widerstände, ein low voltage P-Channel Mosfet. Fertig.

Mit Taster schaltet man den Mosfet durch, der µC schaltet sich ein, 
gleich am Anfang im Code schaltet er einen Pin, damit der Mosfet an 
bleibt. Ab läßt man den Taster los. Dann macht der µC sein Ding und wenn 
er fertig ist, schaltet er den Pin vom Mosfet wieder um. Damit ist alles 
aus.

von HildeK (Gast)


Angehängte Dateien:

Lesenswert?

DevilElec schrieb:
> Mit Taster schaltet man den Mosfet durch, der µC schaltet sich ein,
> gleich am Anfang im Code schaltet er einen Pin, damit der Mosfet an
> bleibt. Ab läßt man den Taster los. Dann macht der µC sein Ding und wenn
> er fertig ist, schaltet er den Pin vom Mosfet wieder um. Damit ist alles
> aus.

So, wie du es schreibst, funktioniert das nicht!
- der pMOSFET braucht dann die Batteriespannung am Gate, um 
abzuschalten. Wenn der µC aus ist, kann er keine 9V liefern sondern nur 
0V und wenn er eingeschaltet ist, dann kann er max. 5V liefern, also gar 
nicht ausschalten.

- deshalb hatte ich jetzt schon mehrfach ein Beispiel genannt und auch 
verlinkt, mit dem das prima funktioniert. Man kann es auch mit MOSFETs 
realisieren oder meinetwegen auch kombiniert mit Transistoren und 
MOSFETs.

Adrian Bergmann schrieb:
> Ein Active High Reset angenommen, würde es ja dann reichen,
> wenn der µC einen weiteren Transistor schaltet, der die 9V dann an den
> Reset-Eingang durchlässt.

Auf HIGH kannst du ihn mit einem Transistor nicht ziehen, nur auf LOW. 
Vielleicht suchst du dir ein FF mit Active-Low-Reset/Set.

> Da werden unter anderem 3 Servos mitversorgt. Da wollte ich auf Nummer
> sicher gehen.
Dann nimm statt dem Darlington einen pMOS, der kann viel mehr Strom und 
wird mit viel weniger Leistung angesteuert und hat zusätzlich fast 
keinen Spannungsabfall wenn eingeschaltet.

> Ein Linux ist es nicht gerade. Aber ich prototype gerade mit einem
> Arduino, der mit Bootloader schonmal eine gute Sekunde benötigt, bis er
> Pins toggelt.
OK, dann ist das FF schon das richtige Element.

Adrian Bergmann schrieb:
> Die Schaltung ist für mich ziemlich schwierig nachzuvollziehen.

Naja, es sind doch nur die beiden Transistoren T1 und T3 - ob als 
bipolar oder FET ist zunächst egal. Lass für die Überlegung die 
Kondensatoren und die LED (überbrücken) weg, der Taster wird statt an T2 
direkt an GND angeschlossen. Die Zeichnung zeigt ja den ganzen 
Transistortester. Dort werden die 9V auf den 5V-Regler durch T3 
geschaltet, die Widerstände R11/R12 dienen nur der 
Batteriespannungsmessung: weglassen!


Im Anhang mal zwei Varianten mit FF. Ungetestet!

von Adrian Bergmann (Gast)


Lesenswert?

Vielen Dank für deine Mühe!
Die Schaltung des Transistortesters kann ich nachvollziehen. Dazu habe 
ich aber noch eine Frage:
In der Schaltung werden bc547er/557er benutzt. Aber die 100mA, für die 
die ausgelegt sind, scheinen mir zu knapp für meine Anwendung.
Deshalb (Und weil sie bequemerweise schon in meinem Sortiment sind) 
würde ich die gerne gegen 327/337er mit 1A Icmax ersetzen. Die haben 
eine Ube von immerhin 1.3V, womit ich aber immer noch über den 7V bin, 
die mein LM317-Regler mindestens braucht. Kann ich damit rechnen, dass 
damit über den größten Teil der Batterielebensdauer meine 5V stabil 
bleiben?

Zu deiner Flipflop-Lösung (Nochmal Danke, dass du dir dafür die Zeit 
nimmst!) habe ich auch eine grundsätzliche Frage.
Wenn ich IC-Datenblätter für NAND Gatter durchforste, geben die eine 
konstante Stromaufnahme von mehreren mA an. Auch diskret aufgebaut habe 
ich ja grundsätzlich einen kleinen Stromfluss. Das macht die ganze 
Turnübung die ich hier zwecks Batterie sparen betreibe, völlig sinnlos, 
oder?

von Andreas S. (igel1)


Lesenswert?

Hallo Adrian,

DevilElec und Toxic haben in Ihren Beiträgen einen sehr einfachen
Weg aufgezeigt, der wunderbar funktionieren sollte.

Ich finde ihn wesentlich eleganter als die FlipFlop-Geschichte.

In den beiden erstgenannten Lösungen würde ich lediglich noch
irgendwo einen Kondensator einbringen, damit Dir das Prellen
des Tasters den MC nicht 10x  hintereinander ein- und wieder
ausschaltet.

Dieser Kondensator könnte evtl. auch die eine Sekunde
Boot-Vorgang überbrücken.

Viele Grüße

Igel1

: Bearbeitet durch User
von HildeK (Gast)


Lesenswert?

Adrian Bergmann schrieb:
> würde ich die gerne gegen 327/337er mit 1A Icmax ersetzen. Die haben
> eine Ube von immerhin 1.3V, womit ich aber immer noch über den 7V bin,
> die mein LM317-Regler mindestens braucht. Kann ich damit rechnen, dass
> damit über den größten Teil der Batterielebensdauer meine 5V stabil
> bleiben?

UBE spielt doch keine Rolle, höchstens UCEsat. Wenn du genügend 
Basisstrom lieferst (hfe mit max. 20..30 ansetzen), dann verlierst du 
auch nur 200...300mV. Ich hatte dir deshalb einen pMOSFET empfohlen, da 
fallen im EIN-Zustand nur ein paar mV ab. Also einfach den BC557 durch 
einen pMOS ersetzen.

Adrian Bergmann schrieb:
> Wenn ich IC-Datenblätter für NAND Gatter durchforste, geben die eine
> konstante Stromaufnahme von mehreren mA an.

Da scheinst du an der falschen Stelle nachzuschauen. Z.B. der CD4011 
(kann man den überhaupt noch beschaffen?) hat bei 10V eine typische 
Stromaufnahme von 0,01µA im Ruhezustand. Mit dem 4011 kannst du sogar 
zwei RS-FF aufbauen, mit Active-Low-Bedienung. Stichwort NAND-FF.
http://pdf.datasheetcatalog.com/datasheets/208/108647_DS.pdf

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.