Tri-State-Eingang abfragen

Gast #266002
Lesenswert?

Jaja, schon richtig gelesen. Es geht wirklich um einen
Tri-State-Eingang.

Ich möchte mehrere Pins eines AVR abfragen, ob sie gegen GND oder Vcc
geschalten oder offen sind (also 3 Zustände). Irgendwo hab ich dazu mal
ein Beispiel gesehen, weiss aber nicht mehr, nach was und wo (App-Note?)
ich suchen soll.

Eine Idee wäre, die Pull-Ups einzuschalten und zu schauen, ob GND oder
Vcc/offen. Dann kurz als Ausgang und low setzen und schauen, ob Vcc
(sollte dann immer noch high sein) oder offen (sollte dann low sein).
Dabei wird aber kurz ein Schluss erzeugt und der Pin liefert seinen
max. Strom, der bei den Megas ja doch recht hoch sein kann. Ist also
nicht so schön.

Es muss aber irgendwie gehen...

Sven
Gast #266003
Lesenswert?

Verlager die abzufragenden Pins in den Analogbereich des Controllers.
Einen hochohmigen Spannungsteiler (>100KOhm) von Vcc nach Gnd (in der
Mitte der Pin), dann kannst du den Analogwert auslesen. Die
Folgeschaltung, wenn also nicht Tristate, kann die Pins trotzdem auf
Vcc oder Gnd ziehen.

MW
Gast #266010
Lesenswert?

Eventuell kannst du auf die externen Widerstände etc. verzichten.

Du benötigst dazu einen weiteren Pin als Ausgang. Angenommen du
möchtest 8 DIP abfragen dann verbindest du sie auf einer Seite nach
GND. Die andere Seite zum Pin 9 der als Ausgang geschaltet wurde. Die
Mittelanschlüsse der 8 Schalter an einen 8 Bit Port.

Das Auslesen erfolgt nun so:

1. Ausgabepin 9 auf GND legen.
2. 8Bit Port mit Pullups aktivieren und auslesen in Register A. Alle
Bits auf 1 in diesem Port sind "High-Z" Schalter
3. Ausgabepin 9 auf VCC legen
4. 8Bit Port mit Pullups einlesen in register B. Alle Bits die 0 sind
wurden auf GND geschaltet.

Schalterstellungen sind dann

High-Z = A
HIGH   = B and not A
LOW    = not B

wobei dann immer 1 als beschaltet kennzeichnet.

Gruß Hagen
Gast #266011
Lesenswert?

Ach und den Ausgabepin 9 kannst du per entsprechenden Widerstand zb.
300k auf einen einfachen ON/OFF Schalter nach GND legen.

Um diesen abzufragen wird der 8Bit Port auf Input gesetzt und Pin 9 als
Input mit Pullup.

So hättest du 8 Tristate Schalter und 1 Binären.

Gruß Hagen
Gast #266012
Lesenswert?

Danke, lauter gute Ideen, am besten gefällt mir die mit dem zusätzlichen
Pin. An sowas hatte ich auch schon gedacht, und es braucht keine ext.
Bauteile.

Die Idee mit dem "mal kurz auf GND ziehen" haltet ihr also auch nicht
für so gut?

Sven

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren