Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Klawiatura i2c 4x4 na jednym PCF8574

MES Mariusz
-
-
Posty:91
Rejestracja:17 lut 2005, o 12:02
Lokalizacja:Wrocław
Kontaktowanie:
Klawiatura i2c 4x4 na jednym PCF8574

Postautor: MES Mariusz » 1 sty 2010, o 11:41

Witam.

Pod tym adresem znajduje się opis klawiatury 16 przyciskowej i2c wykonanej na dwóch układach PCF8574. Każdy przycisk podłączony jest do pojedynczej linii.

Czy przez przypadek tego samego nie można uzyskać na jednym PCF8574 stosując matrycę 4x4 ? Istnieje jakieś rzeczowe uzasadnienie, dlaczego wykonano ją na dwóch układach?

Awatar użytkownika
Tomasz Gumny
-
-
Posty:685
Rejestracja:4 lut 2004, o 23:31
Lokalizacja:Trzcianka/Poznań

Re: Klawiatura i2c 4x4 na jednym PCF8574

Postautor: Tomasz Gumny » 1 sty 2010, o 12:34

Czy przez przypadek tego samego nie można uzyskać na jednym PCF8574 stosując matrycę 4x4 ?
Można, ale trzeba będzie cały czas "przemiatać" matrycę.
Istnieje jakieś rzeczowe uzasadnienie, dlaczego wykonano ją na dwóch układach?
Po naciśnięciu dowolnego klawisza, PCF8574 zgłasza przerwanie i wystarczy raz odczytać stan wejść. W przypadku klawiatury matrycowej (sterowanej z wyjść innych niż otwarty kolektor z rezystorem podciągającym, np. AT89C2051) trzeba dodać przy każdym klawiszu diodę zapobiegającą zwarciu wyjść przy równoczesnym naciśnięciu kilku klawiszy.[/quote]

MES Mariusz
-
-
Posty:91
Rejestracja:17 lut 2005, o 12:02
Lokalizacja:Wrocław
Kontaktowanie:

Re: Klawiatura i2c 4x4 na jednym PCF8574

Postautor: MES Mariusz » 1 sty 2010, o 14:46

W przypadku klawiatury matrycowej (sterowanej z wyjść innych niż otwarty kolektor z rezystorem podciągającym, np. AT89C2051) trzeba dodać przy każdym klawiszu diodę zapobiegającą zwarciu wyjść przy równoczesnym naciśnięciu kilku klawiszy.
Przy każdym klawiszu, czy przy każdej kolumnie?
http://www.mimuw.edu.pl/~marpe/mikrokon ... iatury.pdf

Awatar użytkownika
Tomasz Gumny
-
-
Posty:685
Rejestracja:4 lut 2004, o 23:31
Lokalizacja:Trzcianka/Poznań

Re: Klawiatura i2c 4x4 na jednym PCF8574

Postautor: Tomasz Gumny » 1 sty 2010, o 16:31

Przy każdym klawiszu, czy przy każdej kolumnie?
Zasadniczo - przy każdym przycisku. Podłączając diody do wyjść jak w tym pdf-ie robimy z nich wyjścia typu OC.

MES Mariusz
-
-
Posty:91
Rejestracja:17 lut 2005, o 12:02
Lokalizacja:Wrocław
Kontaktowanie:

Postautor: MES Mariusz » 2 sty 2010, o 14:13

Planuję zrobić to w taki sposób:

Linie D0...D3 PCF8574 będą umownymi "poziomami"
Linie D4...D8 PCF8574 będą umownymi "pionami"

Na poziomach (skonfigurowane jako wyjścia) domyślnie panuje stan wysoki (podciągnięte rezystorami do VCC)
Piony są skonfigurowane jako wejścia (stan na wejściach może być zawsze dowolny). Również podciągnięte do VCC.

W celu detekcji naciśniętego klawisza:

1. ustawiam "0" na wybranym poziomie.
2. sprawdzam kolejno stany pionów.

Jeśli wciśnięte choćby wszystkie klawisze danego poziomu nie robi to żadnego problemu.

Jeśli wciśnięte choćby wszystkie klawisze danego pionu, również nie robi to problemu, ponieważ 4 diody umiejscowione na wyjściach poziomów (katodą do uP) nie powodują wystawienia na klawisz napięcia VCC, a jedynie brak GND.

Więc gdy "GND wystawione" na pierwszy klawisz pionu, a wciśnięte wszystkie klawisze pionu, wówczas zwarcia jako takiego nie ma (pod względem elektrycznym) a co najwyżej program po kolei odczyta, że zostały wciśnięte klawisze Y1, Y2, Y3, Y4.

Czyli generalnie mamy sytuację OC.

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 53 gości