Forum: Mikrocontroller und Digitale Elektronik Dip-switch Stromverbrauch


von Chris D. (d3_m0n)


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

von Sebastian R. (sebastian_r569)


Lesenswert?

Gehen alle 7 Schalter direkt auf den Controller?

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

von Gerald B. (gerald_b)


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 ;-)

von Stefan F. (Gast)


Lesenswert?

Nutze wie gesagt die internen Pull-Up bzw ull-Down Widerstände des 
Controllers (falls vorhanden) oder schließe externe Widerstände an einen 
Ausgang an, den du bei Nicht-Gebrauch abschaltest.

von Chris D. (d3_m0n)


Angehängte Dateien:

Lesenswert?

hmm dann sollte das ja nach Bsp. Unused Pins sein...

von Jim (Gast)


Lesenswert?

Du könntest die Masseseite des DIP-Switches auch nicht direkt mit Masse 
verbinden, sondern an einen Controller-Ausgang hängen und den nur auf 
Low schalten, wenn Du die Switches abfragst.

von MaWin (Gast)


Lesenswert?

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

Klar.
Schalter nach Masse, und nur beim Auslesen die internen pull ups 
einschalten.

Oder falls du externe pull ups vorziehst: die an einen Ouput-Pin und den 
nur zum Auslesen auf high.

von Arno (Gast)


Lesenswert?

...und wenn dir dann I/O-Pins fehlen, kannst du immer noch eine Matrix 
daraus bauen. Dann brauchst du statt 1x O-Pin für Masse und 7x I-Pin mit 
Pull-Up für die Schalterabfrage 3x O-Pin für Masse und 3x I-Pin mit 
Pull-Up für die Schalterabfrage - also 6 I/O-Pins und auch noch weniger 
Pull-Up-Widerstände.

MfG, Arno

von GEKU (Gast)


Angehängte Dateien:

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

von Steward auf dem Narrenschiff (Gast)


Lesenswert?

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

Klar, nimm NO-relaiskontakte für die PU/PD Pfade zu Vcc/GND ...

von A. S. (Gast)


Lesenswert?

Es gibt auch verschiedene Trickschaltungen, wo z.b. ein C zugeschaltet 
wird. Dann high per Output, dann Input und schauen, wie lange der 
pulldown sich müht.

Bei 7 ist es aber egal, ob ein 8er Pin die Masse der dipschalter 
schaltet.

von Chris D. (d3_m0n)


Angehängte Dateien:

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.

von Sebastian R. (sebastian_r569)


Lesenswert?

Möchte vielleicht jemand vorschlagen, die internen Pullups zu nutzen 
oder die gemeinsamen Kontakte auch auf einen uC-Pin zu legen?

Ich glaube, das hat bislang noch niemand vorgeschlagen...

von Apollo M. (Firma: @home) (majortom)


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

von Apollo M. (Firma: @home) (majortom)


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

: Bearbeitet durch User
von ... (Gast)


Lesenswert?

Ein Tantalelko mit messbarem "Reststrom" ist defekt.

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

... schrieb:
> Ein Tantalelko mit messbarem "Reststrom" ist defekt.

dann lese mal z.b. hier zur erhellung der dunkeheit!

https://www.avx.com/docs/techinfo/1_Analysis.pdf

von Stefan F. (Gast)


Lesenswert?

Ich habe Tantal-Elkos früher gerne Timer-Schaltungen in Kombination mit 
Widerständen >1MΩ verwendet. Bei normalen Elkos hatte sich der Leckstrom 
stärker ausgewirkt, als bei Tantal. Das ist aber schon 20 Jahre her, 
vielleicht ist das heute anders.

von MaWin (Gast)


Lesenswert?

Apollo M. schrieb:
> - inputs sind alle mit 200k an gnd, internal pull-up ist 20-50k

Als STROMSPARENDE Methode ? Wie unsinnig ist das denn ?

von Falk B. (falk)


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.

von Apollo M. (Firma: @home) (majortom)


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

von Apollo M. (Firma: @home) (majortom)


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

: Bearbeitet durch User
von Falk B. (falk)


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.

von A. S. (Gast)


Lesenswert?

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

OC/OD braucht Falk auch nicht, sondern zuschaltbare Pullups. Wenn es die 
gibt, ist alles OK und gut, wenn nicht, müssen die halt Extern und (mit 
der anderen Seite, statt direkt an V+) an einen IO-Pin.

von Apollo M. (Firma: @home) (majortom)


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

: Bearbeitet durch User
von Apollo M. (Firma: @home) (majortom)


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

von A. S. (Gast)


Lesenswert?

Apollo M. schrieb:
> 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.

Da hätte ich aber gerne mal ne Quelle oder zumindest ne Größenordnung 
zu.

von GEKU (Gast)


Angehängte Dateien:

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).

von Chris D. (d3_m0n)


Lesenswert?

Ich will euch ja bei eurer Diskusion nicht stören aber was ist denn jetz 
die Lösung....

GND -> DIP -> IC_pullup(pulldown im standby)
GND -> DIP -> IC_pullup(output low im standby)

Diese beiden Möglichkeiten habe ich bis jetzt rauslesen können aus den 
ganzen Antworten.:D

lg

von Bernd K. (prof7bit)


Lesenswert?

Und denk dran nach dem Einschalten der Pullups ein paar hundert 
Taktzyklen Zeit vergehen zu lassen bis sich die parasitären Kapazitäten 
aufgeladen haben bevor Du sie ausliest.

: Bearbeitet durch User
von GEKU (Gast)


Angehängte Dateien:

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.

von MaWin (Gast)


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.

von Apollo M. (Firma: @home) (majortom)


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

von Walter T. (nicolas)


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.

: Bearbeitet durch User
von Chris D. (d3_m0n)


Lesenswert?

> Edit: Beim zweiten Lesen erst gesehen: Falk hatte auch eine andere
> funktionierende Variante.



Diese beiden Varianten sind mit dem selben Layout möglich.
Jetzt ist hhalt die Frage was besser ist...

GND -> DIP -> IC_pullup(pulldown im standby)
GND -> DIP -> IC_pullup(output low im standby)

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Ist vermutlich egal

von Apollo M. (Firma: @home) (majortom)


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

von Manfred (Gast)


Lesenswert?

Apollo M. schrieb:
> wieder zu ein low performer?!

Großes Maul und im Deutschunterricht Winterschlaf gehalten, bitte weiter 
so.

von Apollo M. (Firma: @home) (majortom)


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.

von Apollo M. (Firma: @home) (majortom)


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

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

Chris D. schrieb:
> Diese beiden Varianten sind mit dem selben Layout möglich.
> Jetzt ist hhalt die Frage was besser ist...
>
> GND -> DIP -> IC_pullup(pulldown im standby)
> GND -> DIP -> IC_pullup(output low im standby)


von den zwei wäre besser GND -> DIP -> IC_pullup(pulldown im standby)!

von MaWin (Gast)


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.

von A. S. (Gast)


Lesenswert?

Hast du denn pullup und pulldown zuschaltbar? Dann mach das. Und wenn 
nicht, dann halt statt des fehlenden dann Output.

Und wenn weder pullup noch pulldown, dann den einen zusätzlichen portpin 
und externe Rs.

von Chris D. (d3_m0n)


Lesenswert?

> 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.

Ich hoffe du meinst damit nicht meine SW...

von Chris D. (d3_m0n)


Lesenswert?

Und der Ic hat beides! PD und PU.

lg

von Manfred (Gast)


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?

von MaWin (Gast)


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...

von Peter D. (peda)


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.

von Peter D. (peda)


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.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Peter D. schrieb:
> Mit etwas SW kann man aber auch Schalter an P0 ohne externe Pullups
> einlesen
1
uint8_t read_p0(void)
2
{
3
  uint8_t val;
4
  *((uint8_t volatile xdata*)0xFFFF) = 0xFF;
5
  val = P0;
6
  P0 = 0x00;
7
  return val;
8
}

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

Peter D. schrieb:
> In welchem Märchenbuch

wie doof bist du den das wird via sw erledigt, troll geh ruhig weiter 
saufen!

: Bearbeitet durch User
von MaWin (Gast)


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.

von Peter D. (peda)


Lesenswert?

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

Du hättest statt "weiter oben ..." besser verlinken sollen. Ich habe 
nicht gefunden, welchen Post Du damit meinst.
Einfach Rechstklick auf den Text in der gelben Zeile.

von MaWin (Gast)


Lesenswert?

Peter D. schrieb:
> Du hättest statt "weiter oben ..." besser verlinken sollen. Ich habe
> nicht gefunden, welchen Post Du damit meinst.

Betreutes Lesen ?

Beitrag "Re: Dip-switch Stromverbrauch"

Die Fähigkeit, eigenständig überleben zu können, sinkt wohl mit jeder 
Stunde.

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.