www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR-Pin als Ein- und Ausgang nutzen


Autor: Marc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe in Erinnerung, dass es möglich ist einen Pin so zu beschalten
(irgendwas mit einer Diode), dass man am Anfang des Programms den
Zustand eines Schalters einlesen kann, und dann den Pin als Ausgang
nutzen kann.
Geht das überhaupt, und wenn ja, wie war das?

Marc

Autor: vex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry aber wenn du hier auf diesen Seiten stöbern würdest findest du
auch etwas dazu.
z.B. :
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...
http://www.mikrocontroller.net/articles/AVR_Checkl...

Autor: Marc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe mich vielleicht etwas ungenau ausedrückt, nicht die Software
ist das Problem, sondern die Hardware.
Wenn ich z.B. den Schalter einschalte, also den Pin auf Low ziehe, und
dann den Pin als Ausgang definiere, hätte ich ja einen Kurzschluss,
wenn dieser auf High ist. Das will ich eigentlich vermeiden.

Marc

Autor: vex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also der Pin ist grundsätzlich Low Active d.h er schaltet von High auf
Low um . da der Port Ausgang aber ein OC Typ ist (Open Collector)
wird es(glaube ich) wahrscheinlich keinen Kurzen geben auch wenn der
interne Pull-up  Widerstand dazu geschaltet wird. (verbesser mich wer,
wenn es falsch ist)
Nur!! nochmal spez. zu der Aufgabe:
du schaltest einen Schalter (extern) von high auf low, der Port ist
mittels int. Pullup auf high und wird darauf vom Programm auf low
gezogen - in dieser Position passiert also nix (low -> low) aber es
passiert was, wenn der Schalter auf High liegt und der Port auf Low
geschaltet wird - in dem Fall würde ich den Schalter mittels Pullups
ausrüsten

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@vex:
> ...verbesser mich wer, wenn es falsch ist...

Gerne! Die AVRs haben symmetrische Ausgangstreiber und keine
Open-Collector-Ausgänge! Wenn man einen als Ausgang mit High-Pegel
programmierten Pin extern auf GND zieht, dann kann man sich i.d.R. von
seinem Port verabschieden!

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wären es nicht, wenn überhaupt OD-Ausgänge (der PIC hat welche).. also
Open drain-Ausgänge.. wir sind ja bei CMOS und nicht TTL ;-)

Autor: Pete Nerlinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
TTL = TRANSITOR TRANSISTOR LOGIK!

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ...wir sind ja bei CMOS und nicht TTL...
Korrekt, wir sind heutzutage bei CMOS. Aber das Funktionsprinzip (und
um das geht es hier, ganz egal ob CMOS oder bipolar) ist dasselbe!

@Pete:
Ich glaube, hier wissen die meisten, was TTL heißt. Was ich persönlich
nicht weiß, ist, was dieser Kommentar soll...

Autor: arc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin immer wieder verblüfft, wie oft welche Räder jedesmal neu
erfunden werden. Das Prinzip, per externem Serien-R einen Output-Crash
zu vermeiden, hat doch schon der olle Sir Clive Sinclair im ZX80 und 81
verwendet, um den (damals noch sehr teuren) extra Steuerchip für die
Videoausgabe einzusparen...

Aber, weswegen ich eigentlich poste: Wieso soll ein AVR keinen
OD-Output können? Klar kann er das! Und braucht es auch gelegentlich
selber, nämlich für das TWI (=I2C-Bus). Und auch 1-Wire-Teile kann man
anders gar nicht anflanschen.

Das geht ganz einfach: Externen Pullup dran, im PORT-Register das
betreffende Bit auf Null, und dann die Ausgabe per DDR. Voila!

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Als Eingang beim Start mit PullUp, Schalter über z.B. 4,7k an Masse.
Dann als Ausgang, es fließen zusätzlich ca. 1mA bei H, stört wohl kaum.
Klappt, wenn die anzusteuernde Schaltung merklich hochohmiger ist, sonst
zusätzlich Diode mit Katode an Port-Pin, Anode über passenden Widerstand
an +, Verbindung ist der "neue" Ausgang.
Widerstand hängt vom benötigten Strom bei H ab, also möglichst nach L
schalten.

Gruß aus Berlin
Michael

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.