mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Stromfluss bei ausgeschaltetem PIC


Autor: Oliver V. (busoni)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo


ich habe eine einfache mess-Schaltung augebaut, um zu sehen, wieviel 
Strom ein PIC12F675 unter bestimmten Bedingungen verbraucht. Dabei ist 
mir aufgefallen, dass auch Strom fließt, wenn der Controller ganz 
ausgeschaltet ist (/MCLR low). Je nach Spannung fließen einige 100 µA, 
also weit mehr als etwa im Sleep (10 µA). Ich habe verschiedene 
Konfigurationen (PWRTE_, BODEN_, etc ON/OFF) probiert, alles mit dem 
gleichen Resultat. Am Programm selbst kann's kaum liegen, und die Pins 
werden ja auch erst nach dem Start konfiguriert.
Im Datenblatt habe ich dazu leider nichts gefunden, sämtliche Angaben 
beziehen sich auf Normalbetrieb und Sleep, es gibt keine Tabelle zum 
Verbrauch im Reset-Zustand mit /MCLR low bzw bei zu geringer Spannung 
zum starten.

Wie kann das sein? Und kann man das vermeiden?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Oliver V. (busoni)

>gleichen Resultat. Am Programm selbst kann's kaum liegen, und die Pins
>werden ja auch erst nach dem Start konfiguriert.

DAS ist das Problem. Die IOs floaten während des Resets. Damit zieht der 
PIC relativ viel Strom, weil die Eingangspuffer im linearen Bereich 
arbeiten.

>Wie kann das sein? Und kann man das vermeiden?

Pull-Up Widerstände.

MfG
Falk

Autor: JensG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist denn /MCLR low = ausgeschaltet? Ich dachte eigentlich, der wird nur 
intern zurückgesetzt.

Autor: Oliver V. (busoni)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Pull-Up Widerstände.

Danke. Das werd ich probieren. Was muss ich da für Werte nehmen und 
womit verbinden (das kann ich sicher auch recherchieren, nur falls es 
wer so weiß..)?

> Ist denn /MCLR low = ausgeschaltet? Ich dachte eigentlich, der wird nur
> intern zurückgesetzt.

Ich denke schon. Wenn's low bleibt ist er wirklich aus. Das gleiche 
Verhalten zeigt sich auch, wenn die Spannung zu gering ist und er sich 
ausschaltet: Plötzlich steigt der Verbrauch um das 10-fache.
Die konkrete Anwendung sieht so aus, dass der Controller von einer 
Solarzelle mit Pufferkondensator versorgt wird. Er schläft die meiste 
Zeit und wacht nur alle paar MS ganz kurz auf. Das läuft prima mit 
wenigen µA im Dämmerlicht, aber wenn er mal ganz ausgegangen ist, 
braucht er einige 100 µA um wieder anzuspringen und der Kondensator lädt 
nicht mehr.
Intuitiv schwer verständlich, dass er angeschaltet weniger verbraucht 
als ausgeschaltet.

Autor: Enrock Ja (Firma: studi) (enrock)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus,

also wenn ich mich recht entsinne, und da bin ich mir recht sicher, ist 
der PIC_RESET nicht gleich PIC_AUS.
Bei Reset werden doch alle Einstellungen wieder auf die Default zurück 
gestellt, was auch die Ports betrifft. Was meiner Meinung nach auch den 
höheren Stromverbrauch erklärt. Auch wenn der Reset dauerhaft auf Low 
gehalten wird ist der PIC nicht aus, sondern setzt alles auf die Default 
einstellungen zurück und halt diese Einstellungen fest.

Bei SLEEP schläft ja der PIC und macht reagiert erst wieder wenn er 
geweckt wird.
Konntest du das Problem irgendwie reduzieren oder hast du eine andere 
Erklärung gefunden?
Würd mich mal interessieren.

Gruß

Autor: Oliver V. (busoni)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, schwer zu sagen und vielleicht auch eine Definitionsfrage: Was ist 
"aus"? Man könnte natürlich sagen, dass er immer irgendwie "an" ist, 
solange Strom fließt - was wiederum immer passiert, sobald eine Spannung 
anliegt. Den beschriebenen Zustand könnte man dann als "im Reset" 
bezeichnen. Nur ist der nicht als Betriebasart im Datenblatt 
beschrieben, sondern nur, was nach einem Reset los ist.
Der hohe Strom fließt jedenfalls auch mit MCLRE_OFF, wenn man Vdd 
langsam von null erhöht, er also wirklich ganz aus war (oder noch ist?). 
Wenn die Spannung hoch genug ist, startet er und wenn's dann in den 
Sleep geht ist der Strom plötzlich viel geringer.

Ich probier' mal die Pullups - sobald ich verstanden habe, was das genau 
ist und welche Werte in Frage kommen. Ich vermute, dass es darum geht, 
die Pins unter Spannung zu setzen ohne dass allzuviel Strom hinein 
fließt. Bin halt ziemlicher Laie was Elektronik angeht.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Oliver V. (busoni)

>Ich probier' mal die Pullups - sobald ich verstanden habe, was das genau
>ist und welche Werte in Frage kommen. Ich vermute, dass es darum geht,

0,1-1MOhm

Wobei das am Ende unnötiog ist. Siehe Sleep Mode. Einfach alle IOs 
als Ausgänge konfigurieren oder interen Pull-Ups einschalten und gut. 
Dazu muss dein Programm dann natürlich laufen!

MFG
Falk

Autor: Oliver V. (busoni)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 0,1-1MOhm

Danke!

> Wobei das am Ende unnötiog ist.

Es geht ja auch um den Anfang. Das Happy End hab ich ja schon: sobald er 
läuft wird alles auf Ausgang geschaltet, dann ab in den Sleep und alles 
ist gut.

> Dazu muss dein Programm dann natürlich laufen!

Eben.

Autor: Oliver V. (busoni)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich habe jetzt alle 6 IO-Pins über 100 KOhm Widerstände an Vdd 
angeschlossen und der Strom fließt wie zuvor.
Ich habe es sowohl am PICkit mit ein- und ausschalten per /MCLR als auch 
an der Solarzelle mit Kondensator probiert (MCLR Option aus und der Pin 
auch mit Pullup). An der Solarzelle kann man sehr schön sehen, wie mit 
stärkerem Licht immer mehr Strom fließt, bis der PIC anspringt und der 
Verbauch dann wieder sinkt.

Was nützen mir all die Low-Power Features, wenn der ausgeschaltete 
Controller fast soviel verbraucht wie unter Vollast? Ist das bei AVRs 
auch so?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Oliver V. (busoni)

>auch mit Pullup). An der Solarzelle kann man sehr schön sehen, wie mit
>stärkerem Licht immer mehr Strom fließt, bis der PIC anspringt und der
>Verbauch dann wieder sinkt.

Ach so!!! Klar, das ist was anderes. Bei sehr niedrigen Spannungen, 1V 
oder so, ist das Verhalten der Transistoren sehr undefiniert. Dann kommt 
es zu wilden "Kurzschlüssen" und Leckströmen.

>Was nützen mir all die Low-Power Features, wenn der ausgeschaltete
>Controller fast soviel verbraucht wie unter Vollast?

Käse. Wenn die Betriebsspannung im gültigen Bereich ist, braucht der 
fast nix.

MfG
Falk

Autor: Oliver V. (busoni)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das war mir auch schon aufgefallen, in bestimmten Bereichen gibt der 
PIC sogar einen prima Rausch-Generator ab :)

Man müsste den Strom aufhalten, bis der Kondensator auf die 
Betriebsspannung (2V) geladen ist.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Oliver V. (busoni)

>Man müsste den Strom aufhalten, bis der Kondensator auf die
>Betriebsspannung (2V) geladen ist.

Batteriepuffer über Dioden.

Beitrag "MSP430F1612_Batteriebetrieb"

MfG
Falk

Autor: 6632 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was spricht dagegen, die Idee, dass der PIC im Reset ausgeschaltet sei 
fallenzulassen ? Weshalb nicht wie alle Leute einen Sllepstate verwenden 
?

Autor: Oliver V. (busoni)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Normalfall bei meiner Anwendung ist, dass meist garkein und bei 
Nutzung sehr wenig Strom zur Verfügung steht. Ich kann keinen Puffer wie 
Akku oder Goldcap verwenden, sondern muss mit der kurzfristig 
vorhandenen Energie den PIC starten.

Sicher kann ich versuchen, den PIC so viel wie möglich im Sleep zu 
halten, aber ich kann mich nicht darauf verlassen. Nach einer gewissen 
Zeit in Dunkelheit ist jeder Puffer leer. Außerdem braucht der umso 
länger zum aufladen, je größer er ist. Ich hätte also die Wahl zwischen 
häufigem Reset oder seltenem, dann aber mit unzumutbar langer 
Aufladezeit (man muss das Ding erst ne Minute in die pralle Sonne halten 
bis ein Goldcap voll ist). Beides ist nicht akzeptabel.

Und der Strom reicht ja auch aus, es muss halt nur eine kleine Reserve 
für den Start aufgebaut werden. Wenn man z.B. einfach mechanisch Vdd vom 
Pic trennt, hat der Kondensator schon nach einer Sekunde wieder genug 
Spannung, um den PIC zu starten.

Die Schaltung müsste irgendwie den Kondensator priorisieren. Erst wenn 
der voll ist dürfte der PIC drankommen, ihn dann aber leersaugen dürfen. 
Knifflig.

Autor: Oliver V. (busoni)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke zombie-frank.

eh erstaunlich, wie wenig spam es hier gibt, dafür dass man ohne 
anmeldung posten kann.



Könnte das gehen:

Noch einen zweiten Kondensator parallel schalten, der den Strom in 
Pulsen weitergibt (ich glaub mit einem Transistor wäre das zu machen). 
Die Pulse könnten den Pic anwerfen. Das muss nur etwa jede Sekunde 
passieren, es müsste also nicht viel Strom in diesen Pulsgeber fließen. 
Eventuell könnte der Pic ihn dann nach dem Start auch abschalten.

Autor: 6632 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem scheint das Aufstartverhalten zu sein. Der Prozessor sollte 
erst Saft bekomme, wenn welcher da ist und nicht vorher mit 
undefinierten Zustaenden den Saft verplempern. Dazu gibt es Zwei Dinge. 
Erstens ein ResetCircuit, zB ein MCP111T, der verbraucht selbst weniger 
als 1uA. Damit kann man einen PFet ansteuern, der den Strom fuer den 
Controller freigibt, oder der kann den Switcher im Powerdown halten. 
Zweitens gibt es spezielle Stromsparmodelle von Prozessoren. PIC kenne 
ich zuwenig, aber AVR hat welche, die laufen ab 1.8V. Wenn man dem nun 
einen Switcher vorsetzt, zB einen TPS62202, der verbraucht im Shutdown 
0.1uA, und im Betrieb 12uA, so kann der effizient von 2.5 bis 6V am 
Eingang die paar 100uA erzeugen.

Autor: Oliver V. (busoni)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das klingt vielversprechend. Würde nicht sogar einfach der MCP111T 
reichen? Hab das Datenblatt nur überflogen, aber er scheint ja alles zu 
kappen, was unter dem Limit ist. Das stünde dann dem Kondensator zur 
Verfügung. Wenn der genug geladen hat, würde der MCP111T wieder 
aufmachen und der PIC könnte starten. Weil der MCP111T nicht sofort 
wieder sperrt, würde (hoffentlich) die Zeit reichen den Pic schlafen zu 
legen, sodass der Kondensator mehr zur Verfügung hat als verbraucht wird 
und der MCP111T offen bleibt.

Autor: 6632 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der MCP111T am PIC genuegt nicht, da der PIC im Reset zuviel zieht. Aber 
dieser MCP111T am Switcher waere was. Dann koennte sich der Kondensator 
tatsaechlich laden.

Autor: Oliver V. (busoni)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte es so verstanden, dass der MCP111T bei zu niedriger Spannung 
dem PIC einfach keinen Strom mehr gibt, der also auch nichts verbrauchen 
kann. Man muss ja den Output nicht an /MCLR anschließen, sondern kann 
auch direkt Vdd nehmen, oder?

Autor: 6632 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der 111er ist Open Drain, der ist unpassend. Aber der 112er koennte das 
denk ich.

Autor: Oliver V. (busoni)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
cool. ich glaub das isses.

vielen dank nochmal allerseits, der support hier ist echt fantastisch.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.