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ę

PCF8574 - konfiguracja? i odczyt stanu

windman
-
-
Posty:64
Rejestracja:16 wrz 2003, o 21:18
Lokalizacja:Ruda Śląska
Kontaktowanie:
PCF8574 - konfiguracja? i odczyt stanu

Postautor: windman » 8 lip 2008, o 02:42

Witam,

Mam dwa pytania odnośnie ekspandera PCF8574.
- Czy w jakiś sposób konfiguruje się które piny są wejściowe, a które wyjściowe.
- Czy można odczytywać stan portów (podejrzewam, że tak, to czy w takim przypadku odczytuje się stan wszystkich portów jednocześnie, czy też każdego z osobna?)

Za słaby jeszcze jestem aby to wyciągnąć z datasheeta.

Pozdrawiam

Awatar użytkownika
torres
-
-
Posty:9
Rejestracja:1 maja 2008, o 16:24
Lokalizacja:Moja nie pamiętać.

Postautor: torres » 15 lip 2008, o 11:53

Porty D0...D7 są zarówno wejściami i wyjściami.
Ja mam PCF8574A.
Pcf-a trzeba adresować do zapisu lub odczytu.
Adres i2c dla zapisu mam 112,a odczytu stanu portów 113(masz napewno inne adresy).
Przykładowy program a BascomAvr (dioda led na D7 Pcf8574A powinna migać)

Kod: Zaznacz cały

do i2csend 112,128 waitms 500 i2csend 112,0 waitms 500 loop
'tutaj odczytuje stan portu,a jednoczesnie każdego pinu

Kod: Zaznacz cały

dim X as byte cls do i2csend 112,255 waitms 100 i2creceive 113,X lcd X wait 1 cls loop
Odczytaj adresy pcf-a dla zapisu i odczytu.Pozdrawiam.
Ostatnio zmieniony 27 lip 2008, o 07:19 przez torres, łącznie zmieniany 2 razy.

Awatar użytkownika
Wesker
-
-
Posty:4
Rejestracja:19 kwie 2008, o 22:48
Lokalizacja:Leżajsk

Postautor: Wesker » 26 lip 2008, o 18:10

Z tym układem jest zupełnie jak z portem '51. Jeśli wyprowadzenie ustawione jest w stan wysoki to jest wejściem, zwieranie do masy na pewno nie uszkodzi układu ze względu na małą wydajność prądową. Dużą wydajność ma wyjście w stanie niskim i może wprost sterować LED przy prądzie 10mA (łączny prąd nie powinien przekraczać 100mA).

Awatar użytkownika
torres
-
-
Posty:9
Rejestracja:1 maja 2008, o 16:24
Lokalizacja:Moja nie pamiętać.

Postautor: torres » 27 lip 2008, o 09:22

Dokładnie tak jak piszesz.
Ja zwieram piny do masy i jeszcze nic nie uszkodziłem.
WINDMAN gdybyś chciał jednak odczytać adresy to tu masz prościutki programik w bascomie(dopasuj go do swoich wymagań):

Kod: Zaznacz cały

$regfile ="m32def.dat" $crystal = 800000000 Config Lcd = 16*1a Dim Adresik As Byte Cls Lcd "Zaczynam" Waitms 200 Cls For Adresik = 100 To 130 'szukamy wsrod 30 adresow I2cstart 'start magistrali I2c I2cwbyte Adresik 'pytanie o kolejny adres I2cstop 'zatrzymaj transmisje If Err = 0 'jesli jest odpowiedz Cls 'wyczysc lcd Lcd "Scalak pod ";Adresik 'wyslij komunikat na lcd else 'jak nie ma odpowiedzi to: Cls 'czysc lcd Lcd "Nie ma pod ";Adresik 'daj komunikat,ze nie ma ukladu pod tym adresem end if Wait 1 'poczekaj sekundę Next Adresik Cls Lcd "Zrobione" End 'Koniec przeszukiwania
Ostatnia cyfra adresu parzysta(adres do zapisu) to port pcf-a = wyjście :597:
Ostatnia cyfra adresu nieparzysta(adres do odczytu) to port pcf-a=wejscie

Wróć do „Elektronika - tematy dowolne”

Kto jest online

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