PCF8574 domyślnie odczytywana wartość?

Tutaj mozesz poruszać tematy ogólne powiązane z elektroniką, np. dyskusje na temat podzespołów, układów, zasad ich działania. Czyli można pisać o wszystkim czego nie da się przyporządkować do innych działów.
ODPOWIEDZ
Awatar użytkownika
Kulpina
Użytkownik
Posty: 2040
Rejestracja: 28 lip 2005, 16:57
Lokalizacja: Sanok
Kontakt:

PCF8574 domyślnie odczytywana wartość?

Post autor: Kulpina » 15 lut 2010, 10:52

Pisałem taki programik:

Kod: Zaznacz cały

i2c_start();
i2c_send(0x40); //wpisywanie do PCF8574
i2c_send(0xFF);
i2c_start();
i2c_send(0x41); //odczytywanie z PCF8574
g_tescik = i2c_get(I2C_NACK);
i2c_stop();
z przekonaniem, że do poprawnej pracy należy wcześniej wpisać do pamięci układu 11111111, żeby później móc odczytać, które z końcówek zostały podłączone przyciskiem do masy. Jednak po usunięciu fragmentu z wpisywaniem:

Kod: Zaznacz cały

//i2c_start();
//i2c_send(0x40);
//i2c_send(0xFF);
i2c_start();
i2c_send(0x41);
g_tescik = i2c_get(I2C_NACK);
i2c_stop();
Program działa dokładnie tak samo.

Dlaczego tak jest? Nie mam żadnych zewnętrznych rezystorów podciągających końcówki pcf8574 do +5V. Czy w tym scalaku i/o są domyślnie podciągnięte do +?

Awatar użytkownika
marcing
Użytkownik
Posty: 869
Rejestracja: 14 lut 2006, 14:13
Lokalizacja: z pociągu...
Kontakt:

Post autor: marcing » 15 lut 2010, 14:44

Kulpina, przecież po resecie (włączeniu zasilania) układ PCF8574 domyślnie ustawia wszystkie wyjścia - spójrz do noty (także na schemat blokowy). Skoro końcówki "wiszą", to odczytujesz ostatni stan...

Awatar użytkownika
Kulpina
Użytkownik
Posty: 2040
Rejestracja: 28 lip 2005, 16:57
Lokalizacja: Sanok
Kontakt:

Post autor: Kulpina » 15 lut 2010, 17:37

Czyli można zostawić tak jak jest? Nie zawiedzie mnie to w najmniej oczekiwanym momencie?

Awatar użytkownika
marcing
Użytkownik
Posty: 869
Rejestracja: 14 lut 2006, 14:13
Lokalizacja: z pociągu...
Kontakt:

Post autor: marcing » 15 lut 2010, 20:09

Bezpieczniej - o czym też wspomina nota - jest podciągnąć wyjścia do Vcc. Przy okazji zapewni to szybszą zmianę stanu (w przypadku sterowania dodatkowymi urządzeniami) oraz da pewność przy odczycie portu (przyciski)...

Awatar użytkownika
Kulpina
Użytkownik
Posty: 2040
Rejestracja: 28 lip 2005, 16:57
Lokalizacja: Sanok
Kontakt:

Post autor: Kulpina » 15 lut 2010, 21:58

marcing pisze:podciągnąć wyjścia do Vcc
Tzn zewnętrznymi rezystorami?

Awatar użytkownika
marcing
Użytkownik
Posty: 869
Rejestracja: 14 lut 2006, 14:13
Lokalizacja: z pociągu...
Kontakt:

Post autor: marcing » 16 lut 2010, 16:33

Kulpina pisze:Tzn zewnętrznymi rezystorami?
Tak... możesz zastosować R-Pack - jest wygodniej, bo nie potrzeba zbyt wiele miejsca na ten element (czasem można przylutować też od strony druku, jak się zapomniało zostawić miejsce na rezystory podciągające)


Jeśli zaś o program chodzi - bezpieczniej jest zrobić wstępną konfigurację układu PCF8574, ponieważ autokonfiguracja jest wykonywana tylko przy włączaniu zasilania układu.

Awatar użytkownika
Kulpina
Użytkownik
Posty: 2040
Rejestracja: 28 lip 2005, 16:57
Lokalizacja: Sanok
Kontakt:

Post autor: Kulpina » 16 lut 2010, 18:31

Pewnie podłącze rezystorki smd jeśli mi to nie będzie przeszkadzało (cała płytka ma być w smd).
No więc to chyba na tyle ;) dzięki wielkie :)

Awatar użytkownika
marcing
Użytkownik
Posty: 869
Rejestracja: 14 lut 2006, 14:13
Lokalizacja: z pociągu...
Kontakt:

Post autor: marcing » 18 lut 2010, 14:29

Kulpina pisze:Pewnie podłącze rezystorki smd jeśli mi to nie będzie przeszkadzało (cała płytka ma być w smd).
Są też R-Pack'i (inaczej - drabinki rezystorowe) w wersjach SMD... poza tym - nawet zwykłą można wlutować powierzchniowo, ponieważ jest to stosunkowo niewielki element (oczywiście nie licząc tych o większej mocy).
Pamiętaj też, że są różne wersje tych elementów - poszukaj sobie opisów tych elementów, to będziesz wiedział o co chodzi :)

Zresztą - przykładowa drabinka rezystorowa 8x1.2k (taką można zastosować)

Awatar użytkownika
Kulpina
Użytkownik
Posty: 2040
Rejestracja: 28 lip 2005, 16:57
Lokalizacja: Sanok
Kontakt:

Post autor: Kulpina » 18 lut 2010, 20:32

no tak tak, rozumiem Cię ;) Muszę to jednak przemyśleć, bo płytka ma być 4cmx4cm i mam na niej zmieścić atmegę8smd ds1629 pcf8574 + z drugiej strony laminatu myślę klawiaturę umieścić, ale to się zobaczy :mrgreen:
Nie wiem jak mi będzie wygodniej czy smd czy rpack smd nawet bo ten pcf8574 ma 4 IO po jednaj stronie i 4 po drugiej...

Właściwie te rpacki w smd sa niewiele mniejsze od ułożonych obok siebie rezystorów :mrgreen:

ODPOWIEDZ