PUE Pins und Ports

Gast #5758664
Lesenswert?
• ▲
▼
Pull-Up-Enable
Bei den älteren wird das über das PORT Register gemacht.
Die neueren haben dafür das PUE Register

Zweck?
Naja...

Es lässt sich leichter ein OpenDrain Pin emulieren, ohne kurzzeitig 
floatenden Pin.
Es erlaubt u.U. den Verzicht auf einen externer Pullup.
Gast #5758796
Lesenswert?
• ▲
▼
Paul schrieb:
> Meinst du damit das ein Pin für den I2C Bus nach 5 V gelegt wird.

Paul schrieb:
> In meinem C-Buch steht nichts dazu drin.

Da fehlen Grundlagen der Schaltungstechnik, das hat mit der 
Programmiersprache nichts zu tun.

Vereinfacht stellen wir uns einen Schalter mit drei Anschlüssen 
(Umschalter) vor: Eine Seite an Masse (GND), die andere an +5V, das wäre 
ein Standard µC-Ausgang. Da kommen entweder 5V raus oder der Ausgang ist 
mit GND verbunden.

Jetzt klemmen wir die +5V ab: Der Ausgang ist dann offen und nur in der 
anderen Schalterstellung mit GND verbunden - das wäre der OpenDrain-Out, 
wie er für den I2C-Bus benötigt wird.

Beim I2C-Bus sind beide Leitungen mit einem Widerstand nach Plus 
beschaltet. Keines der angeschlossenen ICs darf Spannung liefern. 
I2C-ICs, die gerade nichts zu tun haben, sind offen, also elektrisch 
garnicht da. Wenn ein IC etwas zu melden hat, zieht es die Leitung nach 
Masse, geht danach aber wieder aus. In der Fachliteratur heißt das 
"wired OR".

Die Register im Controller haben den Sinn, dessen Anschlüsse passend 
einzustellen: Als Ausgang, als openDrain-Ausgang, als Eingang oder als 
Eingang mit Pullup.

------

So, liebes Forum, jetzt verhaut mich, weil ich einige Details 
vereinfacht habe :-)
Gast #5758852
Lesenswert?
• ▲
▼
W.A. schrieb:
> Man könnte auch sagen, dass Masse auf I2C den dominanten Zustand darstellt.

Erkläre bitte Deine Definition von "dominant".

Im zeitlichen Verlauf wird der I2C überwiegend "offen" sein, also per 
pullup an Ub. Auf Masse kommt er nur während aktiver Datenübertragungen.
Gast #5760069
Lesenswert?
• ▲
▼
So weit klar. Das benutze ich z.B. um LEDs oder über einen zusätzlichen 
Transistor Relais zu schalten.
Bei der Programmierung eines I/O benutze ich dann DDRx, Portx um Pins 
als Eingang oder Ausgang zu setzen.
Doch wie mache ich das mit PUE? Was schalte/defeniere ich damit?
Es wurden verschiedene Quellen angegeben. Leider empfinde ich es so, das 
sie nicht zutreffen. Es werden OpenDrain beschrieben. Direkt zu PUE oder 
was ich genau damit mache steht nicht viel drin. (mehr garnichts) So wie 
ich das anhand der Datenblätter vom Attiny 441 und 841 gesehen habe 
werden die Pins damit eingestellt.
Könnte jemand an Hand eines Beispiel es kurz zeigen?
LG Paul
Gast #5760121
Lesenswert?
• ▲
▼
Paul schrieb:
> Doch wie mache ich das mit PUE? Was schalte/defeniere ich damit?

Mit Pull-Up-Enable schaltest du die Pullups ein.
Was verstehst du daran nicht?

Paul schrieb:
> Leider empfinde ich es so, das sie nicht zutreffen.
OK.
Natürlich kann man Empfindungen höher bewerten, als Logik, Datenblätter 
usw., das macht dich vielleicht zu einem besseren Menschen, aber nicht 
unbedingt zu einem besseren Entwickler.

Klarer:
Was verstehst du an "Pullup Einschalten" nicht?
Zweifelst du die Notwendigkeit an?

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.