Forum: Mikrocontroller und Digitale Elektronik 4x3 Matrix Tastatur über I²C I/O Expander ansteuern


von Max (Gast)


Lesenswert?

Hallo!

Weiß jemand von euch, wie ich eine 4x3 Matrixtastatur mit einem PCF574
I/O I²C-Expander abfragen kann, da ich keine normalen Ports mehr frei
habe? - ich brauche das ganze in C (WinAVR).

Danke scho mal für eure antworten, codes, ideeen, etc.

s.T.,
Max

von Peter D. (peda)


Lesenswert?

"ich brauche das ganze in C"

Ach, was ich nicht so alles brauche.
Aber ich trau mich nicht, rotzfrech nach fertigem Code zu fragen.
Ich mache mir immer erst eigene Gedanken und frage dann konkret, wenn
es bei irgendeinem Punkt Probleme gibt.


Peter

von Florian Pfanner (Gast)


Lesenswert?

Von Atmel gibts eine App-Note, in der sowas beschrieben ist. Jedoch
direkt am Controller. Wenn du das ganze kapiert hast, dann dürfte es
kein Problem sein, das für deinen Anwendungsfall umzustricken.

Gruß, Florian

von Fiffi (Gast)


Lesenswert?

Ich finde die neue "Sitte" einfach nur dreist !!!

von Max (Gast)


Lesenswert?

gg ojee..

ich hab mir schon gedaken zu dem thema gemacht: und zwar wollte ich an
einer spalte einen high pegel anlegen und alle zeilen abfragen, und das
mit jeder spalte. das problem ist nun, dass ich per I/O Expander die
ganzen 8 bit nur als eingan bzw. ausgang schalten kann und nich ein
paar pins als eingang und ein paar als ausgang. die frage ist nun, wie
ich es trotzdem irgendwie hinbekommen kann oder ob es eine andere
technik gibt.

mfg
Max

von Fiffi (Gast)


Lesenswert?

Hallo Max,

>ich hab mir schon gedaken zu dem thema gemacht:

1. der IC heißt "PCF8574" und nicht "PCF574".

>das problem ist nun, dass ich per I/O Expander die
>ganzen 8 bit nur als eingan bzw. ausgang schalten kann
>und nich ein paar pins als eingang und ein paar als ausgang.

Falsch! RTFM !!!


Gruß

Fiffi

von Peter D. (peda)


Lesenswert?

"das problem ist nun, dass ich per I/O Expander die
ganzen 8 bit nur als eingan bzw. ausgang schalten kann und nich ein
paar pins als eingang und ein paar als ausgang"

Wo hast Du denn das her ?

Bestimmt nicht aus dem PCF8574 Datenblatt.


Peter

von Rahul (Gast)


Lesenswert?

Damit könnte man sogar problemlos eine 8x8-Matrix herstellen.
Notfalls nimmt man den einen Port als Eingang und den anderen als
Ausgang.
Nach der AVR240-Application Note (müsste die "wake-up-Key-Matrix"
sein) teilt man einen Port in High-Nibble und Low-Nibble.
Jeweils eins ist Eingang und eins ist Ausgang.
Für die Spaltenabfrage die beispielsweise das H-Nibble als Eingang und
das L-Nibble als Ausgang, und für die Zeilenabfrage andersherum.

Naja, lesen bildet...

von Manfred Glahe (Gast)


Lesenswert?

Hallo Max,

"ich brauche das ganze in C (WinAVR)."

Für mich ist das eine vernünftige Einschränkung, voreilige
Unterstellungen wegen unglücklicher Fragestellungen übergehe einfach!
Lass Dich bloß nicht von einigen arroganten Leuten davon abhalten
Fragen zu stellen!
Niemand wird gezwungen sich zu äußern!
Richtig dusselig finde ich es, wenn man nach C fragt und chinesisch als
Antwort bekommt (habe ich alles schon erlebt).

MfG  Manfred Glahe

von Max (Gast)


Lesenswert?

Das Datenblatt des PCF8574 hab ich schon gelesen, aber hab keinen
Hinweis darauf gefunden, wie man ein teil des Ports als eingang und
einen teil als ausgang definiert. kann mir jemand bitte sagen, wie ich
das mache? (bitte um sinnvolle antworten, v.a.v. peter dannegger +
Fiffi).

Danke schon mal.

s.T.
max

von Peter D. (peda)


Lesenswert?

Ich bin mir zwar sicher, daß das im Datenblatt steht, aber such mal hier
im Forum oder bei Google unter dem Stichwort "open collector" bzw.
"open drain", was das bedeutet und wozu es gut ist.

Das gleiche Prinzip findet nämlich im PCF8574 Anwendung und daher gibt
es dort keine Umschaltung zwischen Eingang und Ausgang.


Peter

von Peter D. (peda)


Lesenswert?

Steht drin:

7.3 Quasi-bidirectional I/Os (see Fig.14)


Und hier im Forum hats mal jemand sehr schön ausführlich erklärt.


Peter

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.