Hallo zusammen,
ich glaub, ich hab mal ne typische Anfängerfrage.
Wie sieht die elektrische Schaltung bei einem µC aus, bei dem nicht alle
Ports benötigt werden.
Ich nehme an, ohne Bezugsmasse sollte man Sie nicht anschließen, wegen
EMV, usw.
Ist es am besten bzw. am einfachsten, wenn alle nicht benötigen Ports
als Ausgänge definiert werden und die internen Pull-up Widerstand als
aktiv definiert werden?
Danach kann man alle Ausgänge mit Masse verbinden, oder? Hoffe ich bin
nicht ganz auf dem falschen Dampfer. :-)
Gruß und Dank.
Thomas
Hat man als Anfänger keine anderen Sorgen?
Erstmal kannst du sie einfach offen lassen und nicht beachten.
Grundsätzlich können sie dann aber als Antenne fungieren und andauernd
umschalten was intern zu einem höheren Stromverbrauch führt. Darum kann
man die internen Pullups aktivieren. Dann haben sie einen definierten
Zustand.
Aber sie dann noch auf Masse zu legen macht überhaupt keinen Sinn.
gruß cyblord
siehe Datenblatt, im allgemeinen: auf PCB zwar Pad, aber keinen
Leiterzug vom (zum) pad
entweder
Ausgang, low oder high
oder
Eingang, pull up oder down.
bei einigen "speziellen" Ports (JTAG, unbenutzte Takteingänge,..) sollte
dias irgendwo im Datenblatt erwähnt sein.
mfg
@ Thomas H. (Gast)
>Wie sieht die elektrische Schaltung bei einem µC aus, bei dem nicht alle>Ports benötigt werden.
Wweitrangig.
>Ich nehme an, ohne Bezugsmasse sollte man Sie nicht anschließen, wegen>EMV, usw.
???
>Ist es am besten bzw. am einfachsten, wenn alle nicht benötigen Ports>als Ausgänge definiert werden
Kann man machen.
> und die internen Pull-up Widerstand als>aktiv definiert werden?
Geht beides gleichzeitig nicht, ist auch sinnlos.
ENTWEDER Ausgang ODER Pull-Up.
>Danach kann man alle Ausgänge mit Masse verbinden, oder?
Oder. Wenn man die Ausgänge per SOftware/Fehler wahtever auf HIGH
schaltet, gibt es einen schönen Kurzschluss.
Lass sie offen und gut.
MFG
Falk
Thomas H. schrieb:> Ist es am besten bzw. am einfachsten, wenn alle nicht benötigen Ports> als Ausgänge definiert werden und die internen Pull-up Widerstand als> aktiv definiert werden?
Ausgang und interner Pull-Up-Widerstand schließen sich aus. Du kannst
nur eines davon machen. Also meinst Du Eingang, nicht Ausgang.
> Danach kann man alle Ausgänge mit Masse verbinden, oder?
Auch hier ist es besser, sie nur dann mit Masse zu verbinden, wenn sie
als Eingang beschaltet werden. Dann aber ohne Pullups. Diese wären
hinfällig.
Wenn Du die Pins wirklich auf Ausgang schaltest, sie dann auf High-Pegel
setzt und dann noch mit Masse verbindest, hast Du nichts anderes als
einen kleinen aber feinen Heizkörper, der das gar nicht so recht mag,
was Du mit ihm veranstaltest ;-)
Um auf Deine ursprüngliche Frage zurückzukommen: Es gibt 3
Möglichkeiten, die offenen Pins auf definierten Pegel zu bekommen:
1. Als Ausgang schalten und nicht anschließen
2. Als Eingang mit PullUp schalten und nicht anschließen
3. Als Eingang ohne PullUp schalten und mit GND oder Vcc verbinden
Was davon am sinnvollsten ist, können Dir nur die Experten sagen. Ich
bin keiner ;-)
Gruß,
Frank
Vielen Dank für die schnellen und umfangreichen Antworten.
Falk Brunner schrieb:> Wenn man die Ausgänge per SOftware/Fehler wahtever auf HIGH> schaltet, gibt es einen schönen Kurzschluss.
Genau das wollte ich vermeiden. Genauso dass es irgendwie als Antenne
fungiert.
Werde die Ports dann zur Sicherheit als Eingang mit Pull-up-Widerständen
deklarieren und die Ports dann auf Masse legen. Danke.
Frank M. schrieb:> Ausgang und interner Pull-Up-Widerstand schließen sich aus.
Theoretisch... Der STM32L beispielsweise erlaubt solch eine
Konfiguration. Die Sinnhaftigkeit sei mal dahingestellt.
mfg
Thomas H. schrieb:> 1. Als Ausgang schalten und nicht anschließen>> 2. Als Eingang mit PullUp schalten und nicht anschließen>> 3. Als Eingang ohne PullUp schalten und mit GND oder Vcc verbinden
Sorry, hab ich jetzt erst gelesen. Ja, dann nehme ich deine dritte
Variante.
Ja, ich hatte zu Beginn, Eingänge mit Ausgänge verwechselt. :-o
1,2 und 3 sind alle gleich stromsparend. Unsinnig ist (mal) wieder die
Wahl des OP
"Werde die Ports dann zur Sicherheit als Eingang mit
Pull-up-Widerständen
deklarieren und die Ports dann auf Masse legen. Danke."
Denn dann fließt immer vollkommen sinnlos Strom durch den Pull-Up.
Aber jedem wie er es gern hätte.
MFG
Falk
Naja die Ausgänge werden doch bestimmt irgendwie mit Transistoren
gesteuert und wenn ein ein Transistor die ganze zeit eingeschaltet ist
verbraucht die doch einen gewissen strom?
Ben S. schrieb:> Transistor die ganze zeit eingeschaltet ist> verbraucht die doch einen gewissen strom?
es sind Mosfets - und der strom ist damit (fast) 0
Du hast überall Leckströme. Egal was du machst. Die verwendete
Schaltungstechnik verbraucht aber nunmal nur dann signifikant Strom wenn
sie schaltet. Ganz im Gegensatz zu einer Kontruktion wo man unnötig
Strom durch den Pullup jagt.
> Werde die Ports dann zur Sicherheit als Eingang mit Pull-up-Widerständen> deklarieren und die Ports dann auf Masse legen. Danke.
Bitte. Du hast dir die dümmste Möglichkeit rausgesucht. Im Gegensatz zu
allen Posts (auch ich habe bereits geschrieben dass dies Quatsch ist).
Also wenn du sowieso nicht liest warum fragst du dann überhaupt? Machs
doch gleich so wie du denkst (und zwar falsch).
Falk Brunner schrieb:> "Werde die Ports dann zur Sicherheit als Eingang mit> Pull-up-Widerständen> deklarieren und die Ports dann auf Masse legen. Danke.">> Denn dann fließt immer vollkommen sinnlos Strom durch den Pull-Up.>> Aber jedem wie er es gern hätte.
Von der bereits genannten Problematik mit Kurzschlüssen bei
Softwarefehlern mal abgesehen.
Nochmal zum mitmeisseln:
> 2. Als Eingang mit PullUp schalten und nicht anschließen
ist die Beste™ Wahl.
Weil:
- Kein Stromverbrauch im Ausgangs-Treiber/Pullup, da Pin nicht
angeschlossen
- Kein Stromverbrauch im Eingangs-Schmitt-Trigger, da definiertes
Potential.
- Kein Kurzschluss wenn Port ausversehen als Ausgang definiert wird
- Kein Kurzschluss wenn man ausversehen mit der
Messpitze/Oszitastkopf/... abrutscht.
Ben S. schrieb:> dann halt mosfets. egal fast ist aber auch nur fast
Alles eine Frage der Relation.
Wenn du dadurch bei 2 Stunden Akkubetrieb eine halbe Sekunden mehr aus
dem Akku rausquetschen kannst, dann ist das eine 'Optimierung' die dir
de facto nichts bringt.
> 2. Als Eingang mit PullUp schalten und nicht anschließen
Das Nichtanschließen hat noch weitere Vorteile:
- Man muss keine Leiterbahnen zu nichtbenutzen Pins routen --> weniger
Aufwand mit dem Platinenlayout.
- Auf einseitigen Platinen kann man nichtbenutzte Pins anhand ihrer
isolierten Pads erkennen. Ist doch auch nett.
- Möchte man später einen ungenutzen Pin doch noch verwenden, ist es
sicher angenehmer, das dann sofort tun zu können (per drangelötetem
Draht), ohne den Pin erst freifräsen zu müssen.
Hallo,
In irgendeiner App-Note irgend eines Herstellers (nein Falk ich weiß die
Quelle nicht mehr) wurde empfohlen die unbenutzten Pins auf GND zu legen
und als Ausgänge Low zu schalten. Damit entstehen zusätzliche
GND-Verbindungen. Was ist davon zu halten?
mfg Stefan
AVR-Datasheet
Unconnected pins
If some pins are unused, it is recommended to ensure that these pins
have a defined level. Even though most of the digital inputs are
disabled in the deep sleep modes as described above, floating inputs
should be avoided to reduce current consumption in all other modes where
the digital inputs are enabled (Reset, Active mode and Idle mode).
The simplest method to ensure a defined level of an unused pin, is to
enable the internal pull-up.
Hi
>Was ist davon zu halten?
Nichts.
Ist doch alles schon zig mal durchgekaut worden. Hier hat auch jemand
gemessen:
Beitrag "Re: Unbenutzte AVR-Pins wie beschalten (EMV)?"
Übrigens sind die internen Pull-Ups auch mal ganz schnell durch einen
Softwarefehler abgeschaltet.
MfG Spess
Hallo Spess ,
vielen Dank für den Link. Aber :
>> Beitrag "Re: Unbenutzte AVR-Pins wie beschalten (EMV)?"
dieser Thread ended mit dem Tip :
>> Für die Entwicklungsphase würde ich beim Pullup bleiben. Für die>> entgültige Schaltung kann es sinnvoll sein Pins als Ausgang und low zu>> setzen und dann auch extern an GND anzuschließen. Damit hat man dann>> eine zusätzliche GND anbindung. Besonders bei Chips wie dem 2313 kann da>> günstig sein, weil da die GND und VCC Pins weit auseinander liegen.>> Der Unterschied wird aber nicht groß sein.
Prinzipiell wird ja empfohlen während Messungen mit dem ADC an keinem
Pin des entsprechenden Ports zu wackeln. Ich nutzte daher die 'freien'
Pins eines analogen Ports nicht und lege diese auf GND. Ob das was
bringt weiß ich nicht geschadet hat es aber bisher nicht. Daher die
Frage weiß jemand ob es hilft. Vielleicht Anja?
mfg Stefan
Ich hab interessehalber mal bei Microchip geguckt:
AN1416 - Low-Power Design Guide - Seite 15
http://ww1.microchip.com/downloads/en/AppNotes/01416a.pdf> An unused I/O pin should be left unconnected, but configured as an output> pin, driving to either state (high or> low), or configured as an input with an external resistor> (about 10 k) pulling it to VDD or VSS. If such a pin can> be configured as an analog input, the digital input buffer> is turned off, preventing the excess current consumption caused by a> floating signal. Any of these methods> will prevent the floating node case, minimizing power.
Wieso werden in den Beispielen zum STM32 erst alle Pins auf Input
Floating geschaltet mit dem Kommentar "to save energie" wenn floating
Pins einen höheren Stromverbrauch haben?