Hallo
Im Datenblatt des Attiny 841 ist die Tabelle drin mit den Zuständen beim
DDR,PORT und PUE. Leider ist mir der Kommentar vollkommen unklar. Die
Übersetzer helfen beim Sinn leider nur wenig weiter.
Habe das mal übersetzt, stimmt aber nicht so richtig:
0 X 0 Eingang nein Tri-State (hi-Z)
0 X 1 Eingang Ja Stromquellen, wenn extern niedrig gezogen
1 0 0 Ausgang nein Ausgang niedrig (Senke)
1 0 1 Ausgabe Ja NICHT EMPFOHLEN.
Ausgang niedrig (Senke) und interner Pull-up aktiv. Quellen: Strom durch
internen Pull-up-Widerstand und verbraucht Macht ständig
1 1 0 Ausgang nein Ausgang hoch (Quelle)
1 1 1 Ausgang Ja Ausgang hoch (Quelle) und interner Pull-up aktiv
Hat jemand eine bessere übersetzung?
LG Pauli
> der Kommentar vollkommen unklar
Obwohl die drei Sätze vor dieser Tabelle gelesen wurden? Vielleicht
nochmals lesen, die sind ausführlich, wohingegen dieser Kommentar ja nur
die Zusammenfassung darstellt.
Nich so richtig :-)
Das DDR schaltet die Ausgangstreiber 0=Eingang(Treiber deaktiviert)
Das Port enthält den Wert den die Treiber ausgeben.Daher ist sein Wert
auch egal (X) solange sie deaktiviert sind.
Das Nein/Ja bezieht sich auf einen internen Pullup-Widerstand. Ca 75kohm
die nach Vcc geschaltet werden wenn PUE 1 ist. Das 1 0 1 bedeutet das
die Treiber Gnd treiben während der Pullup zugeschaltet ist. Kein
Beinbruch (wenige µA), dem Chip macht das nichts nur die Batterie wäre
schneller leer.
Du meinst diese Sätze:
Jeder Port-Pin besteht aus vier Registerbits: DDRxn, PORTxn, PUExn und
PINxn.
Das DDRxn-Bit im DDRx-Register wählt die Richtung dieses Pins aus. Wenn
DDRxn als logische Eins geschrieben wird, wird PINxn zum Ausgangspin.
Wenn DDRxn mit logischer Null geschrieben wird, wird PINxn als
Eingangspin konfiguriert.
Wenn PORTxn als logisch Eins gesetzt wird und PINxn als Ausgangspin
konfiguriert ist, wird der Port-Pin auf High (Eins) gesetzt.
Wenn PORTxn als logische Null gesetzt wird und PINxn als Ausgangspin
konfiguriert ist, wird der Port-Pin auf Low (Null) gesetzt.
Wenn ein Pull-up-Freigabebit, PUExn, gesetzt wird, wird der
Pull-up-Widerstand am entsprechenden Port-Pin, PINxn, aktiviert.
DDR, PORT, PUE, PIN – Registerbits
x – Angabe der Ports (A, B)
n – Angabe der PINS (0-7)
Das beschreibt was die Register machen, das ist klar. Aber gerade das
was erlaubt ist und warum das so ist. Deshalb such ich nach einer
vernünftigen übersetzung.
Jetzt bin ich etwas ratlos - offenbar wurde doch alles verstanden. Dann
sollte sich der Kommentar von selbst ergeben. Und "erlaubt" ist alles,
nur ist nicht alles sinnvoll.
Vielleicht PINxn etwas deutlicher: das ist immer ein Eingangspin,
"independent of the setting of Data Direction bit DDxn".
Ich versuch's mal:
- hochohmig
- liefert (etwas) Strom, wenn gegen Masse (GND) gezogen
- Ausgang low (zieht Strom)
- nicht empfohlen, da unnötiger Stromverbrauch
- Ausgang high (liefert Strom)
- Ausgang high mit internem Pull-up-Widerstand
Pardon, sieht merkwürdig aus, ich kann's nicht besser.
Pauli schrieb:> 0 X 0 Eingang nein Tri-State (hi-Z --> hochohmig, Tri-State ??S. Landolt schrieb:> liefert (etwas) Strom, wenn gegen Masse (GND) gezogen--> bei einem R von 75 kOhm
fliesst nur wenig Strom
S. Landolt schrieb:> Ausgang low (zieht Strom)--> das ist mir unklar
Das sieht richtig gut aus. Leider sind mir diese 3 Sachen noch unklar
0 X 0 : Ausgangstreiber abgeschaltet, kein Pull-up-Widerstand, also
hochohmiger Eingang, mit PINxn zu lesen
0 X 1 : (interner) Pull-up-Widerstand an Vcc, was dieser eben an Strom
gegen ein niedrigeres Niveau, z.B. GND, liefern kann
1 0 0 : Ausgangstreiber zugeschaltet und auf low, zieht Strom von einem
höheren Niveau, z.B. Vcc, und das mit niedrigem Widerstand, also
mindestens einige mA