www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie Ports setzen wenn nicht beschaltet.


Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie sollte man die Ports eines Mikrocontrollers setzen wenn diese nicht 
beschaltet sind, bzw. auf Masse liegen?

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
als Eingang natürlich

Autor: Stephan Hochberger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei unbeschalteten Pins möglichst noch die Pull-Ups aktivieren

Autor: Mark. K (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Bei unbeschalteten Pins möglichst noch die Pull-Ups aktivieren

Weil?

Ich lasse die I/Os als Eingang, wenn ich sie nicht brauch - so wie es 
bei den PICs standardmäßig definiert ist.

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Bei unbeschalteten Pins möglichst noch die Pull-Ups aktivieren

>Weil?

Weil sonst undefinierter Pegel anliegt. Macht man bei CMOS-Eingängen 
grundsätzlich so, um Schwingereien vorzubeigen.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Lest doch einfach mal die Datenblätter:

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. In this case, the pull-up will be disabled during 
reset. If low power consumption
during reset is important, it is recommended to use an external pull-up 
or pull-down. Connecting unused pins directly to VCC or GND is not 
recommended, since this may cause excessive currents if the pin is 
accidentally configured as an output.

MfG Spess

Autor: Jojo S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Connecting unused pins directly to VCC or GND is not
>recommended, since this may cause excessive currents if the pin is
>accidentally configured as an output.

gut, und wenn der Pin richtig konfiguriert ist? Dann müsste eine GND 
Verbindung doch sparsamer sein, die Pullups ziehen doch Strom (was sich 
bei Batteriegeräten bemerkbar machen dürfte).

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Johannes Stratmann wrote:
> gut, und wenn der Pin richtig konfiguriert ist? Dann müsste eine GND
> Verbindung doch sparsamer sein, die Pullups ziehen doch Strom (was sich
> bei Batteriegeräten bemerkbar machen dürfte).
Nö. Wo soll der Strom denn hinfließen bei einem hochohmigen Eingang?

Autor: Jojo S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
stimmt auch wieder. Und das 'accidentally configured as an output' 
bezieht sich dann vermutlich auf die Resetphase, oder?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Johannes Stratmann wrote:
> stimmt auch wieder. Und das 'accidentally configured as an output'
> bezieht sich dann vermutlich auf die Resetphase, oder?
Nö. Ich kenne keinen µC, bei dem im Reset-Zustand die I/O-Pins als 
Ausgänge konfiguriert sind (*). Es geht hier schon darum, dass der 
Programmierer durch eine unbedachte Zuweisung einen Portpin abschießen 
kann.

(*) abgesehen von Programmieranschlüssen, bei AVR z.B. MISO.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"accidentally configured as an output" heißt, dass es schlecht ist, 
einen Pin, den du von außen auf Masse verdrahtest, dann später 
versehentlich als Ausgang zu konfigurieren, und dann einzuschalten 
(=Kurzschluss)

Türlich kannstu auch die unbenutzen Pins fest nach Masse verdrahten 
(oder Vcc), nur dann bitte nicht vergessen, sie als Eingang zu benutzen!

Während der Resetphase sind die Pins automatisch alle als Eingänge 
konfiguriert, um eben solchen Problemen vorzubeugen.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Bitte beachten: '..it is recommended to..'.

Also auch lt. Atmel nicht zwingend notwendig. Das entspricht auch 
meiner, fast 10 jährigen Erfahrung mit AVRs. Für den normalen Betrieb, 
also ohne Sleep-Mode u.ä. unbeschaltete Pin einfach nicht beachten. Für 
übervorsichtige: externer Pullup oder Pulldown. Keinesfalls hart auf 
Masse oder VCC legen. Interne Pullups sind nicht sicher, da sie 
unbeabsichtigt softwaremässig abgeschaltet werden können.

MfG Spess

Autor: Entwickler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Interne Pullups sind nicht sicher, da sie unbeabsichtigt softwaremässig 
abgeschaltet werden können.

Das ist doch Quatsch. Wir wollen mal unterstellen, dass der 
Programmierer sein Handwerk versteht.


Im Übrigen ist es auch nur eine Empfehlung, sich den Hintern 
abzuwischen, müssen tut man es nicht. Es hat aber immense Vorteile.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Das ist doch Quatsch. Wir wollen mal unterstellen, dass der
>Programmierer sein Handwerk versteht.

Ich gehe aber davon aus, das hier eine ganze Reihe Leute unterwegs sind, 
die erst ihr Handwerk lernen. Zweitens glaube ich nicht, wenn in C ein 
PortX=Y geschrieben wird, sich der Compiler darum kümmert, das dort ein 
paar PullUps erhalten werden müssen.

MfG Spess

Autor: Entwickler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Zweitens glaube ich nicht, wenn in C ein PortX=Y geschrieben wird, sich der 
Compiler darum kümmert, das dort ein paar PullUps erhalten werden müssen.

Da gebe ich Dir recht. Nicht jeder Controller hat Pullups. Daher 
empfiehlt sich in dem Fall, wo es keine Pullups gibt, unbenutzte Ports 
als Ausgang zu konfigurieren.

Autor: C. Schirp (cees)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich würde die Ports auch immer als Ausgang, Low programmieren und 
im Layout natürlich offen lassen.

Gründe:

Ausgang ist Eingang auf jeden Fall vorzuziehen, da (weiss eigentlich 
jeder, der schonmal mit Digitalelektronik gearbeitet hat) man 
GRUNDSÄTZLICH keine Eingänge unbeschaltet lässt. Also: Wenn Eingang, 
dann alle auf Masse legen. ABER: bei jedem Lötfehler hat man dann doch 
einen unbeschalteten Eingang, über den man sich herrlich Störungen 
einfängt. Also: Als Ausgang programmieren, dann erledigt sich das 
"offener Eingang" Problem von selbst.
LOW, da die Lowside-Transistoren (nmos) robuster sind als die 
Highside-Transistoren und GND meist die niederohmigste Rail auf dem 
Controllerchip ist -> ebenfalls robust.

Weiterhin: wir alle machen Fehler - wenn man z.B. beim Maskieren eines 
Portread eine falsche Bitmaske hat, führt ein Eingang zu sporadischen 
Fehlern, ein Ausgang dagegen nicht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.