Dip-switch Stromverbrauch

#5924576
Lesenswert?

Moin

Ich muss einen 7 fachen Dip-Switch an einen MSP430 Microcontroller 
anschließen.

Gibt es eine möglichkeit diesen so zu verkabeln das dieser nur Strom 
verbraucht wenn ich ihn auslesen möchte?

Da ja je nach Einstellung bis zu 7 Positionen dauerhaft geschlossen sind 
und über die Pullup/Pulldown Widerstände Strom fließt.

Die Versorgung über eine weiteren Pin würde bedeuten das ich bei nicht 
benutzung diesen auch als input Pulldown/Pullup einstellen könnte.

pins 1-7 input pulldown <------> pin versorgung input pulldown

Dies währe ja dann GND->R1->R2->GND...

Bräuchte mal ein paar Meinungen:-D


mfg Chris
#5924589
Lesenswert?

Du hast es doch programmtechnisch in der Hand, die keinen Strom 
verbrauchende "offen" Stellung als wahrscheinlichere Stellung zu 
definieren, indem du im Programmcode ggf. eine Negation einfügst. Zum 
anderen liegt es an dir, wie hochohmig du die PullUp/PullDown 
Widerstände definierst. Großer Widerstand - wenig Reststrom, aber 
störempfindlicher und umgekehrt. Kannst doch bis 10 Megaohm hoch.
Selbst bei einem batteriebetriebenen Gerät ist die Selbstentladung der 
Batterie, bzw. der Reststrom durch den Pufferelko größer ;-)
Gast #5924868
Lesenswert?

Chris D. schrieb:
> Gibt es eine möglichkeit diesen so zu verkabeln das dieser nur Strom
> verbraucht wenn ich ihn auslesen möchte?

Ich habe bei meinem batteriegespeisten Melder (ein PIR, zwei 
Reedkontakte) um Strom zu sparen folgende Methode angewandt:

Ich habe alle Kontakte mit interne Pullup's versehen, wenn sie nicht 
verwendet werden, werden diese Pullup's auf Pulldown per Software 
umgeschaltet.(Reedkontakte schalten gegen GND) Dann fließt kein Strom.

Der PIR hängt an der Versorgungsspannung und schaltet einen Pulldown. 
Dieser wird, wenn die PIR-Funktion nicht benötigt wird mittels Software 
zum Pullup.

Bei der neuen Version (SMD) bin ich von 47k interne Pullups auf externe 
1MOhm Pullups umgestiegen, so spare ich auch beim Betrieb Strom, aber 
brauche damit auch außer Betrieb einen kleinen Strom von 3,5 Mikroampere
Angehängte Dateien:
#5924925
Lesenswert?

GEKU schrieb:
> Chris D. schrieb:
>> Gibt es eine möglichkeit diesen so zu verkabeln das dieser nur Strom
>> verbraucht wenn ich ihn auslesen möchte?
>
> Ich habe bei meinem batteriegespeisten Melder (ein PIR, zwei
> Reedkontakte) um Strom zu sparen folgende Methode angewandt:
>
> Ich habe alle Kontakte mit interne Pullup's versehen, wenn sie nicht
> verwendet werden, werden diese Pullup's auf Pulldown per Software
> umgeschaltet.(Reedkontakte schalten gegen GND) Dann fließt kein Strom.

hmmm also Dip-Switch gegen GND und im standby ICpins auf pulldown.
Angehängte Dateien:
(Firma: @home) #5925110
Lesenswert?

GEKU schrieb:
> meinem batteriegespeisten Melder

@geku
ich sehe auf deinem bild einen tantal elko? und der hat doch einen "böse 
hohen" reststrom, da wäre doch ein electrolyt elko mit relative hoher 
max spannung (bei overrating sinkt der nochmals) besser, oder?

woher kommt der 3,8v super cap, hast du eine günstige quelle?


mt
(Firma: @home) #5925132
Lesenswert?

Sebastian R. schrieb:
> Möchte vielleicht jemand vorschlagen, die internen Pullups zu nutzen

ja!

meine version:
- inputs sind alle mit 200k an gnd, internal pull-up ist 20-50k
- im low power status sind alle als analog input defined
- dip switch schaltet nach gnd
- abfrage definiert digital input mit internal pull-up
- abfrage, hi-level: switch-off, lo-level: switch-on


mt
#5925912
Lesenswert?

Man braucht keine externen Widerstände, nur intern zuschaltbare Pull-Ups

interne Pull-Ups einschalten
ein paar Millisekunden warten
DIP-Schalter einlesen
interne Pull-Ups ausschalten
alles IOs auf Ausgang und LOW schalten

Kostet Null Hardware und erzeugt keine offenen Eingänge, Stromverbrauch 
0uA.
Es gibt auch keine versehentlichen Kurzschlüsse zwischen den 
Dip-Schaltern und den IOs, denn beide schalten aktiv nur auf LOW, 
Prinzip des Open Drain Busses ala I2C.
(Firma: @home) #5925930
Lesenswert?

Falk B. schrieb:
> Kostet Null Hardware und erzeugt keine offenen Eingänge, Stromverbrauch
> 0uA.
> Es gibt auch keine versehentlichen Kurzschlüsse zwischen den
> Dip-Schaltern und den IOs, denn beide schalten aktiv nur auf LOW,
> Prinzip des Open Drain Busses ala I2C.

.. von beruf vielleicht bäcker?

- von oc/od ist hier bis jetzt nicht die rede und hängt vom controller 
ab, ob der das mitbringt.

- ansonsten die digitale ausgangsstufe kostet immer strom, wenn auch 
nicht viel. weil z.b. da stellt sich auch nicht 0V am ausgang ein.

- im low power bereich ist extern terminiert und analogeingang immer bei 
jeden chip die beste wahl. interne pull-up (max 50k) nie, weil viel zu 
klein.

daher ist der vorschlag eher vom bastler am küchentisch.


MaWin schrieb:
> Apollo M. schrieb:
>> - inputs sind alle mit 200k an gnd, internal pull-up ist 20-50k
>
> Als STROMSPARENDE Methode ? Wie unsinnig ist das denn ?

vielleicht erstmal nachdenken und dann hier laut melden?! wenn's immer 
noch nicht klick macht, dann einfach mal hier nachhilfe anfragen. dann 
gibt es bestimmt viele ideen warum/weshalb und doch wieder nicht ...


es gilt, low power setups sind nicht für jeden durchschnittbegabten 
einsichtig.
die anderen denken auch mal an nachmessen und dann erst wundern.



mt
(Firma: @home) #5925938
Lesenswert?

Stefanus F. schrieb:
> Das ist aber schon 20 Jahre her,
> vielleicht ist das heute anders.

... im prinzi nicht. aber je nach wert wären x7r caps parallel besser im 
sinne von low power.

und KEINE DIODEN zur ankopplung von super cap/bat sondern "ideal diode" 
schaltungen!

es gibt nette abhandlungen im engl. web darüber, dass die meisten 
engineers z.b. cap's völlig unterschätzen bzw. geringschätzig  ansehen 
und nicht verstehn, wie schnell man seine schaltung damit 
verschlimmbessert.


mt
#5925945
Lesenswert?

Apollo M. schrieb:
> Falk B. schrieb:
>> Kostet Null Hardware und erzeugt keine offenen Eingänge, Stromverbrauch
>> 0uA.
>> Es gibt auch keine versehentlichen Kurzschlüsse zwischen den
>> Dip-Schaltern und den IOs, denn beide schalten aktiv nur auf LOW,
>> Prinzip des Open Drain Busses ala I2C.
>
> .. von beruf vielleicht bäcker?

Du hast wohl im Kraftwerk geschlafen?

> - von oc/od ist hier bis jetzt nicht die rede und hängt vom controller
> ab, ob der das mitbringt.

Die Allermeisten können DAS! Der OP hat einen MSP430, der kann das auch!

> - ansonsten die digitale ausgangsstufe kostet immer strom, wenn auch
> nicht viel. weil z.b. da stellt sich auch nicht 0V am ausgang ein.

Quatschkopf! Eine CMOS-Endstufe hat einen statischen Stromverbrauch von 
0uA. Und komm mir jetzt ja nicht mit Leckströmen, ein ganzer Controller 
hat da heute weniger als 1uA!

> daher ist der vorschlag eher vom bastler am küchentisch.

Du mußt es wissen, du Experte.

>- im low power bereich ist extern terminiert und analogeingang immer bei
>jeden chip die beste wahl. interne pull-up (max 50k) nie, weil viel zu
>klein.

Nö. Ausgänge sind ebenso sparsam.

> es gilt, low power setups sind nicht für jeden durchschnittbegabten
> einsichtig.

In der Tat.
(Firma: @home) #5925975
Lesenswert?

Falk B. schrieb:
> Nö. Ausgänge sind ebenso sparsam.

... "ebenso" ist halt nicht das gleiche, wie nachmessen und vergleichen.
etwas e-technik hilft da auch um zu verstehen, wo die unterschiede sind.

low power mode betrachtet im zeitraum von tagen ist was anderes als 
monate/jahre!

um am output pin ein low pegel zu erzeugen, werden intern auch high 
levels gebraucht und müssen biased werden. ausserdem sind die 
isolationwiderstände am output pin kleiner und nicht immer stabil wegen 
humidity ...


oder anderes beispiel, was du wahrscheinlich auch nicht kennst oder 
schon mal gehört hast.

die daten im internen daten eeprom werden oft komplett negiert, wenn 
statistisch mehrheitlich die bits auf high level stehen.

WEIL, das beim lesen mehr current kostet um den internen bus zu treiben.

viele kleine details machen hier den unterschied ... alleine das pcb 
material und routing sind eine sache für sich bzgl. leakage current.


mt
(Firma: @home) #5926017
Lesenswert?

Stefanus F. schrieb:
> Ich habe Tantal-Elkos früher gerne Timer-Schaltungen in Kombination mit
> Widerständen >1MΩ verwendet.

tips:
bei solchen setups eignen sich (ausgemessene) dioden in sperrrichtung 
als hochohmige widerstände sehr gut und natürlich das ganze teilweise 
"freiverdrahtet"

schutzschaltungen via clapp dioden nach gnd/vcc sind auch keine gute 
wahl bei z.b. op schaltungen sondern besser fets verwenden. docu dazu 
zum nachlesen gibt es bei lt/analog device.

digital ist auch nur analog!


mt
Gast #5926058
Lesenswert?

Apollo M. schrieb:
> ich sehe auf deinem bild einen tantal elko? und der hat doch einen "böse
> hohen" reststrom, da wäre doch ein electrolyt elko mit relative hoher
> max spannung (bei overrating sinkt der nochmals) besser, oder?
>
> woher kommt der 3,8v super cap, hast du eine günstige quelle?

Der Tantal ist vom Strom kein Problem.
Ich hab eher das Problem mit den LIC 20F/3,8V. Der LIC soll keinen 
spannungslosen Zustand vertragen. Also muss ich beim nächsten Redesign 
einen Jumper einbauen, der bei Lagerung ohne Batterien, den LIC 
freischaltet.

Die Serie mit längerer Lagerung haben durch den LIC einen höheren 
Stromverbrauch. Die Frage ist, ob dieser mit der Zeit zurückgeht.

Den LIC brauche ich, weil beim Anschalten des ESP8266, die Spannung der 
Batterien in die Knie gehen. Jetzt fängt der LIC den Einschaltstrom ab. 
Größe Elkos haben nicht geholfen.

Ich habe 5 Melder seit März ohne Tausch der Batterien in Betrieb. Die 
LICs wurden erst vor der Inbetriebnahme eingebaut. Bin gespannt wie 
lange die Batterien halten.

5 weiter wurden Ende Juli in Betrieb genommen, Die LICs waren 3 Monate 
unversorgt auf der Leiterplatte. Bin gespannt, ob die 
Batterielebensdauer reduziert ist.

Quelle der LICs:
https://www.conrad.at/de/search.html?search=LIC%2020F&category=%1Ft13%1Fc17428

Preis knapp unter 8€ und damit das dritt-teuerste Bauelement des 
Sensors.

PS: der LIC mittelt den Strom sehr stark. Aus den Batterien werden im 
Schnitt 530 Mikroampere entnommen, dass kommt der Lebensdauer zu gute 
(siehe Beilage).
Angehängte Dateien:
Gast #5926164
Lesenswert?

Chris D. schrieb:
> GND -> DIP -> IC_pullup(pulldown im standby)
> GND -> DIP -> IC_pullup(output low im standby)

GND -> DIP -> IC_Pullup(im Lesemodus)
GND -> DIP -> IC_Pulldown im Standby)

Wenn ein Layout erstellt wird würde ich noch externe Pullups (1MOhm) 
vorsehen und nicht bestücken.

Damit wäre noch die Variante

GND -> DIP -> externer Pullup (kein interner Pullup -> IC
diese Variante hätte den Vorteil, dass Portinterrupts jederzeit möglich 
sind


Noch eine Möglichkeit:

DIP-Switch mit Wechsler (s.a. Beilage)

https://cdn-reichelt.de/documents/datenblatt/C200/SERIE-NK%23APM.pdf

PIN 1  am Eingange des MSP430
PIN2 an GND
PIN3 über 1kOhm an +3,3V

Eingang Pullup/down abschalten.

Goldkontakte sollten auch ohne Strombelastung funktionieren.
Angehängte Dateien:
Gast #5926187
Lesenswert?

Apollo M. schrieb:
> es gilt, low power setups sind nicht für jeden durchschnittbegabten
> einsichtig.

Dir offenbar nicht. Du hast wohl noch nie gehört, dass eine 
Analogmesswerterfassung mehr Strombedarf bedeutet, dass auf nicht VCC 
und nicht GND sondern irgendwo dazwischen hängende Eingänge grösseren 
Querstrom bedeuten, dass 7*250k parallel zu 140uA führen und damit mehr 
als der ganze uC im Schnitt schlucken soll.

Deone Idee: Scheissidee. Wohl missglückter Trollversuch.
(Firma: @home) #5926280
Lesenswert?

GEKU schrieb:
> Größe Elkos haben nicht geholfen.

das kann ich fast nicht glauben, allerdings sind die unterschiedlichen 
speziellen elko parameter/serien von den unterschiedlichen suppliern 
auch recht unübersichtlich. ich denke du muss mehrere (2-4) parallel 
schalten statt einen grossen wert, damit der esr weiter sinkt.

das der super cap nur als puffer da ist hatte ich nicht auf dem schirm.
finde den dafür auch viel zu teuer, bei voelkner bekommst du zu deinen 
genannten preis 40F statt 20F.

aber ich bin mir sicher, dass die parallelschaltung von mehreren elkos 
dein problem lösen kann. das ist doch eigentlich ein standard thema ... 
die bat hat natürlich einen viel zu grossen innenwiederstand und kann 
das alleine nicht leisten.

die stromforderung des esp8266/esp32 ist ja bekannt, ich habe dazu mir 
extra den ldo HT78xx mit 500mA rausgesucht, wenn der an der leine hängt.


mt
#5926283
Lesenswert?

Sebastian R. schrieb:
> Wenn ja: Die controller-internen Pullups/-downs nehmen und die nur zum
> Auslesen einschalten.

Seit wann werden hier dreimal hintereinander floatende Eingangs-Pins, 
und das noch als Stromsparmaßnahme, empfohlen?

Wenn die MCU sowohl zuschaltbare pull-ups und pull-downs hat: Immer den 
einschalten, der beim letzten Auslesen nichts bewirkt hätte, und zum 
Auslesen periodisch den anderen zuschalten.

Ansonsten: In den sauren Apfel beißen. Kompliziertere Schaltung oder 
sehr hochohmige pull-ups vorsehen.

Edit: Beim zweiten Lesen erst gesehen: Falk hatte auch eine andere 
funktionierende Variante.
(Firma: @home) #5926304
Lesenswert?

MaWin schrieb:
> Dir offenbar nicht. Du hast wohl noch nie gehört, dass eine
> Analogmesswerterfassung mehr Strombedarf bedeutet, dass auf nicht VCC
> und nicht GND sondern irgendwo dazwischen hängende Eingänge grösseren
> Querstrom bedeuten, dass 7*250k parallel zu 140uA führen und damit mehr
> als der ganze uC im Schnitt schlucken soll.

wieder zu ein low performer?!

du verstehst wenig, von dem was hier thema ist und von e-technik, hast 
wohl immer den fensterplatz besetzt?

daher jetzt mal für die, die im dunkeln wohnen und ans licht wollen:

- analogeingang heisst hier, das die digital in/out treiber off sind
- man könnte auch sagen ähnlich "tristate"
- da die eingänge nicht vom analog mux durchgeschaltet sind, sind diese 
an beiden enden potenzialfrei
- mein vorschlag terminiert auf ground mit 200k um den strombedarf, der 
sonst via pull-up min 20k, jetzt mit 220k zu definieren, der dann wenn 
low pegel gelesen wird gilt.


hier gilt nicht, fehlendes wissen wird durch strenge haltung ersetz ... 
kappiert?


mt
(Firma: @home) #5926312
Lesenswert?

Walter T. schrieb:
> Seit wann werden hier dreimal hintereinander floatende Eingangs-Pins,
> und das noch als Stromsparmaßnahme, empfohlen?

weil es keine floatenen eingänge sind, die gibt es nur bei digital 
inputs.
ein nicht vom mux auf single ended geschalteter analogeingang ist nur 
ein "toter leiter" der noch zum leben erweckt werden muss.
(Firma: @home) #5926321
Lesenswert?

Walter T. schrieb:
> nsonsten: In den sauren Apfel beißen. Kompliziertere Schaltung oder
> sehr hochohmige pull-ups vorsehen.

das ist kein sauer apfel oder kompliziert sondern standard, wenn man low 
power mode im visier hat.

hochohmige pull-ups, sind sicher immer besser als die internen, aber 
egal wie hochohmig diese treiben immer strom, daher sind pull-downs 
immer besser!

ich denke, da in der sw wahrscheinlich x-mal unnötig strom verschwendet 
wird, wo low power states und taksanpassungen denkbar wären, braucht 
hier keiner über ströme kleiner ein 1uA nachdenken, echt 
zeitverschwendung.

interessant aber ist, dass simple fragen kollektives unverständnis 
aufzeigen.


mt
Gast #5926336
Lesenswert?

Walter T. schrieb:
> Seit wann werden hier dreimal hintereinander floatende Eingangs-Pins,
> und das noch als Stromsparmaßnahme, empfohlen

Man schaltet nicht auf Eingang, sondern auf Ausgang mit low. Das gibt 
keinen Kurzschluss mit switches auf GND und kostet keinen Strom und 
bewirkt kein floaten.
Nur beim Einlesen schaltet man den Pin auf Eingang mit pull up.

Apollo M. schrieb:
> kappiert

Klar, schon vorher, dein Vorschlag ist einfach nur Mist.
Gast #5926351
Lesenswert?

MaWin schrieb:
> Man schaltet nicht auf Eingang, sondern auf Ausgang mit low. Das gibt
> keinen Kurzschluss mit switches auf GND und kostet keinen Strom und
> bewirkt kein floaten.
> Nur beim Einlesen schaltet man den Pin auf Eingang mit pull up.

Ja, das ist aber viel zu einfach um selbst darauf zu kommen.

Am AT328 habe ich das schon gemacht, aber haben alle anderen 
Prozessoren auch die Möglichkeit, einen internen pullup zu aktivieren?
Gast #5926411
Lesenswert?

Manfred schrieb:
> Ja, das ist aber viel zu einfach um selbst darauf zu kommen.
>
> Am AT328 habe ich das schon gemacht, aber haben alle anderen Prozessoren
> auch die Möglichkeit, einen internen pullup zu aktivieren

Weiter oben habe ich beschrieben, wie man es macht, wenn einem die 
internen pull ups zu schwach (Störsicherheit) sind, das geht natürlich 
auch wenn sie nicht vorhanden sind.

Ausser beim 8051...
#5926437
Lesenswert?

MaWin schrieb:
> Ausser beim 8051...

Natürlich geht das auch beim 8051. Alle Pins an P1..P3 haben Pullups, 
nur an P0 nicht.
Zum Lesen setzt man den Pin auf 1. Danach setzt man ihn auf 0 und der 
Pin wird Ausgang auf low, d.h. der Pullup wird abgeschaltet.
Da man DIP-Schalter eher nicht im MHz Takt betätigt, kann man zwischen 
den Auslesungen lange Pausen lassen.

Mit etwas SW kann man aber auch Schalter an P0 ohne externe Pullups 
einlesen, man lädt P0 mit MOVX auf high auf. Die Schaltungskapazität 
reicht aus, um danach die 1 bei den offenen Pins noch lesen zu können. 
Danach schreibt man 0 in P0, damit die floatenden Pins keinen hohen 
Stromverbrauch bewirken.
#5926454
Lesenswert?

Apollo M. schrieb:
> die daten im internen daten eeprom werden oft komplett negiert, wenn
> statistisch mehrheitlich die bits auf high level stehen.

In welchem Märchenbuch soll das denn stehen?
Das würde ja bedeuten, daß man den EEPROM je nach Inhalt ständig 
umprogrammieren müßte. Niemand bei Verstand würde sowas machen, weil das 
zu Lasten der begrenzten Schreibzyklen geht. Unnütze 
EEPROM-Schreibzyklen sind auf alle Fälle zu vermeiden.
Auf den AVRs kann man deshalb die EEPROMs auch getrennt löschen und 
schreiben. Damit kann man z.B. die 8 Bits eines Bytes nacheinander auf 0 
setzen, ohne jedesmal Löschzyklen zu verbrauchen.
Ein weiterer Vorteil des vorherigen Löschens ist auch, daß sich damit 
die Schreibzeit halbiert. Z.B. wenn bei Stromausfall noch Daten 
gesichert werden sollen, bevor der Pufferelko leer ist.
Gast #5926682
Lesenswert?

Peter D. schrieb:
> MaWin schrieb:
>> Ausser beim 8051...
>
> Natürlich geht das auch beim 8051.

Nein, das (was du beim zitieren weggelassen hast)

MaWin schrieb:
> Weiter oben habe ich beschrieben, wie man es macht, wenn einem die
> internen pull ups zu schwach (Störsicherheit) sind

geht beim 8051 nicht, weil dessen Ausgang nicht sourcen kann.

Der Wechsel von Input mit pull up vs. Output mit low wie du ihn 
beschrieben hast, geht bei ihm schon.

Ordnen wir also unter Missverständnis ein.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren