Ist es wirklich eine schlechte Idee, einen MCU-Eingangspin schwebend zu lassen?

Ich habe gehört, dass das Belassen eines Pins, der auf einer MCU schwebend bleibt, wenn er als Eingang konfiguriert ist (im Gegensatz zum Standardausgang), schlecht für den Pin ist und schließlich dazu führen kann, dass er vorzeitig ausfällt. Ist das wahr? Hinweis: In meinem Fall schwebt der Pin aufgrund eines eingehenden Videosignals irgendwo zwischen 0,3 V und 1,3 V. Dies fällt manchmal in die Niemandszone von 0,8 V - 2,0 V, wenn mit 3,3 V betrieben wird.

Haben Sie das Datenblatt und die Dokumentation der MCU-Familie überprüft? Sie sollten einige ziemlich eindeutige Antworten haben und Sie können sehen, wie die Pins intern implementiert werden.
@XTL, ich habe sie durchsucht, aber keine Hinweise darauf gefunden. Sie sagen, dass schwimmende Stifte undefinierte Zustände annehmen können, erwähnen aber nicht, ob dies Probleme verursachen könnte.
Es gibt einen Unterschied zwischen einem potenzialfreien Digitaleingang und einem als analog definierten Eingang. Klingt nach einem analogen Eingang.
@Martin Ich kann den Pin nicht zu einem analogen Eingang machen. Ich habe eine Zeitscheibe von ~ 125 ns für jedes Pixel im Video (25 ns Befehlstakt), kann also keine einzige Nanosekunde mehr aufwenden.
Welche MCU verwenden Sie, die standardmäßig alle Pins ausgibt ? Das klingt nach einem Rezept für eine Katastrophe.

Antworten (6)

Problem:
Es ist gefährlich, einen als Eingang konfigurierten Pin schwebend zu lassen, einfach weil Sie sich über den Zustand des Pins nicht sicher sein können. Wie Sie bereits erwähnt haben, war Ihr Pin aufgrund Ihrer Schaltung manchmal LOW oder manchmal im Niemandsland oder konnte manchmal auf HIGH gehen.

Ergebnis:
Im Wesentlichen wird der schwebende Eingang definitiv einen fehlerhaften Chipbetrieb oder ein unvorhersehbares Verhalten verursachen. Ich habe festgestellt, dass einige Chips eingefroren sind, indem ich einfach meine Hand näher an die Platine bewegt habe (ich trug kein ESD-Armband), oder einige zeigten bei jedem Einschalten der Platine ein anderes Startverhalten.

Warum:
Dies geschieht einfach, weil der Pin oszillieren würde, wenn externes Rauschen an diesem Pin vorhanden ist, wodurch Strom abgezogen würde, da CMOS-Logikgatter Strom abziehen, wenn sie den Zustand wechseln.

Lösung:
Die meisten Mikros haben heutzutage auch interne Klimmzüge, so dass dieses Verhalten verhindert werden könnte. Eine andere Möglichkeit wäre, den Pin als Ausgang zu konfigurieren, damit er die Interna nicht beeinflusst.

Wenn Sie es als Eingabe verwenden, führt dies definitiv zu unregelmäßigen Eingaben, aber wirkt es sich wirklich auf andere Teile des Chips aus und verursacht Startprobleme?
Wenn ich den Pin ignoriere und ihn nicht für Peripheriegeräte verwende, würde es dann immer noch Probleme geben?
@endolith und Thomas - ich denke, mikeselectricstuff hat das für dich beantwortet! Es könnte Probleme verursachen, indem es einfach Rauschen in andere Teile des Systems einführt. Ich weiß, dass es am schwebenden Pin lag, denn sobald ich ihn auf einen Ausgang konfiguriert hatte, verschwanden die Probleme!
Ich verstehe nicht, wie ein schwebendes Stück Metall Geräusche in andere Teile des Systems einbringen kann. Es nimmt sicherlich Rauschen auf, aber wenn Sie nicht auf die Eingabe achten, sollte das keine Rolle spielen. Hängen die Probleme mit winkenden Händen in der Nähe wirklich mit unbenutzten schwebenden Eingängen zusammen?
TIL Floating Pins sind nicht harmlos. Danke IntelliChick und @Yann!
@endolith Sie haben meistens Recht, ein schwimmender Stift oszilliert häufig Zustände und verursacht einen Stromverbrauch. Dies allein sollte kein Problem verursachen, ich habe noch nie ein solches Problem gesehen. Ich würde jedoch Geld wetten, dass ein schlecht entkoppeltes Netzteil dazu führen könnte, dass dieses Rauschen echte Probleme verursacht. Das einzige, was ich sagen muss, ist, dass ich dieser Antwort sehr widerspreche, dass sie immer ein Problem verursachen wird.
@Kortuk: Wie oszilliert ein Eingang? Wie verursacht dies Probleme in anderen Schaltkreisen?
@endolith Ein schwebender Impedanzeingang tanzt oft überall herum. Es spielt keine Rolle, was der Pin tut, diese winzige Schwingung bringt die Eingangsschaltung für den Pin dazu, mit ihm herumzuspringen, wenn er seinen Zustand ändert. Wenn es den Zustand ändert, zieht es Strom, was zu einem Stromverbrauch führt, der mit dem Eingang synchronisiert wird, insbesondere wenn der Eingang von gekoppeltem Rauschen in der Nähe abprallt, und jedes Problem mit der Leistungskonditionierung leicht verschlimmert. Auch hier habe ich noch nie gesehen, dass dies mehr als eine Leistungsaufnahme verursacht, aber ich kann mir die Auswirkungen auf einen schlecht entkoppelten Stromkreis vorstellen.
Aber wie bekämpft ein Widerstand den "floating pin"?

Es ist etwas schlimmer, als sich nur in einem unbekannten Zustand zu befinden oder unnötig umzuschalten. Digitale Schaltungen sind heutzutage meist vom CMOS-Typ, wobei Transistoren sowohl High- als auch Low-Side schalten; Wenn wir klare Einsen und Nullen haben, sind sie entweder ausgeschaltet oder gesättigt, die beiden effizientesten Zustände, in denen sich die Transistoren befinden können. Dazwischen befindet sich jedoch ein Bereich des linearen Betriebs; Es wird für analoge Verstärker verwendet, ist aber nicht so effizient wie die Extreme - was bedeutet, dass mehr Leistung als Wärme im Transistor verschwendet wird. Im schlimmsten Fall lecken sowohl die High- als auch die Low-Side-Transistoren (weil der Pin tatsächlich weder hoch noch niedrig ist), und sie können dann zusammen einen bemerkenswerten Strom innerhalb des Chips verursachen, wenn sie versuchen, den internen Zustand hoch zu treiben und niedrig - möglicherweise dasselbe beim nächsten Tor in einer Kettenreaktion. Die Hitze könnte ein Problem werden, auch wenn der Strom es nicht ist. Die Lösungen von IntelliChick gelten immer noch.

Für Pins, die auch mit ADCs verbunden sind, bieten einige Mikrocontroller die Funktion zum Deaktivieren des digitalen Eingangspuffers, um sowohl dieses Problem als auch Leckagen zu verhindern, die das Signal verzerren.

Die Eingänge haben keine Hysterese?
Schmitt-Trigger-Eingänge tun dies, aber im Allgemeinen nicht.

In der Praxis ist der Haupteffekt ein erhöhter Stromverbrauch. Wenn ein Pin tatsächlich erdfrei ist, anstatt an eine unbestimmte Spannungsquelle angeschlossen zu sein, kann es zu Schwingungen kommen, die ebenso wie eine zunehmende Leistungsaufnahme Rauschen in andere Teile des Systems einbringen können. Jeder Pin, der für einen ADC- oder Komparatoreingang verwendet werden kann, hat die Möglichkeit, den digitalen Eingangspuffer zu trennen, um dieses Problem zu vermeiden. (DIDR auf AVR, ADCON1/ANSEL auf PIC)

Was genau würde schwingen und warum?
@endolith - Der Eingangspuffer auf dem Pin. Denken Sie an einen invertierenden Puffer mit einem Kondensator zwischen Eingang und Ausgang.
@FakeName: Aber wo ist der Wechselrichter? Wo ist der Ausgang, der auf den Eingang zurückgeführt wird?
Grundsätzlich durchlaufen alle IC-IO-Pins einen Puffer (häufig einen Inverter) auf dem IC-Die . Da der Puffer Drähte für den Eingang und den Ausgang hat, kann es zu einer kapazitiven Kopplung zwischen Eingang und Ausgang kommen. Wenn also der Eingang eine ausreichend hohe Impedanz hat, kann ein Übergang am Wechselrichterausgang dazu führen, dass sich der Wechselrichtereingang ändert, wodurch sich der Ausgang erneut ändert usw. ...

Im Allgemeinen ist es eine schlechte Idee, den Eingangspin so schwebend zu lassen, da dies zu Folgendem führen kann:

a) Funktionsprobleme - unbekannter Eingangszustand, Umschalten (kann beispielsweise einen Interrupt mit undefinierter ISR auslösen, der den Prozessor hängen lassen würde)

b) Erhöhter Stromverbrauch – höchstwahrscheinlich ist das Eingangstor ähnlich dem CMOS-Inverter. Wenn bei dieser Struktur der Eingang weit genug von jeder Schiene entfernt ist (z. B. bei halber Versorgung), fließt ständig ein erheblicher Überkreuzungsstrom.

c) Wenn der Überkreuzungsstrom fließt, kann das Phänomen, das als Hot-Carrier-Injektion bekannt ist, tatsächlich die Lebensdauer der Vorrichtung verringern. Das Eingangsgatter kann nur für normales Schalten und nicht für kontinuierliche Leitung ausgelegt sein, so dass das Gerät katastrophal ausfallen kann. Beachten Sie jedoch, dass das Gerät viele hundert Stunden bei erhöhter Temperatur in einem solchen Zustand bleiben müsste, damit dies geschieht.

Beachten Sie, dass a) und b) echte Probleme sind, auf die man höchstwahrscheinlich stoßen wird. Was c) betrifft, ist es weniger wahrscheinlich, dass ein Problem auftritt, aber warum ein Risiko eingehen?

Der Eingang wechselt je nach EMI zwischen 0 und 1. Ich bin mir nicht sicher, ob dies dazu führt, dass der Eingang fehlschlägt, aber es wird mehr Strom verbraucht, da die Übergänge von 0 auf 1 auf 0 gehen.

Setzen Sie es auf einen Ausgang und fertig.

Wenn ich es auf einen Ausgang 0 oder 1 setze, wird das Videosignal geerdet und ein Videoverlust verursacht.
Können Sie einen internen Pull-up aktivieren und damit fertig sein?
Das Aktivieren des internen Pull-Ups sollte gut sein. Es geht darum, es in einen bekannten Zustand zu versetzen und dort zu belassen.

Einige Hochgeschwindigkeits-CMOS-Bausteine ​​können zerstört werden, wenn ein Eingang erdfrei gelassen wird, aber das häufigste Problem, das man beobachten wird, ist ein erhöhter Stromverbrauch. Bei Mikrocontrollern der PIC-Serie liegt der zusätzliche Strom in der Größenordnung von Hunderten von Mikroampere pro Floating-Pin. Nicht genug, um Geräteschäden zu verursachen, aber genug, um die Batterielebensdauer in einer Anwendung, die sonst 5 uA ziehen würde, stark zu beeinträchtigen. Einige Chips haben Optionen zum Deaktivieren eines digitalen Eingangs; Wenn ein Eingang deaktiviert ist, kann er frei schwebend gelassen werden.