Forum: Mikrocontroller und Digitale Elektronik Schaltung zieht trotz SLEEP-Mode 20mA?


von Jens (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

habe eine kleine Uhr gebaut mit 10LEDs und zwei CD4094-Registern, Herz 
der Schaltung ist der PIC16F627A. Die Helligkeit der LEDs kann über ein 
Poti eingestellt werden, die Uhrzeit wird über den Taster eingestellt.

Die Uhr hat zudem 3 x 1.5V AAA Batterien eingebaut, die bei Ausfall der 
Hauptspannungsversorgung (Steckernetzteil) über ein Relais automatisch 
zugeschaltet werden.

Nun erkennt die Software automatisch, wenn an RA2 kein Saft mehr anliegt 
(denn genau dann ist ja die Primärversorgung aus), und schaltet dann das 
PWM aus und den PIC in den Sleep-Mode.

Über Timer1 wird der PIC alle 2s geweckt, und wenn immer noch kein Saft 
da ist, geht er wieder schlafen.

Aber: Die Schaltung zieht im Sleep-Mode immer noch so um die 20mA, 
gemessen an der markierten Stelle.

Aber so viel kann das doch nicht sein. Wo kommt das her? Alle LEDs sind 
ausgeschaltet, ENABLE ist auf 0, und die CMOS ICs bekommen sogar gar 
keinen Strom mehr ab.

Ich hoffe, ihr könnt mir helfen, den Stromfresser zu finden.

Beste Grüße
Jens

von Jan S. (jan_s)


Lesenswert?

Im Batt. Betrieb sind IC2, IC3 und IC4 ohne Versorgungsspannung, dennoch 
hängen Ausagänge des PICs an deren Eingängen, korrekt?
Schalte die mal auf GND Pegel und messe dann.

von Jens (Gast)


Lesenswert?

Hallo Jan,

danke für den Tip.

Ich hätte erwähnen sollen, dass beim Schlafengehen PWM ausgeschaltet 
wird, sowie alle Outputs auf 0 gesetzt werden. Mache ich also schon.

Ist es unsauber, die CMOS-ICs und den ADC per Diode so vom Saft 
abzuschneiden? Fließt da vielleicht was gerade deswegen?

Gruß
Jens

von Weingut P. (weinbauer)


Lesenswert?

R12 sollte schonmal 4,5mA fressen, oder?

von Jens (Gast)


Lesenswert?

Nö, der hängt ja vor der Diode.

Habe nochmal genau nachgeguckt und das Problem glaube ich gefunden, war 
softwaretechnisch (habe das PWM-Modul immer wieder eingeschaltet bei 
ISR-Aufruf, blöd, ich weiß ;-)).

Nun liegt der Ruhestrom bei 40uA, und bei ISR-Aufruf kurzzeitig bei etwa 
0.7mA. Ist immer noch ein bisschen viel, oder ist das normal?

Gruß
Jens

von Jan S. (jan_s)


Lesenswert?

Jens schrieb:
> Nun liegt der Ruhestrom bei 40uA, und bei ISR-Aufruf kurzzeitig bei etwa
> 0.7mA. Ist immer noch ein bisschen viel, oder ist das normal?

Klingt jetzt erst einmal normal, mit welcher Aufnahem bei gegebener 
Frequenz ist der PIC denn gemäß Datenblatt angegeben.

von Jens (Gast)


Lesenswert?

Datenblatt ist ein gutes Stichtwort - was Interrupts usw. angeht finde 
ich mich auch immer besser drin zu Recht, aber gerade was die 
elektrischen parameter angeht bin ich immer von der Flut der Zahlen 
erschlagen.

Findet jemand die entsprechende Seite? Ich jabe nach "sleep" im PDF 
gesucht aber dazu keinen Strom gefunden, ich fühle mich gerade etwas 
blind.

Gruß
Jens

von Jens (Gast)


Lesenswert?

Habe die Software übrigens nochmals leicht korrigiert, und komme und auf 
31uA im Sleep-Mode. Da kann man nicht meckern.

Bei meinen verwendeten Batterien 
(http://www.reichelt.de/?ACTION=3;ARTICLE=100559;PROVID=2402) mit so ca. 
900mAh (ist das realistisch? habe den kleinsten Wert für 
Alkali-Mangan-Batterien von Wikipedia genommen) wären das T = 900mAh / 
30uA = 900mA / 0.031mA h = ca. 30000h > 3 Jahre ?!

Das kann ja nicht. Was ist ne realistische zahl?

Gruß
Jens

von (prx) A. K. (prx)


Lesenswert?

Wozu ist das Relais da drin eigentlich gut? Mir scheint, die Schaltung 
würde ohne es exakt genauso funktionieren.

von Jens (Gast)


Lesenswert?

Ist nur da, damit die Batterien abgeklemmt sind, wenn keine 
Primärspannung da ist.

Gruß
Jens

von (prx) A. K. (prx)


Lesenswert?

Also wenn extern keine Spannung anliegt, dann ist die Batterie 
abgeklemmt. Und wenn eine dran ist, dann ist sie überflüssig. Hmm, 
seltsame Logik.

Ausserdem ist das ein Öffner. Die Batterien sind abgeklemmt, wenn 
Primärspannung anliegt und angeklemmt wenn keine da ist. Was ja der Sinn 
einer Batteriepufferung ist. Nur wird dieser Job bereits von D1/D2 
erledigt, ganz ohne Relais. Bei Primärspannung > Batteriespannung sperrt 
D2 und es fliesst kein Batteriestrom.

Hängt mal die Relaisspule ab und probiers aus.

von Jens (Gast)


Lesenswert?

Und was ist wenn Versorgungsspannung da ist, die aber kleiner ist als 
die Batteriespannung? Dann fließt was aus den Batterien, obwohl es nicht 
sein muss.

Aber nochmal zu den Zeiten: Stimmt die obige Berechnung mit den 3 Jahren 
grob?

Gruß
Jens

von (prx) A. K. (prx)


Lesenswert?

Jens schrieb:

> Und was ist wenn Versorgungsspannung da ist, die aber kleiner ist als
> die Batteriespannung? Dann fließt was aus den Batterien, obwohl es nicht
> sein muss.

Das ist doch genau das der Standby-Fall, der vom Controller erkannt 
werden soll und zum Stromsparmodus führt.

Mit Relais kann dir hingegen ein Problem entstehen, dass es ohne nicht 
gibt: Wenn deine externe Versorgung auf z.B. 2V fällt und dabei bleibt. 
Relais bleibt an, Batterie aus, Controller verhungert. Ohne Relais: 
Controller kriegt Batteriestrom, erkennt Unterspannung und geht auf 
Standby.

von Jens (Gast)


Lesenswert?

Na das Relais würde dann aber auch ausgehen, ist ja für 4 bis 5V 
konzipiert. Aber OK, ich sehe es ein, eigentlich ist es sinnlos.

Übrigens, es ist defintiv KEINE gute Idee bei solch einem Projekt das 
Brownout-Detect aktiviert zu haben....

Gruß
Jens

von Jens (Gast)


Lesenswert?

Ach mann!! Das kann doch nicht sein!

Ich habe die Uhr testweise mit Hauptversorgung laufen lassen (so ca. 10 
Minuten), und dann mal die Versorgung abgeklemmt und mit Batterie 
weiterlaufen lassen. Und was passiert?

Der PIC wird heiß!! Zu heiß zum Anfassen. Ich hab ihn natürlich erstmal 
rausgenommen und abkühlen lassen.

Ich hab danach versucht, das Verhalten zu reproduzieren, aber erfolglos.


Was ist da passiert?!



Gruß
Jens

von Jan S. (jan_s)


Lesenswert?

Mal ins Blaue geraten, einer deiner Ausgänge war noch aktiv, und hat 
irgendwie eines der nicht versorgten ICs betrieben. In dem Fall kann, 
von einem Kurzschluss bis zu einem Diodeneffekt auf einen deiner anderen 
Ausgänge auf GND Pegel, alles mögliche passieren.

von (prx) A. K. (prx)


Lesenswert?

Jens schrieb:

> Na das Relais würde dann aber auch ausgehen, ist ja für 4 bis 5V
> konzipiert.

Das Datasheet vom nächstbesten 5V Relais dokumentiert eine Haltespannung 
von gerade mal 0.75V (min).

von Jens (Gast)


Lesenswert?

A. K. schrieb:
> eine Haltespannung
> von gerade mal 0.75V (min).

Ja, hat mein Reed-Relais auch. Aber meine externe Spannung kommt von 
einem geregelten 5V-Netzteil.

Ich glaube als Fazit könnte mensch stehen lassen: Das Relais ist unnötig 
(ihr habt mich überzeugt), aber schaden tut es unter meinen 
Betriebsbedingungen nicht.


Jan S. schrieb:
> Mal ins Blaue geraten, einer deiner Ausgänge war noch aktiv, und hat
> irgendwie eines der nicht versorgten ICs betrieben. In dem Fall kann,
> von einem Kurzschluss bis zu einem Diodeneffekt auf einen deiner anderen
> Ausgänge auf GND Pegel, alles mögliche passieren.

Also die Ausgänge schalte ich definitiv ab vor dem SLEEP();. Zudem wird 
auch das PWM-Modul ausgeschaltet, und der korrespondierende Pin RB3 auch 
noch auf 0 gesetzt.

Könnte es sein, dass die Eingänge da muchsen? Also die lieber auf 
TRISRXX = 0; und dann auf GND-Pegel legen?

Ein bekannter von mir meinte, das könnte auch ein CMOS-Latching-Effekt 
sein.. na super, den bekomme ich ja nur weg durch "have you tried 
turning it on and off again" aber genau das soll ja bei mir gerade nicht 
gemacht werden...

Bin über jede Idee / jeden Ratschlag dankbar.

Beste Grüße
Jens

von Jens (Gast)


Lesenswert?

Oder wäre es sinnvoller, die CMOS-ICs und den ADC am Saft zu lassen und 
die nur mit nichts zu füttern?

Gruß
Jens

von Der Grüne (Gast)


Lesenswert?

Jens schrieb:
> Ich glaube als Fazit könnte mensch stehen lassen: Das Relais ist unnötig
> (ihr habt mich überzeugt), aber schaden tut es unter meinen
> Betriebsbedingungen nicht.

Doch - schluckt unnötig Platinenplatz, zieht Strom, ist Mechanik, muß 
bestückt werden und überhaupt...

von Jens (Gast)


Lesenswert?

Aber das ist doch erstmal egal jetzt, das dringendere Problem ist die 
Aufwärmung des PICs...

Hat jemand Ideen dazu?

Gruß
Jens

von Jan S. (jan_s)


Lesenswert?

Ein Latch-up, wenn du das meinst, kann auch durch eine statitsche 
Entladung ausgelöst werden. Wenn Du schon an deiner Schltung rumtatscht, 
dann erscheint mir das als Möglichkeit. ;-)

von Jens (Gast)


Lesenswert?

Ja, Latch-Up meinte ich, danke. Aber so sensitiv sind die Schaltungen 
doch nicht. Ich habe schon dutzende Platinen mit PIC & 
CD4094-Konstellation aufgebaut, nach dem selben Schema, nur ohne 
Batteriepuffer, und da ist sowas noch nie passiert.

Es scheint irgendwie an dem Batterie-Modus zu liegen.

Kann es sein, dass - obwohl alle Ausgänge ausgeschaltet sind - da 
trotzdem Kurzschlüsse durch die CD4094 oder TLC549 entstehen, die nicht 
am Saft hängen?

Gruß
Jens

von (prx) A. K. (prx)


Lesenswert?

Stromversorgung der 4094er an die gepufferte Versorgung hängen. Richtig 
angesteuert benötigen die keinen Strom (OE inaktiv). Dann kann es nicht 
passieren, dass sie auch nur kurzzeitig durch die Eingänge Strom ziehen 
und dadurch ggf. in den Latchup laufen.

Wenn der TLC ebenfalls auf Standby betrieben werden kann, dann wäre das 
dort ebenfalls sinnvoll.

von Jan S. (jan_s)


Lesenswert?

Jens schrieb:
> ber so sensitiv sind die Schaltungen
> doch nicht. Ich habe schon dutzende Platinen mit PIC &
> CD4094-Konstellation aufgebaut, nach dem selben Schema, nur ohne
> Batteriepuffer, und da ist sowas noch nie passiert.
Ja nee is klar.

> Es scheint irgendwie an dem Batterie-Modus zu liegen.
Aha, woher weisst du das?

> Kann es sein, dass - obwohl alle Ausgänge ausgeschaltet sind - da
> trotzdem Kurzschlüsse durch die CD4094 oder TLC549 entstehen, die nicht
> am Saft hängen?

Öhm ohne Saft über Versorgung oder Eingang bzw Ausgang des PICs?
Fällt dann wohl unter Perpetuum mobile.

EDIT mir fällt gerade eine Möglichkiet ein ja, der Kurzschluss könne 
beim Abschalten der ICs entstehen, und dann nicht mehr kontrollierbar 
sein, da hast Du wohl recht. Eine einfache ösung wären Schutzwiderstände 
in den Leitungen.

von Jens (Gast)


Lesenswert?

Hallo,

danke für eure Antworten.

A. K. schrieb:
> Stromversorgung der 4094er an die gepufferte Versorgung hängen. Richtig
> angesteuert benötigen die keinen Strom (OE inaktiv). Dann kann es nicht
> passieren, dass sie auch nur kurzzeitig durch die Eingänge Strom ziehen
> und dadurch ggf. in den Latchup laufen.

Na gut, dann hänge ich die noch davor. OE ist auf null, definitiv. Aber 
wozwischen sollen die CD4094 im Latchup denn den Kurzschluss auslösen? 
Da liegt ja nichts an?

A. K. schrieb:
> Wenn der TLC ebenfalls auf Standby betrieben werden kann, dann wäre das
> dort ebenfalls sinnvoll.

Das weiß ich nicht so recht, finde dazu im Datenblatt des TLC549 nichts. 
Kann mir jemand helfen?

Jan S. schrieb:
> Aha, woher weisst du das?

Weil es immer dann diese Erwärmungen gab (bzw. sie dann starteten), wenn 
das Steckernetzteil nicht verbunden war, und die Uhr auf Batteriepuffer 
lief.

Jan S. schrieb:
> EDIT mir fällt gerade eine Möglichkiet ein ja, der Kurzschluss könne
> beim Abschalten der ICs entstehen, und dann nicht mehr kontrollierbar
> sein, da hast Du wohl recht. Eine einfache ösung wären Schutzwiderstände
> in den Leitungen.

Das verstehe ich nicht so ganz. Ich sehe das genau wie du (Perpetuum 
mobile). Aber was meinst du passiert beim Abschalten der ICs? Und wo 
würdest du die Schutzwiderstände hinpacken?

Gruß
Jens

von Ste N. (steno)


Angehängte Dateien:

Lesenswert?

Hallo Jens,

wie A.K. schon schrieb die 4094 über OE in Standby schalten, sollten 
dann so gut wie keinen Strom ziehen. Den TLC würde ich komplett 
sparen... hat der PIC 16 keinen ADC bzw. nen Komarator?

Siehe 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Analog-Digital-Wandlung_ohne_internen_ADC

Oder PDF im Anhang.

Gruß Steffen

von Jan S. (jan_s)


Lesenswert?

Jens schrieb:
> Aber was meinst du passiert beim Abschalten der ICs?
Keine Ahnung, das ist es ja. ;-) Möglicherweise verhällt sich der eine 
oder andere Eingang dann wie ne simple Diode und leitet voll gegen 
Masse. Dadurch kann dein PIC Ausgang in einen Latch-up Zustand geraten.

> Und wo würdest du die Schutzwiderstände hinpacken?
In die Leitungen zwischen PIC und den restlichen ICs.

von Jens (Gast)


Lesenswert?

Steffen N. schrieb:
> wie A.K. schon schrieb die 4094 über OE in Standby schalten, sollten
> dann so gut wie keinen Strom ziehen.

Hab ich gerade so verschaltet. Aber die Schaltung zieht jetzt 700uA im 
Standby! Das ist zu viel. Weiß auch nicht wo das herkommt..

Steffen N. schrieb:
> Den TLC würde ich komplett
> sparen... hat der PIC 16 keinen ADC bzw. nen Komarator?

Also einen ADC hat der nicht, aber einen Komparator. Aber den zu 
verwenden ist jetzt nicht mehr so sinnvoll da die Platine quasi fertig 
ist.

Jens

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Jens schrieb:
> Aber den zu
> verwenden ist jetzt nicht mehr so sinnvoll
Selbes Prinzip wie beim Relais, was nicht da ist kann auch keine 
Probleme verursachen!

von Jens (Gast)


Lesenswert?

Gut, das Relais werde ich rausnehmen. Ihr habt mich überzeugt ;-)

Die CD4094 sind ja jetzt echt parallel zum PIC, und zusammen ziehen sie 
im Sleep-Mode 3uA, das ist weniger als ich zu hoffen wagte.

Der TLC549 zieht allerdings satte 0.7mA... Also packe ich den lieber vor 
die Dioden an JP1, weil der ja sowieso nicht gebraucht wird im 
Sleep-Mode.

Auch nicht so sauber, oder?

Jens

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Jens schrieb:
> Der TLC549 zieht allerdings satte 0.7mA... Also packe ich den lieber vor
> die Dioden an JP1, weil der ja sowieso nicht gebraucht wird im
> Sleep-Mode.

Mir erschließt sich nicht warum du den nicht ganz raus wirfst?

von Jens (Gast)


Lesenswert?

Und wie lese ich dann das Poti aus?

von Jens (Gast)


Lesenswert?

Na gut, über den Comparator-Trick, aber leider habe ich keinen Timer 
mehr übrig..

Jens

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Na es wird doch wohl einen passenden PIC mit ADC geben oder nicht? Spart 
dir auf jeden fall ein unötiges Bauteil, du hast es bei Sleep besser 
unter Kontrolle (+ weniger Strom) und Leitungen + Software aufwand spart 
es außerdem.

von Jens (Gast)


Lesenswert?

Ja, sicherlich, aber das Teil ist ein Geburtstagsgeschenk und sollte 
morgen fertig sein ;-)

Also gut, ich werde den ADC rausnehmen, und einen Taster zur 
Helligkeitseinstellung verwenden. Wäre sowieso nicht so bequem gewesen, 
weil es ein blöder Print-Poti von Piher war (10mm Durchmesser) und der 
mit dem Schraubendreher hätte betätigt werden müssen.

Naja, ich melde mich wenn's Erfolgserlebnisse gibt,

Jens

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Denk aber daran die Taster gegen GND zu schalten und die internen 
Pullups zu verwenden, sonst wird das wieder nicht mit dem Stromsparen ;)

von Jens (Gast)


Lesenswert?

Nope, die kommen vor die Dioden, die sollen ja auch nur im aktiven Modus 
benutzt werden können. Um die Ports zu schützen kommt in die Zuleitung 
jeweils nich ne 1N4148.

Gruß
Jens

von Tip (Gast)


Lesenswert?

Wenn der Prozessor schläft, wird er die Taster schon nicht auswerten.

von Jens (Gast)


Lesenswert?

Aber wenn jemand während des Umschaltens drückt könnte es einen Latchup 
geben. Daher habe ich jetzt auch als "Current Sense"-Pin den RA5 
genommen.

Gruß
Jens

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.