Mam pewien problem:
Posiadam układ PCF8574AP, ale z nim jest coś nie tak. Adres zamiast:
&B01110010
(A0 mam podłączoną do + zasilania, A1, A2 do masy), układ reaguje na następujący adres:
&B11100100
tak jakby wszystkie bity były przesunięte w lewo. Inna sprawa, że nie mogę sterować bitem na D7, po prostu nie reaguje ta końcówka w ogóle.
Czy ktoś miał może podobne problemy?
PCF8574AP, o co tu chodzi?
- gwozdex
- Użytkownik
- Posty: 879
- Rejestracja: 24 lut 2006, 10:04
- Lokalizacja: Czechowice-Dziedzice
- Kontakt:
Nie jestem pewien ale chyba jest to problem związany z wersją układu scalonego. Mianowicie wersja z literą A(AP) na końcu ma inny adres bazowy niż układy bez tej końcówki. Poszukaj szczegółów w artykule:
https://elportal.pl/pdf/k10/52_05.pdf
Mam nadzieję, że pomogłem. Pozdrawiam
Mam nadzieję, że pomogłem. Pozdrawiam
No tak, w artykule jest napisane:
I2csend 112, 255 (adres binarnie: &B01110000)
I2csend 114, 255 (adres binarnie: &B01110010)
Przy czym u mnie na ten adres układ PCF8574 w ogóle nie reaguje. Sprawdzałem oba adresy bazowe, zarówno dla PCF8574, jak i 8574A(P), przy czym podany powyżej adres po przesunięciu o 1 bit w lewo dopiero działa. Można by tak to zostawić,ale chcę móc ustawić wszystkie 8 bitów, a nie tylko 7.
I2csend 112, 255 (adres binarnie: &B01110000)
I2csend 114, 255 (adres binarnie: &B01110010)
Przy czym u mnie na ten adres układ PCF8574 w ogóle nie reaguje. Sprawdzałem oba adresy bazowe, zarówno dla PCF8574, jak i 8574A(P), przy czym podany powyżej adres po przesunięciu o 1 bit w lewo dopiero działa. Można by tak to zostawić,ale chcę móc ustawić wszystkie 8 bitów, a nie tylko 7.
PCF8574(A) posiada staly adres bin: 0 1 1 1 A2 A1 A0 R/W
pierwsze 4bity w hex: 7
druga polowa bajtu to:
3bity adres ustawiany na nogach A0,A1,A2 wedlug opisu bin: 0 0 1
ostatni bit decyduje czy READ (odczyt) lub WRITE (zapis) bin: R/W
cyli druga polowa bajtu to w hex: to 2 gdy odczyt i 3 gdy zapis
reasumujac:
adres hex do odczytu: 72h
adres hex do zapisu: 73h
mysle ze wystarczajoco wyjasnilem.
pierwsze 4bity w hex: 7
druga polowa bajtu to:
3bity adres ustawiany na nogach A0,A1,A2 wedlug opisu bin: 0 0 1
ostatni bit decyduje czy READ (odczyt) lub WRITE (zapis) bin: R/W
cyli druga polowa bajtu to w hex: to 2 gdy odczyt i 3 gdy zapis
reasumujac:
adres hex do odczytu: 72h
adres hex do zapisu: 73h
mysle ze wystarczajoco wyjasnilem.