Jak skonfigurować PCF8574 w trybie wejściowym z AVR, aby odczytać dane?
Expander PCF8574, tryb wejsciowy
From: Look <Look_at_nospam_wp.pl>
Subject: Expander PCF8574, tryb wejsciowy
Date: Mon, 22 May 2006 10:24:10 +0200
Witam wszystkich.
Podczepiłem sobie ten układzik pod AVR-ka i z zapisem nie ma żadnych
problemów.
Linie A0, A1, A2 do masy więc adresik układu do zapisu to 0x38 i stany
portów ustawiam jak chcę.
Jednak nic z tego układu nie moge odczytać, adres 0x39 dla odczytu i
układ milczy.
Czy trzeba jeszcze coś specjalnego zrobić żeby układzik odpowiedział??
Pozdrawiam.
From: "Greg\(G.Kasprowicz\)" <Grzegorz.Kasprowicz_at_nospam_CERN.CH>
Subject: Re: Expander PCF8574, tryb wejsciowy
Date: Mon, 22 May 2006 12:49:41 +0200
Podczepiłem sobie ten układzik pod AVR-ka i z zapisem nie ma żadnych
problemów.
Linie A0, A1, A2 do masy więc adresik układu do zapisu to 0x38 i stany
portów ustawiam jak chcę.
Jednak nic z tego układu nie moge odczytać, adres 0x39 dla odczytu i
układ milczy.
Czy trzeba jeszcze coś specjalnego zrobić żeby układzik odpowiedział??
AFAIR zeby cos odczytac z IIC trzeba najpierw zapisac adres..
nie pamietam jak w tym kokretnym przypadku..sprawdz w datasheet'cie
From: Look <Look_at_nospam_wp.pl>
Subject: Re: Expander PCF8574, tryb wejsciowy
Date: Mon, 22 May 2006 13:29:20 +0200
AFAIR zeby cos odczytac z IIC trzeba najpierw zapisac adres..
nie pamietam jak w tym kokretnym przypadku..sprawdz w datasheet'cie
no i tak robie, najpierw wysyłam 0x39 potem odczytuje daną.
chyba dobrze?
From: "Greg\(G.Kasprowicz\)" <Grzegorz.Kasprowicz_at_nospam_CERN.CH>
Subject: Re: Expander PCF8574, tryb wejsciowy
Date: Mon, 22 May 2006 13:41:20 +0200
no i tak robie, najpierw wysyłam 0x39 potem odczytuje daną.
chyba dobrze?
niech sprawdze u siebie..
mam podpieta 4 przyciskowa klawiature przez ten extender
tak ustawiam FF na wyjsciu
get_key_init: ; sets high keyboard inputs
call stop_check ; make sure the last operation is not in progress
mov dptr,#I2CS ; set the START bit
mov a,#80h ; b7=start bit
movx _at_nospam_dptr,a
;
mov dptr,#I2DAT ; first data byte is address+direc
mov a,#4eh ; IO expander address, bit b0=0 means write
movx _at_nospam_dptr,a
call wait_done ; wait for i2c transmit complete
;
mov a,#0ffh
mov dptr,#I2DAT ; write the data byte
movx _at_nospam_dptr,a
call wait_done
;
mov dptr,#I2CS ; set the STOP bit
mov a,#01000000b
movx _at_nospam_dptr,a
ret
a tak czytam:
get_key: ;returns in ACC keyboard state
call stop_check ; make sure the last operation is not in progress
mov dptr,#I2CS ; set the START bit
mov a,#80h ; b7=start bit
movx _at_nospam_dptr,a
;
mov dptr,#I2DAT ; first data byte is address+direc
mov a,#4fh ; IO expander address, bit b0=0 means write
movx _at_nospam_dptr,a
call wait_done ; wait for i2c transmit complete
;
mov dptr,#I2DAT ; write the data byte
movx a,_at_nospam_dptr
call wait_done
mov dptr,#I2CS ; set the START bit
mov a,#00100000b ; b5=last read
movx _at_nospam_dptr,a
mov dptr,#I2DAT ; write the data byte
movx a,_at_nospam_dptr
push acc
;
mov dptr,#I2CS ; set the STOP bit
mov a,#01000000b
movx _at_nospam_dptr,a
pop acc
ret
powinno teraz wszystko stac sie jasne
soft testowany byl na CY7C68013, podczepialem mu pod USB modul wyswietlaczy
i klawiatury wyciagneity z jakeijs szafy sterowniczej wlasnei w celu
debuggowania
From: "Piotr [PKi]" <pki.nospam_at_nospam_wp.pl>
Subject: Re: Expander PCF8574, tryb wejsciowy
Date: Mon, 22 May 2006 22:28:32 +0200
Look napisał(a):
Witam wszystkich.
Podczepiłem sobie ten układzik pod AVR-ka i z zapisem nie ma żadnych
problemów.
Linie A0, A1, A2 do masy więc adresik układu do zapisu to 0x38 i stany
portów ustawiam jak chcę.
Jednak nic z tego układu nie moge odczytać, adres 0x39 dla odczytu i
układ milczy.
Czy trzeba jeszcze coś specjalnego zrobić żeby układzik odpowiedział??
Pozdrawiam.
Mi z datasheeta wychodzi 0x41 do odczytu, 0x40 do zapisu?
i zobacz czy nie masz czasem wersji "A", bo ta ma inne adresy.
From: Rogher <rogher_at_nospam_wp.pl>
Subject: Re: Expander PCF8574, tryb wejsciowy
Date: Tue, 23 May 2006 06:28:32 +0200
Piotr [PKi] napisał(a):
Look napisał(a):
Witam wszystkich.
Podczepiłem sobie ten układzik pod AVR-ka i z zapisem nie ma żadnych
problemów.
Linie A0, A1, A2 do masy więc adresik układu do zapisu to 0x38 i stany
portów ustawiam jak chcę.
Jednak nic z tego układu nie moge odczytać, adres 0x39 dla odczytu i
układ milczy.
A tak zapytam bo nie kojarzę czy sprawdzałeś:
Aby I/O były wejściami to musisz ustawić je w stan High, to wiesz?
Masz problem z tym że przy odczycie magistrala milczy, czy z tym że to
co odczytujesz nie odpowiada rzeczywistości?
Rogher