Wozu dient ein Pull-up-Widerstand in einem Mikrocontroller?

Ich lese über den AVR-Mikrocontroller. In einem Kapitel über E/A-Ports bin ich auf ein Konzept gestoßen, das ich nicht verstehe: den Pull-up-Widerstand.

Hier ein Zitat aus dem Lehrbuch:

Rolle des PORT-Registers bei der Eingabe von Daten:

Es gibt einen Pull-up-Widerstand für jeden der AVR-Pins. Wenn wir s in Bits des PORTx-Registers einfügen, werden die Pull-up-Widerstände aktiviert. In Fällen, in denen nichts am Pin angeschlossen ist oder die angeschlossenen Geräte hochohmig sind, zieht der Widerstand den Pin hoch. Siehe Abbildung 4-4. Wenn wir 0 in die Bits des PORTx-Registers schreiben, ist der Pull-up-Widerstand inaktiv.

Und das dazugehörige Diagramm:

Pullup-Widerstandsdiagramm

Nun ertrage es mit mir; Nach meinem Verständnis steuern wir die Datenrichtung der Ports, indem wir 1s oder 0s in das DDRx-Register schreiben. Wenn ich also Daten von einem Port lesen möchte, lösche ich das DDRx-Register (0s) und hole meine Daten aus dem PINx-Register. Umgekehrt, wenn ich Daten schreiben möchte, setze ich das DDRx-Register (1s) und schreibe in das PORTx-Register.

Okay? Das Buch gibt also Assembler-Code-Beispiele dafür, wie wir die Pull-up-Widerstände eines Ports aktivieren. Wir tun dies, indem wir in das PORTx-Register schreiben, ohne DDRx zu setzen!

Welche Funktion oder gewünschte Wirkung hat dies? Es ist mir nicht klar, auch nachdem ich das halbe Buch gelesen habe.

Es ist unklar, was dir unklar ist. Haben Sie Probleme mit dem Gesamtkonzept des Widerstands und warum er da ist, oder haben Sie Probleme, die von Ihnen beschriebene "Aktivierungs" -Logik zu verstehen? Bitte näher erläutern.
Werfen Sie einen Blick auf iamsuhasm.wordpress.com/tutsproj/avr-gcc-tutorial und sehen Sie, ob es Ihnen hilft.

Antworten (3)

Ein Pull-up-Widerstand macht zwei Dinge:

  1. Verhindert das Aufschwimmen des Stifts

    Schwebende CMOS-Eingänge können zu erhöhtem Stromverbrauch oder in einigen Fällen sogar zur Zerstörung des Geräts führen. Ein Pull-up hält den Eingang in einem bekannten guten Zustand.

  2. Setzt die Eingabe auf einen hohen Wert

    Dies ist nützlich, wenn es um Open-Drain-Ausgänge geht, die in einer Wired-OR/Pulldown-Manier arbeiten, wie z. B. Interrupt-Leitungen, oder sogar mit einfachen Tasten.

Es bewirkt auch, dass der Eingang eine kleine Menge Strom zu Erkennungszwecken liefert, aber diese Verwendung ist viel weniger verbreitet als die beiden vorherigen.

Der Pull-up wird verwendet, um zu verhindern, dass der Eingang für bestimmte Eingangstypen schwebt.

Beispielsweise kann ein Schalter den Pin mit Masse verbinden, wenn er geschlossen ist. Wenn der Schalter geöffnet ist, müssen wir den Pin mit einer logischen 1 verbinden. Der Pull-up archiviert dies. Der Klimmzug könnte extern sein, aber die Verwendung eines Mikros mit der Möglichkeit interner Klimmzüge spart Kosten und Platz auf der Platine.

Es gibt ein sogenanntes Datenblatt, und es (und Anwendungshinweise und Referenzhandbücher des Herstellers oder IP-Besitzer im Fall von ARM) sollte immer Ihr erster Bezugspunkt sein.

Die Klimmzüge werden im vollständigen Datenblatt wie folgt beschrieben:

Geben Sie hier die Bildbeschreibung ein

Wie Sie sehen, wird der Pull-up automatisch deaktiviert, wenn der Ausgang aktiviert oder die globale Pull-up-Deaktivierung aktiv ist.