Frage:
Ist ein Pull Up / Down Widerstand wirklich notwendig?
mannok
2019-12-27 08:51:44 UTC
view on stackexchange narkive permalink

Das logische Lesen (1 oder 0) eines GPIO-Pins eines Mikrocontrollereingangs kann schweben, wenn er weder mit VCC noch mit GND verbunden ist.Jemand sagte, es liege an HF-Störungen in der Umgebung.

Wenn eine schwebende GPIO-Eingangs-Pin-Spannung durch HF-Interferenzen beeinflusst wird, die dazu führen, dass sie in den undefinierten logischen Bereich fällt (dh 0,8 V - 2,2 V für Raspberry Pi), kann sich der logische Wert eines Floating-Pins ändern.

Ich frage mich, ob dieses Problem durch das Design eines Mikrocontrollers gelöst werden könnte.d.h. den logischen Spannungsbereich vergrößern, sagen wir <6V für niedrig> 6V für hoch.Da Interferenzen selten eine so hohe Spannung erreichen können.

Unabhängig von der Schaltschwelle benötigt der Treiber, wenn sich kein Treiber am Eingang befindet, ein Pullup oder Pulldown oder ähnliches, um ihn auf ein bekanntes und gültiges Niveau zu bringen.Wenn HF-Rauschen ein Problem darstellt, ist ein Kondensator im Allgemeinen eine bessere Lösung als ein Pullup oder Pulldown.Möglicherweise wird der Pullup / Pulldown jedoch weiterhin benötigt, um sicherzustellen, dass sich der Eingang im richtigen Zustand befindet.
Sie verbinden also eine Seite eines Schalters mit 12 V und die andere Seite mit dem Eingangspin.Sie drücken den Schalter und jetzt sieht der Eingangspin 12V und liest hoch.Sie lassen den Schalter los und der Eingangspin sieht immer noch 12 V, da es sich um einen Kondensator handelt.Es liest sich also immer noch hoch.Dann was?
Es ist nicht unbedingt eine HF-Störung, die dies verursacht, das ist eine neue für mich.Der Versuch, mcu-Designs als Ergebnis zu reparieren, ist also nicht der richtige Weg.Sie lösen dies mit Widerständen, was teilweise der Grund ist, warum sie manchmal im GPIO-Pad enthalten sind.
_ "... dann kommt es zu logischen Leseflößen. Ich frage mich, ob dieses Problem gelöst werden könnte ..." _ - es ist kein Problem für das logische Lesen.Wenn der Eingang schwebend ist, ist sein Zustand undefiniert, was ** korrekt ** ist, und die Software sollte den Logikpegel ignorieren - genau wie bei undefinierten Bits in internen Registern.Dies kann zu einer erhöhten Stromaufnahme oder zu Störungen durch EMI-Einspeisung führen, dies sind jedoch keine logischen Probleme.
Ist das nicht was ein Schmitt-Trigger ist?Aber auch, wie alle sagten, ist Ihre Eingabe undefiniert ... Das ist also kein Problem mit dem Chip, sondern eher mit Ihrer Schaltung.
HF-Interferenz?Manchmal kann das einfache Fegen einer Hand über eine MCU mit einem schwebenden E / A-Eingang ihren logischen Zustand ändern.Dies erfordert nur eine sehr geringe statische Aufladung.
Sechs antworten:
nanofarad
2019-12-27 09:23:29 UTC
view on stackexchange narkive permalink

tl; dr, weil es reale Probleme gibt, die uns daran hindern, E / A-Standards und andere Spezifikationen ohne weiteres festzulegen. Wenn EE so einfach wäre, hätten viele von uns keine Jobs oder Abschlussarbeiten.

Zu Beginn gibt es unzählige praktische Gründe, warum wir nicht nur die E / A-Spannung erhöhen. Es ist nicht so einfach, wie wenn jemand 3,3 V auf einem Blatt Papier durchstreichen und stattdessen 12 V schreiben würde. Moderne CMOS-Prozesse für Prozessoren sind so konzipiert, dass sie dünne Gateoxide für schnelle Niederspannungsvorrichtungen erzeugen. Die Verarbeitungsschritte, die zum Züchten eines dicken Gateoxids erforderlich sind, wären sowohl kostspielig als auch beeinträchtigen die Leistung und Ausbeute. Das Schöne an vielen billigen ICs ist, dass sie einen einfachen Prozess haben - bei einem 3v3-Chip sind möglicherweise alle Gateoxide so gewachsen, dass sie einem Sicherheitsfaktor von 3,3 V + standhalten. Sie haben jetzt mehrere neue Masken eingeführt (plus Fotolack- und Ätzschritte), die möglicherweise den Preis des Chips verdoppeln oder verdreifachen.

Ebenso wäre die Verlustleistung für Hochgeschwindigkeitsschaltungen ein Problem. Insbesondere bei schnellen Signalen bedeuten Hochspannungsschwankungen aufgrund von Kapazitäten und Serienimpedanzen eine hohe Verlustleistung (in der Größenordnung des Spannungsquadrats). Wenn Sie Ihren Kern auf 3,3 V halten müssen, um innerhalb eines Strom- / Wärmebudgets zu bleiben, müssen Sie außerdem eine Pegelverschiebung hinzufügen, die selbst zusätzliche Wärme erzeugt, zusätzlichen Strom verbraucht und den Benutzern zusätzliche Kosten verursacht. P. >

Ihre Schwellenwerte sind ebenfalls ziemlich willkürlich - ein scharfer 6-V-Schwellenwert erfordert einen Spannungskomparator, was bei bestimmten Rückkopplungsstrukturen, die sehr gut an einem Floating Pin auftreten können, zu eigenen Instabilitätsproblemen führt. Für einen vernünftigen E / A-Puffer wird der Schwellenwert die Gate-Schwellenspannungen der Transistoren im Puffer widerspiegeln, was auf unsere Herstellungsbeschränkungen zurückzuführen ist. Sie haben die gleichen Durchschussprobleme, aber sie sind jetzt schlimmer, da der Bereich, in dem beide FETs eingeschaltet sind, dank der höheren Schienen breiter ist und die Versorgungsspannung höher ist, was zu einer noch höheren Verlustleistung führt. Sie haben das Problem eher verschlimmert als verbessert.

Nach alledem wird das Problem der schwebenden Signale nicht behoben, wenn die E / A-Schwellenwerte einfach höher gemacht werden. Angesichts des erstaunlich hohen Widerstands des Gateoxids kann ein Schwimmstift leicht 6 V erreichen - insbesondere, wenn sich in der Nähe eine> 6 V-Schiene befindet!

Wenn all dies gesagt und getan ist, haben wir die Chipproduktion um ein Jahr verzögert, während wir Herstellungsprozesse entwickeln und Verträge für Mischspannungssysteme mit Hochleistungskernen mit 1 V2 und 12 V E / A abschließen. Wir haben unser Strombudget erhöht, was bedeutet, dass wir teurere Kühlkörper und Lüfter sowie größere Batterien und Netzteile kaufen müssen, und wir haben das Problem auch nicht zuverlässig behoben.

Oder Sie können ein Band / eine Rolle mit 10000 Pullup- / Pulldown-Widerständen für 10 USD bei DigiKey oder für weniger in Shenzhen kaufen. Höchstwahrscheinlich verfügt Ihr Leiterplattenhersteller bereits über einen Standard-Pullup- / Pulldown-Widerstand, der in die Bestückungsautomaten geladen und einbaufertig ist. Oder Ihr Chip enthält möglicherweise bereits Pullups / Pulldowns, da diese bei einigen Prozessen mit schwachen MOSFETs relativ einfach hergestellt werden können.

Hey, danke Monica, ich bin ziemlich neu bei EE.Ich verstehe nicht, was die Bedeutung von "Angesichts des erstaunlich hohen Widerstands des Gateoxids kann ein schwimmender Stift leicht 6 V erreichen" bedeutet.In der Zwischenzeit sehe ich, dass die Erhöhung der Schwellenspannung so viele Nachteile hat, und wir wollen dies nicht wirklich in die Realität umsetzen.Scheint jedoch, dass eine Erhöhung der Schwellenspannung wirklich die Umgebungsfaktoren vermeiden kann, die dazu führen, dass das logische Lesen hoch ist, oder?Je höher die Schwellenspannung ist, desto schwieriger ist es für den Umgebungsfaktor, den Eingangspin logisch hoch zu bringen.
@mannok Das stimmt nicht.Ein Pin kann beim Schweben eine beliebige Spannung haben - Masse ist zufällig die Schiene mit der niedrigsten Spannung * gemäß Konvention *.Ein schwebender Stift kann genauso leicht logisch hoch wie logisch niedrig lesen oder sich an einer unglücklichen Spannung zwischen den Schienen befinden.An der Bodenschiene an sich ist nichts Magisches.Nichts sagt, dass die Streuladung an diesem Pin dazu führen muss, dass die Pin-Spannung näher an der VSS-Schiene liegt als an der VDD-Schiene.
Um fair zu sein, hätte das OP die gleiche Frage mit einem vernünftigeren Strohmann stellen können (z. B. "Warum enthält der Chip selbst keinen Pull-Up / Down-Widerstand, wenn immer einer benötigt wird, da das Einsetzen des Chips wahrscheinlich billiger ist als das Einsetzen."es ist eine separate diskrete Komponente ").Abgesehen von "es ist nicht der Standard" bin ich mir nicht sicher, ob ich die Antwort darauf kenne.
Justme
2019-12-27 09:09:03 UTC
view on stackexchange narkive permalink

Es wurde bereits gelöst.Einige Mikrocontroller verfügen über eingebaute Pull-up- und / oder Pull-down-Widerstände, die über Software aktiviert werden können.Diese sind jedoch nicht aktiv, wenn der Mikrocontroller keine Firmware hat. Aus Sicherheitsgründen möchten Sie möglicherweise immer noch externe Widerstände, um den Zustand beim Einschalten, Zurücksetzen oder Herunterladen der Firmware stabil zu halten.

Transistor
2019-12-27 10:31:59 UTC
view on stackexchange narkive permalink

Der logische Messwert (1 oder 0) eines Mikrocontrollers kann am GPIO-Eingangspin schweben, wenn er weder mit VCC noch mit GND verbunden ist. Jemand sagte, dies liege an umgebenden HF-Störungen.

Ja und statische Aufladung.

Wenn die durch HF-Interferenzen beeinflusste Spannung dazu führt, dass die GPIO-Eingangsspannspannung auf einen undefinierten logischen Bereich fällt (d. h. 0,8 V - 2,2 V für Raspberry PI), führt dies zu logischen Leseflößen

Ja, und dies kann intern zu Problemen führen. In den Eingangsstufen von 1 unten können die undefinierten Logikzustände dazu führen, dass sowohl der obere als auch der untere Transistor gleichzeitig eingeschaltet werden. (Bei korrekten Logikpegeln ist jeweils nur einer eingeschaltet.) Das Ergebnis ist ein Zustand, der als "Durchschießen" bezeichnet wird, und ein hoher (für das Gerät) Strom fließt durch das Gerät. Dies ist in Abbildung 2 dargestellt. Dies führt zu einer Überhitzung der Tore.

enter image description here

Abbildungen 1 und 2 aus dem Anwendungsbericht von TI Auswirkungen langsamer oder schwebender CMOS-Eingänge.

In dem Artikel wird Folgendes erläutert:

Sowohl CMOS- als auch BiCMOS-Familien haben eine CMOS-Eingabestruktur. Diese Struktur ist ein Wechselrichter bestehend aus ein p-Kanal zu V CC und ein n-Kanal zu GND, wie in Fig. 1 gezeigt. Bei Eingang mit niedrigem Pegel der P-Kanal Der Transistor ist eingeschaltet und der N-Kanal ist ausgeschaltet, wodurch Strom von VCC fließt und den Knoten auf einen hohen Wert zieht Zustand. Bei einem High-Level-Eingang ist der n-Kanal-Transistor eingeschaltet, der P-Kanal ist ausgeschaltet und der Strom fließt zu GND, den Knoten nach unten ziehend. In beiden Fällen fließt kein Strom von V CC zu GND. Beim Umschalten Von einem Zustand in einen anderen überschreitet der Eingang den Schwellenbereich, wodurch der N-Kanal und der P-Kanal gleichzeitig eingeschaltet werden, wodurch ein Strompfad zwischen V CC und GND erzeugt wird. This aktuelle Welle kann schädlich sein, abhängig davon, wie lange sich der Eingang im Schwellenbereich befindet (0,8 bis 2 V) . Der Versorgungsstrom (ICC) kann auf mehrere Milliampere pro Eingang ansteigen und einen Spitzenwert von ungefähr 1,5 V VI erreichen (sehen Figur 2). Dies ist kein Problem, wenn Zustände innerhalb der vom Datenblatt angegebenen Eingangsübergangszeit umgeschaltet werden Grenzwert in der Tabelle der empfohlenen Betriebsbedingungen für die jeweiligen Geräte angegeben. [Hervorhebung von mir.]

Sie sagen also: "(1) Fahren Sie Eingänge auf definierte Logikpegel. (2) Wechseln Sie schnell zwischen Logikpegeln."

Ich frage mich, ob dieses Problem durch das Design eines Mikrocontrollers gelöst werden kann. d.h. den logischen Spannungsbereich vergrößern, sagen wir < 6 V für niedrig> 6 V für hoch. Da Interferenzen selten eine so hohe Spannung erreichen können.

Das würde alles noch schlimmer machen.

  • Die Eingangsimpedanz der CMOS-Gatter ist so hoch, dass es nicht schwierig wäre, 6 V zu erreichen.
  • Jedes Durchschießen wird jetzt zu einem viel ernsteren Problem. In Abbildung 2 sehen wir, dass der Spitzenstrom bei einer 5-V-Versorgung 4 mA beträgt. Aus P = V × I können wir die im Gate verbrauchte Spitzenleistung von 20 mW berechnen. Wenn wir eine 12-V-Logik verwenden würden, würde die Spitzenleistung bei 4 mA auf 48 mW ansteigen - aber der tatsächliche Strom wäre wahrscheinlich viel höher.
  • Selbst bei guten Logikpegeln und schnellen Übergängen nimmt die im Chip erzeugte Wärme mit der Frequenz zu, da mehr Übergänge pro Sekunde auftreten.

Im Laufe der Jahre haben die logischen Versorgungsspannungen abgenommen, um die Probleme mit der Leistungsdichte zu lösen, da die Geräte immer kleiner wurden. Wo früher 5-V-Logik Standard war, haben wir jetzt 3,3 V und weniger, um den Stromverbrauch zu senken und die Wärme zu verwalten.

Der TI-Artikel ist lesenswert. (Und Ihr Englisch liest sich sehr gut.)

Hey @Transistor,, vielen Dank für die gute Erklärung.Nachdem ich Ihre Antwort gelesen habe, denke ich, dass eine Erhöhung der Schwellenspannung tatsächlich den mehrdeutigen logischen Eingang beheben kann, da HF-Interferenzen und statische Aufladung selten einen so hohen Spannungspegel erreichen können, habe ich Recht?Obwohl dies mehrdeutiges logisches Lesen beheben kann, gibt es Nachteile.d.h. es wird mehr Energie im Durchschussbereich verbraucht, mehr Wärmeerzeugung usw.
Es wäre nützlich zu erklären, warum PMOS- und NMOS-Transistoren in der CMOS-Stufe beide im Schwellenbereich eingeschaltet sein sollten ... wenn Dies führt zu Problemen ("ein aktueller Pfad zwischen VCC und GND").
@mannok Transistor beantwortet diese Frage direkt und sagt, dass Ihre Annahme falsch ist: "Die Eingangsimpedanz der CMOS-Gatter ist so hoch, dass es nicht schwierig wäre, 6 V zu erreichen."Warum stellen Sie die Frage überhaupt, wenn Sie keine der Antworten hören?
@sdenham, Hängt die Eingangsspannung nicht von meiner Spannungsversorgung ab?
Ja, die logischen Schwellenspannungen steigen mit der Versorgungsspannung, aber was nun?Sie haben immer noch eine sehr hohe Eingangsimpedanz.In jedem Fall geht der Trend aus den oben genannten Gründen zu niedrigeren Spannungen.
Verwenden RPi-GPIO-Pins (oder andere Mikrocontroller-GPIO-Pins) wirklich ein solches CMOS-Logikgatter direkt am Eingang, ohne Schutz gegen Durchschießen durch schwebende oder auf andere Weise falsche Eingangsspannungen?Ich hätte vermutet, dass zumindest für Hobby-Fans bestimmte Geräte wie RPi keine Verkabelung von Klimmzügen mit nicht verwendeten Pins erfordern würden.Sicherlich ein Problem für einfache CMOS-Logikchips, die kein ganzer Mikrocontroller / SoC sind.IMO ist die eigentliche Antwort auf die Frage des OP, dass die Eingangsimpedanz einfach zu hoch ist, sodass schwebende Eingänge unabhängig von den internen Auswirkungen sehr weit schweben können.
VillageTech
2019-12-27 09:02:51 UTC
view on stackexchange narkive permalink

In der Elektronik gibt es eine sehr wichtige Regel: Lassen Sie NIEMALS etwas außer Kontrolle . Wenn im Datenblatt nicht genau angegeben ist, dass die Eingabe über ein internes Pull-up oder Pulldown verfügt, darf der Eingang für diese Eingabe NICHT undefiniert sein. Wenn Sie diesen Eingang nicht benötigen, schließen Sie ihn an Masse oder Vcc an und lassen Sie ihn NIEMALS schweben. Solche undefinierten Zustände können weniger oder mehr zufällige Probleme verursachen, die sehr schwer zu untersuchen und zu lösen sind. Es lohnt sich nicht, Stunden damit zu verbringen, sie zu bekämpfen, nur weil Sie die Kosten für einen kleinen Widerstand sparen möchten. Das ist wirklich sehr schlechte Praxis. Dies ist wie Autofahren: Schauen Sie immer in den Spiegel, bevor Sie auf der Straße anhalten.

HINWEIS: Bei modernen MCUs kann das Problem gelöst werden, indem (programmgesteuert) nicht verwendete E / A-Pins als Ausgang konfiguriert werden, sodass sie nirgendwo angeschlossen werden müssen. Wenn Sie jedoch die Richtung des E / A-Pins in den Eingang geändert haben und in der MCU kein Hochziehen / Herunterziehen vorhanden ist, MÜSSEN Sie sich darum kümmern und das ordnungsgemäße Ziehen selbst beibehalten. Der Float-Status ist für uns ARCHENEMIE;);););)

Ich habe noch keine MCU gesehen, die standardmäßig alle GPIOs auf Ausgänge setzt.Ein solches Konzept ist in realen Designs, in denen externe Schaltkreise Eingangsstifte ansteuern möchten, einfach nicht praktikabel.
Es kommt darauf an;) Aber im Allgemeinen hast du recht.Danke, ich korrigiere meine Antwort.
Danke für die Korrektur.Ich habe meine Ablehnung entfernt,
Vielen Dank für das Entfernen :)
Tony Stewart Sunnyskyguy EE75
2019-12-27 19:54:10 UTC
view on stackexchange narkive permalink

Eingangsimmunität gegen streunendes A / mB-Feldrauschen oder V / mE-Feldrauschen wird nicht durch die Gleichspannungsschwelle bestimmt, sondern durch die Rauschimpedanz und die Spannung oder den Strom des Übersprechens. Das Übersprechen ist induktiv gegenüber Stromrauschen und kapazitiv gegenüber Spannungsspitzenrauschen. Es ist weder empfindlich gegenüber Gleichstrom noch verbessert Gleichstrom die Immunität.

Nur die Schwellenwerte von beispielsweise einem Schmitt-Triggerbereich und die Eingangsimpedanz definieren die Störfestigkeit. Andernfalls definieren die Impedanz der Signalschleife mit der Treiberimpedanz, Zol = Vol (Max) / Iol (Max) und der Abstand zum Worst-Case der nächsten Eingangsschwelle die Leistung, die zur Erzeugung eines falschen Triggers erforderlich ist.

Dies ist auch einer der Gründe, warum die driver-Impedanz nach Industriestandards so ausgelegt wurde, dass CMOS-MFGs niedriger sind, wenn der Vdd max-Bereich verringert wird, um die Störfestigkeit zu erhalten.

Die 3 Hauptfamilien sind

  • 3 ~ 18 V CMOS mit der höchsten Treiberimpedanz ab 300 Ohm und steigendem Vdd.
  • 5,5 V Logikmaximum beträgt 50 bis 66 Ohm +/- 50%
  • 3,6 V Logikmaximum beträgt 25 bis 33 Ohm +/- 50%
  • Schmitt-Trigger-Eingänge werden für verrauschte hochohmige Quellen bevorzugt.

    < 120-Ohm-Impedanzleitungen werden für die Hochgeschwindigkeits-Störfestigkeit mit Differenzeingängen bevorzugt.

    peter
    2019-12-28 08:28:07 UTC
    view on stackexchange narkive permalink

    Der 'Pull Up'- oder' Pull Down'-Widerstand liefert einen elektrischen Pfad zu entweder negativ (normalerweise Masse) und positiv (normalerweise Versorgungsspannung), wenn der Ausgang nicht aktiviert ist.Es hält den Ausgangspin auf diesem Potential, so dass er keinen falschen Ausgang oder unerwünschte wilde Schwingungen aufweist. (Es belastet den Ausgang des Chips leicht.) Ein instabiler Logikchip oder OP-Verstärker überhitzt sich häufig und zerstört sich selbst..und wenn die Last in der Lage ist, den Schwingungen mit hoher Geschwindigkeit zu folgen, kann sich dies auch selbst zerstören.(Stellen Sie sich einen mechanischen Aktuator oder ein mechanisches Ventil vor, das versucht, bei Gott weiß, welche Frequenz zu arbeiten !!)

    Es hält die Dinge einfach stabil.Wenn der Ausgang vom Logikprozessor angesteuert wird, ändert er sauber den Zustand von hoch nach niedrig oder umgekehrt ... (abhängig von der Logik und davon, ob der Ausgang hoch oder niedrig gebunden ist) .... wenn dies beabsichtigt istStatus ändern.

    Willkommen bei EE.SE.Klimmzüge werden an Eingängen verwendet, nicht an Ausgängen.Sie erscheinen auf Open-Collector- oder Tri-State-Ausgängen, aber ihre Funktion besteht darin, den folgenden Eingang auf einen bekannten Logikpegel zu ziehen, wenn der Open-Collector-Ausgang ausgeschaltet ist.
    @Transistor.Klimmzüge wurden verwendet, als TTL CMOS-Eingänge ansteuern musste.Die Klimmzüge brachten den Ausgangspegel "hoch" mehr in den Bereich eines CMOS-Hochs.Dies könnte aber auch als Eingabeproblem angesehen werden.Der gemeinsame Bus hatte oft Klimmzüge, um das Schweben zu verhindern, wenn kein Busfahrer aktiv war.
    @Sparky, Ich komme aus diesen Tagen.Ich erinnere mich!


    Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
    Loading...