Forum: Mikrocontroller und Digitale Elektronik Nicht benötigte Ports beim µC wie verschalten?


von Thomas H. (Gast)


Lesenswert?

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

von Hans W. (stampede)


Lesenswert?

Offen lassen, in Software als Ausgang definieren und auf LOW (oder auch 
high) legen.

von spess53 (Gast)


Lesenswert?

Hi

Wenn du nicht auf das letzte µA Stromverbrauch angewiesen bist ist es 
egal.

MfG Spess

von Cyblord -. (cyblord)


Lesenswert?

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

von Dummschwaezer (Gast)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

@  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

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

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

von Thomas H. (Gast)


Lesenswert?

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.

von Reinhard B. (brainstorm)


Lesenswert?

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

von Thomas H. (Gast)


Lesenswert?

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

von Ben S. (theben)


Lesenswert?

Ich klink mich mal hier mit ein. Was von den drei Varianten wäre die 
Stromsparendste?

von Dummschwaezer (Gast)


Lesenswert?

1 und 3

von Falk B. (falk)


Lesenswert?

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

von Ben S. (theben)


Lesenswert?

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?

von Peter II (Gast)


Lesenswert?

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

von Ben S. (theben)


Lesenswert?

dann halt mosfets. egal fast ist aber auch nur fast

von chick (Gast)


Lesenswert?

Im Vergleich zum Stromverbauch der restlichen Schaltung kannst auch ein 
Ei drüberhauen.

von Ben S. (theben)


Lesenswert?

naja aber doch nicht wenn der µC im sleepmodus steckt

von Cyblord -. (cyblord)


Lesenswert?

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

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

cyblord ---- schrieb:
> Also wenn du sowieso nicht liest warum fragst du dann überhaupt? Machs
> doch gleich so wie du denkst (und zwar falsch).

Er hat sich in

   Beitrag "Re: Nicht benötigte Ports beim µC wie verschalten?"

korrigiert. Also nicht zu streng mit ihm sein ;-)

von Vn N. (wefwef_s)


Lesenswert?

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.

von Εrnst B. (ernst)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Vuvuzelatus (Gast)


Lesenswert?

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

von Stefan (Gast)


Lesenswert?

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

von Sam .. (sam1994)


Lesenswert?

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.

von Εrnst B. (ernst)


Lesenswert?

Stefan schrieb:
> In irgendeiner App-Note irgend eines Herstellers

Evtl. bei Xilinx (XC95xxx):
1
Each IOB provides user programmable ground pin capabil-
2
ity. This allows device I/O pins to be configured as additional
3
ground pins in order to force otherwise unused pins to a low
4
voltage state, as well as provide for additional device
5
grounding capability. This grounding of the pin is achieved
6
by internal logic that forces a logic low output regardless of
7
the internal macrocell signal, so the internal macrocell logic
8
is unaffected by the programmable ground pin capability.

Hat aber mit einem AVR nichts zu tun. Den zugehörigen 
AVR-Datenblatt-Ausschnitt hat ja Samuel schon gepostet.

von spess53 (Gast)


Lesenswert?

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

von Stefan (Gast)


Lesenswert?

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

von Michael S. (rbs_phoenix)


Lesenswert?

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.

von Thomas B. (escamoteur)


Lesenswert?

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?

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.