PCF8574

Mar 23, 2010 5 Replies

Cze¶æ,



Mam ¶mieszny problem, ale zatrzyma³ mnie ju¿ drugi dzieñ, wiêc proszê o pomoc. Chcê u¿yæ PCF8574, gdzie 4 piny bêd± wejsciami a 4 wyj¶ciami. Aby odczytaæ stan wej¶æ, muszê wys³aæ najpierw na adres podstawowy w warto¶æ



255, w celu ustwienia uk³adu w tryb input, a nastepnie na adresie dodatkowym odpytujê o stan portu.

Co jesli chce uzywac jako wyjsc polowy portu. Wysy³am losowe wartosci na adres podstawowy 1,2,4,8 i wszystko niby dzia³a, ale co je¶li chcia³bym wszystkie piny u¿yc jako wyj¶cia i ustawiæ im stan wysoki ,bo muszê wys³aæ warto¶æ 255, co uk³ad odbierze jako odpytanie portów wejsciowych.



Pogubi³em siê, a w googlach widzê tylko przyk³ady u¿ycia PCF8574 jako wej¶cia. W manualu nawet nie ma wzmianki i konieczno¶ci wcze¶niejszego wys³ania warto¶ci 255 dla odczytania portu.



Pozdrawiam Micha³


255 wysy³a siê aby piny ustawiæ w stan wysoki przy za³o¿eniu, ¿e po resecie maj± nieustalony. Je¿eli programowo nie zmienisz stanu Twoich pinów wej¶ciowcych to ich stan jest zale¿ny od tego co na wej¶ciu. Jak co¶ uziemia z zewn±trz Twoje piny wej¶ciowe to i tak programowo nie zmienisz ich stanu. Wysy³aj±c co¶ do uk³adu aby zmieniæ stan pinów wyj¶ciowych dla wej¶ciowych przyjmujesz stan 1.

PC

W dniu 2010-03-23 12:54, PC pisze:

OIDP Power-on reset powoduje ustawienie wszystkich wyjść na Hi.

Czyli, na adres podstawowy mogê wysy³aæ tylko ¿adanie zniamy stanu wyjscia, a na adresie dodatowym odczytywaæ stan wejsc i braæ pod uwagê tylko piny, których u¿ywam jako wej¶æ. To ma sens, nie wiedzia³em po co ten nieszczesny pocz±tek 255:-) Dziêki, pozdrawiam

Kolega ju¿ tu ³adnie odpisa³, a ja ze swojej strony dodam, ¿e nale¿y zwróciæ uwagê na adres w zale¿no¶ci od literki A na koñcu oznaczenia. Kiedy¶ mia³em k³opot, bo zamiast PCF8574 by³ kupiony PCF8574A. I tak musia³em zmieniæ kod: ;S4.9 I2C ;okre»lenie adres·w uk|ad·w scalonych IF PCF8574A cKB0 EQU 0x70 ;adres uk|adu KB0 cKB1 EQU 0x72 ;adres uk|adu KB1 cKB2 EQU 0x74 ;adres uk|adu KB2 cKB3 EQU 0x76 ;adres uk|adu KB3 ELSE cKB0 EQU 0x40 ;adres uk|adu KB0 cKB1 EQU 0x42 ;adres uk|adu KB1 cKB2 EQU 0x44 ;adres uk|adu KB2 cKB3 EQU 0x46 ;adres uk|adu KB3 ENDIF

Michał pisze:

Cześć

1.Układ nie posiada dwóch adresów,pomylił kolega bit R/W z adresowymi. Adresowanie po I2C ma 7 bitów czyli do 127 urządzeń a 8 bit to R/W

2.Ależ wszystko jest w manualu. Proszę popatrzeć na schemat wew. Port wyjściowy nie ma tranzystora do ustawiania stanu wysokiego na wyjściu. Ma źródło prądowe o ile dobrze pamiętam 100uA. Jeżeli ma pracować jako wyjściowy to możesz albo wymusić stan niski albo go nie wymuszać i wtedy masz stan wysoki realizowany poprzez źródło prądowe.

Jeżeli ma pracować jako wejście to stan niski podobnie wymuszony zewnętrznie a wysoki może być wymuszony zewnętrznie lub podobnie jak w poprzednim przypadku.

Tak czy siak - wejście czy wyjście nie ma przełączania kierunku portu.

Pozdrawiam

Adam

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required