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.
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.
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 :)
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.
> 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?
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.
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?
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.
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.
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.
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.....
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
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?
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
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!
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.
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!
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?
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
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