Forum: Mikrocontroller und Digitale Elektronik Warum keine undefinierten Pins?


von Jörg Günzel (Gast)


Lesenswert?

Hallo,
ich habe schon oft und aus den unterschiedlichsten Quellen gehört, daß
unbenutzte Pins eines µCs (speziell in meinem Fall ATMegas) durch die
Harware auf ein bestimmtes Potential gelegt werden sollen,
stellvertretend hierzu:
http://www.mikrocontroller.net/forum/read-1-168211.html#168268
Ich verstehe aber den Grund dafür nicht. Beim Reset-Pin oder nicht
ausgeschaltete Interrupts kann natürlich eine von außen einstreuende
Störung einen fatalen Einfluß haben, aber was kann bei einfachen
I/O-Pins, deren Zustand überhaupt nicht abgefragt wird, passieren?
Gruß
Jörg

von Olaf (Gast)


Lesenswert?

Es sollte auch ausreichen einen unbenutzten Pins als Ausgang zu
schalten.

Ein unbenutzter Pin als Eingang ist sehr hochohmig. Er koennte sich
schnell etwas einfangen. (z.B den naechsten Mittelwellensender)
Im einfachsten Fall bedeutet das nur das deine Schaltung unter
umstaenden deutlich mehr Strom verbraucht als sie muesste. Im
schlimmsten Fall zuendet aber der Thyristor am eingang (latch up) und
dein IC entloetet sich selber. .-)

Olaf

von Jörg Günzel (Gast)


Lesenswert?

Danke!
Heißt das, es reicht, direkt am Anfang des Programms alle unbenutzten
Pins als Ausgang zu schalten, weil in der kurzen Zeit zwischen Start
des µCs und der Festlegung als Ausgangs-Pins (ist das in diesem
Zeitraum dann Zufall, welchen Status die Pins haben?) kein Schaden
angerichtet
werden kann?
Jörg

von ka-long (Gast)


Lesenswert?

Hi,

Man kann auch einfach die Pullups/Pulldowns aktivieren.

LatchUp sollte nur durch ESD auftreten, also z.B. wenn Du Deine
Schaltung berührst. Viele neue uC haben aber sowieso Schutzdioden am
Eingang.

Normalerweise geht ein hochohmiger Eingang schnell auf 1 und jittert
wie sau. Das kann durchaus auch Deinen uC durcheinander bringen.

Gruß ka-long

von Edgar Renner (Gast)


Lesenswert?

Unbeschaltete PINs können die Störfestigkeit deiner Schaltung
verringern. Bei Logikbausteinen, können sogar Schwingungen erzeugt
werden, die bis in den GHz-Bereich hinauf reichen. Fatalerweise sind
diese Störungen auch von dem PCB-Layout, Leitungführung usw. abhängig.
Es entstehen, wenn man Pech hat unangenehme und schwer behebbare
Fehlfunktionen und EDS/EMV-Probleme.

Ich meine: Es ist ein kleiner Aufwand einen nichtbenutzen Input auf GND
oder VCC zu schalten; es ist nicht mal ein Bauteil, sonder nur eine
elektrische Verbingung notwendig.

Grüße

von Alex (Gast)


Lesenswert?

Wäre es aber nicht gerade für Anfänger sinnvoller, die Pins über einen
Widerstand gegen Masse/Vcc zu legen?

Wie schnell ist es einmal passiert, und man hat beim Basteln
(Programmieren) einen Pin aus Versehen als Ausgang definiert. Wenn
dieser dann meinetwegen H-Pegel hat und der Pin auf Masse liegt, war es
das für den Controller (Kurzschluß).

Meinungen?

von Thomas Burkhardt (Gast)


Lesenswert?

Hi Alex,

da hast du vollkommen recht :)
Das niederohmige Verbinden ist in dem Fall durchaus riskant aufgrund
der eben von dir beschriebenen Problematik.

Ich halte nur hochohmige Eingänge für Mist, wenn der µC also interne
Pullups hat, die aktivieren und gut ist.

von Jörg Günzel (Gast)


Lesenswert?

@alle
Also habe ich das jetzt richtig verstanden?
Die folgenden 3 Möglichkeiten sind gleichwertig und verhindern
Störeinflüsse:
1. Nicht benutzte Pins per Hardware auf VCC/GND (besser über
Widerstand, wegen Kurzschlußgefahr) legen und als Eingang definieren
2. Interne Pulldowns/Pullups aktivieren
3. Pins als Ausgang schalten
Wobei bei den letzten beiden Optionen die Zeit bis der Controller diese
Befehle abgearbeitet hat irrelevant ist (s. mein 2. Posting im Thread).

Nur die Pins dauerhaft als unbeschalteten Eingang zu definieren, birgt
die Gefahr, daß diese sich Störstrahlung von außen einfangen.

Gruß
Jörg

von Hauke Radtki (Gast)


Lesenswert?

am sinnvollsten ist glaub ich die ports als ausgang zu schalten, und die
pullups zu deaktivieren ... verbraucht am wenigsten strom, und wir
wollen doch alles stromsparen :p

von hajde luje (Gast)


Lesenswert?

ich habe bis jetzt immer variante 3 gewählt und hatte nie probleme.

von Unbekannter (Gast)


Lesenswert?

@Hauke Radtki:

> am sinnvollsten ist glaub ich die ports als ausgang zu schalten,
> und die pullups zu deaktivieren ... verbraucht am wenigsten strom

Aha. Und warum verbraucht ein interner Pullup mehr Strom als ein
offener Ausgang?

Kannst Du dafür eine schlüssige Theorie liefern und Deine Theorie durch
Messungen untermauern? Oder hast Du einfach mal etwas behauptet ohne es
wirklich zu wissen?

von Uwe Nagel (Gast)


Lesenswert?

Den Port als Ausgang definieren und gleichzeitig Pullups zu aktivieren
dürfte speziell bei den AVR's nicht gehen. Bei PIC's ist das anders,
da kann man Pullups aktivieren und 0-Pegel ausgeben. Da fliesst dann
der Strom, den wir alle sparen wollen...

von dds5 (Gast)


Lesenswert?

@ Uwe Nagel
Diese Aussage trifft zumindest für die PIC18F Typen nicht zu. Bei
diesen wird der zugehörige Pullup-Wid. automatisch abgeschaltet wenn
man einen Pin als Ausgang definiert.

Gruß    Dieter

von Uwe Nagel (Gast)


Lesenswert?

Ok, schliesse mich an. Das ist wohl bei allen PICs so. Ich dachte hier
an den 16F84, bei dem es nur ein einziges Bit zum Einschalten der
Pullups an PortB gibt. Aber da wird der Pullup wirklich individuell in
Abhängigkeit vom TRISB-Register abgeschaltet. Das war mir im Datenblatt
noch nie aufgefallen.

von gfunk (Gast)


Lesenswert?

Hallo zusammen,
ich hole den Beitrag mal wieder hoch, weil mir gefällt dass hier 
systematisch an eine viel diskutierte Frage gegangen wird.
Vermutlich gibt es zu dem Thema so viele Meinungen wie µC-Varianten.

Einig bin ich mit den weiter oben genannten 3 Möglichkeiten, unbenutzte 
Pins zu beschalten.

Was mache ich in der Software wenn das Leiterplatten-Design bereits 
feststeht, und dort an jedem ungenutzen Pin ein externer Pull-Up an Vcc 
hängt?
a) Die Pins als Eingang schalten und den internen Pull-Up zusätzlich 
aktivieren
b) oder besser nur so als Eingang schalten ohne internen Pull-Up, weil 
extern ja schon vorhanden
c) als Ausgang beschalten? In diesem Fall High?

Beste Grüße,
gfunk

von oldmax (Gast)


Lesenswert?

Hi
Auch wenn du eine Uroma aus dem Keller holst, eine kurze Antwort: Es ist 
doch alles klar beschrieben. Ob interner Pullup oder externer, beide 
binden den sonst hochohmigen und äußerst sensiblen Eingang an ein 
Potential.
Gruß oldmax

von gfunk (Gast)


Lesenswert?

Ok, das ist richtig. War mir nur nicht sicher ob ich den internen 
Pull-Up zusätzlich aktivieren sollte. Vermutlich macht es keinen 
Unterschied.

Gruß + Danke

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.