Forum: Compiler & IDEs Anfänger Verständnisfrage: I/O - DDR und PORT


von steffen (Gast)


Lesenswert?

Hallo Leute,

ich fange grad an mit der Mikrocontroller Programmierung und habe dazu 
ein paar Verständnisfragen.

Also das ich im DDR-Bit festgelegt wird ob es sich um ein Ein oder 
Ausgang handelt ist mir bewusst. Auch ist mir klar, das ich über das 
PORT-Bit beim Eingang sagen kann ob der Pullup-Widerstand an sein soll 
oder nicht und beim Ausgang ob er schalten soll oder nicht.

Aber wie sieht das ganze Hardwaremäßig aus?

DDR = 1 und PORT = 1
-> Es werden 5 V auf den Pin gelegt

DDR = 0 und PORT = 1
-> Verbindung über einen internen Pullup zu 5V

DDR = 0 und PORT = 0
-> Hat der Pin hier Verbindung zu Ground?

DDR = 1 und PORT = 0
-> Wird der Ausgang in die "Luft" gehängt oder auf Ground gezogen?


Danke schonmal im voraus.. ;)

von Al3ko -. (al3ko)


Lesenswert?

Hi Steffen,

zum letzten Fall:

steffen schrieb:
>
> DDR = 1 und PORT = 0
> -> Wird der Ausgang in die "Luft" gehängt oder auf Ground gezogen?

Der wird auf GND gezogen.

Gruß

von steffen (Gast)


Lesenswert?

Ah okay,
gibt es denn eine Möglichkeit einen Pin weder zu VCC noch zu Ground zu 
schalten?
Also ohne extra Bauteilen..

von Diplomtroll (Gast)


Lesenswert?

steffen schrieb:
> Ah okay,
> gibt es denn eine Möglichkeit einen Pin weder zu VCC noch zu Ground zu
> schalten?
> Also ohne extra Bauteilen..

High Impedance Z = Eingang = DDR auf 0 und PORTB auf 0

von Walter (Gast)


Lesenswert?

Du meinst ne art Tri-state.
Du kannst mal versuchen den pin als eingang zu definieren, evtl hägt er 
dann irgendwie in der luft, aber sicher weiss ich es nicht

von Diplomtroll (Gast)


Lesenswert?

streiche PORTB
ersetze durch PORT

von Al3ko -. (al3ko)


Lesenswert?

Da ich allerdings selbst noch Anfänger bin, möchte ich diesen Thread 
gerne nutzen, um meine Verständnisfrage bezüglich der Fälle

steffen schrieb:
> DDR = 0 und PORT = 1
> -> Verbindung über einen internen Pullup zu 5V
>
> DDR = 0 und PORT = 0
> -> Hat der Pin hier Verbindung zu Ground?

zu stellen.

Wenn DDR=0 ist, heißt das, dass das Beinchen am µC als Eingang fungieren 
soll. Mittels PORT=1 oder PORT=0 kann man den internen Pull Up 
Widerstand aktivieren bzw. deaktivieren.

Das sagt das Datenblatt. Die Aufgabe eines Pull Up Widerstandes ist mir 
bekannt - jedenfalls das, was man hier so an Erklärungen findet:
Er zieht das Potential des µC Pins auf High, so dass das Beinchen einen 
fest definierten Zustand hat.

So, das heißt, dass am Beinchen Vcc Potential anliegt (ca. 5V).

Was ich mich nur Frage:
Pull Up Widerstände kenne ich nur in Verbindung mit Schaltern bzw. 
Tastern. Was bezweckt ein aktivierter bzw. deaktivierter Pull Up 
Widerstand beim µC, wenn der Pin als Eingang benutzt wird?

Ich für meine Anwendungen will den µC zum Messen verwenden, der dann 
aufgrund der MEssungen irgendwas ausgibt (Display, LEDs etc.). Somit 
muss doch der Pull Up Widerstand deaktiviert sein, damit man von diesem 
konstanten 5V Potential wegkommt. Sonst misst man ja nix.

Irgendwie stehe ich auf dem Schlauch :/

Gruß

von Dominik S. (dasd)


Lesenswert?

Klaus Dietmar schrieb:
> Pull Up Widerstände kenne ich nur in Verbindung mit Schaltern bzw.
> Tastern. Was bezweckt ein aktivierter bzw. deaktivierter Pull Up
> Widerstand beim µC, wenn der Pin als Eingang benutzt wird?

Naja... als was würdest du denn einen Pin schalten wenn du einen 
Schalter anschließen willst?
Ein- oder Ausgang? :)

von Diplomtroll (Gast)


Lesenswert?

Aaalso: Wenn man den Pin als digitalen(!) Eingang z.B. für einen Taster 
nimmt und sicherstellen will dass der Pin ein definiertes Potential hat 
wenn der Taster nicht(!) gedrückt wird aktiviert man den Pull-Up.

Pin mit Pullup - Taster - Masse.

Wenn man den Pin als analogen(!) Eingang (ADC) nehmen will deaktivert 
man den Pull-Up natürlich.

von Al3ko -. (al3ko)


Lesenswert?

Hi Dominik, Hi Diplomtroll,
danke für eure Beiträge.

Dominik S. schrieb:
> Naja... als was würdest du denn einen Pin schalten wenn du einen
> Schalter anschließen willst?
> Ein- oder Ausgang? :)


An digitale Eingänge habe ich gar nicht gedacht. Klar, wenn ich prüfen 
will, ob ein Taster gedrückt ist oder nicht bzw. das Drücken des Tasters 
verarbeiten will, verwende ich den Pull-Up Widerstand. Dann haben wir 
das klassische Beispiel vom Pull-Up Widerstand und Taster und 
entsprechend kann ich am Ausgang die LED zum Leuchten bringen :)

Diplomtroll schrieb:
> Aaalso: Wenn man den Pin als digitalen(!) Eingang z.B. für einen Taster
> nimmt und sicherstellen will dass der Pin ein definiertes Potential hat
> wenn der Taster nicht(!) gedrückt wird aktiviert man den Pull-Up.
>
> Pin mit Pullup - Taster - Masse.
>
> Wenn man den Pin als analogen(!) Eingang (ADC) nehmen will deaktivert
> man den Pull-Up natürlich.

Danke. Jetzt hat es im wahrsten Sinne des Wortes Klick gemacht - sowohl 
beim Verständnis als auch aufm Breadbord mit nem Taster :)


Schönen Abend.

Gruß

von Bond (Gast)


Lesenswert?

Wird der Pin als analoger Eingang genützt,
das geht aber nur bei bestimmten Pins, siehe Datenblatt,
wird der Pin, wenn er als "analog-in" in einem Extra-Register
definiert ist, automatisch von der Digitalen I/O-Stufe getrennt
und auf die Analoge Eingangsstufe umgeschaltet.

Wenn Du Dir die Beschreibung im Datenblatt, bei den Atmels recht
ordentlich beschrieben, anschaust und den Signalweg verfolgst
(ruhig mal mit Buntstiften anmalen) sieht Du es ganz gut,
auch das mit Pull-UP-R.

Schönen Sonntag noch.

von steffen (Gast)


Lesenswert?

Okay,
also kann ich meine Schaltung doch so bauen wie Ichs mir überlegt habe.
Dachte erst ich könnte nur VCC oder GND auf einen PIN legen und den 
nicht in die "Luft" hängen lassen.

Danke nochmal für eure schnelle und gute Hilfe ..

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.