Części: 8bit IO Expander (PCF8574)

Uncategorized

W niektórych przypadkach zadanie ma znacznie więcej czujników, przycisków lub diod LED niż mikrokontroler ma pinki. PCF8574 jest prostą metodą dodawania 8 pól wejściowych lub wyjściowych do mikrokontrolera. Konfigurowalny adres umożliwia kilka pcf8574s istniejących na dokładnie takim samym magistrali, więc dwa szpilki mikrokontrolerowe mogą zarządzać dużą ilością pinów IO. Pokażemy dokładnie, jak wykorzystać ten układ poniżej.

TI PCF8574 I2C 8Bit Io Expander (Mouser # 595-PCF8574N, 1,86 USD)

Odkryliśmy stóp PCB na ten układ w I2C.LBR, a także mikro-phillips.lub na stronie pobierania biblioteki CADSoft Eagle. PCF8574 jest zarządzany z 2 kablem I2C Protocolem, więc wykorzystaliśmy nasze interfejs szeregowy piracki autobusowej, aby zademonstrować ten układ. Dokładne działania podstawowe będą miały zastosowanie do dowolnego typu mikrokontrolera.

Schemat pokazuje nasz ładny obwód testowy dla PCF8574, oto arkusz danych (PDF). Poważowaliśmy chip 5 VOLT, jak również wykorzystywany kondensator z oddzieleniem 0.1UF (C1) między mocą, a także kołki naziemne. R1, jak również R2 przytrzymaj zegar I2C, a także magistrali danych przy 5 VOLTS. Wykorzystamy diodę do przetestowania funkcji wyjściowych chipów; P0 jest powiązany z LED1 z obecnym rezystorem ograniczającym R3 (330+ omów). P6, jak również P7 są podłączone do zrozumienia Określa, abyśmy mogli szybko przetestować możliwości wejściowe Chip.

Adres I2C PCF8574 wynosi 0100xxxy, z trzema bitami (X) zidentyfikowanymi przez określenie pinów adresowych A2-0, a także końcowy bit (Y), który ustawia tryb sprawdzony (1) lub komponować (0). Liczne PFC8574S mogą udostępniać magistralę I2C, wykorzystując różne ustawienia PIN adresu. Ponieważ podłączyliśmy pinki adresowe na ziemię, adres kompozycyjny wynosi 01000000 (0x40).

Wyjście

Dioda LED na P0 jest zarządzana przez komponowanie 1 (ON) lub 0 (OFF) do bit 0 bajtów zgodnych z adresem komponowania.

I2c> {0x40 0B00000001} <-command 210 I2C Stan Begin 220 I2C Napisz: 0x40 Got Ack: Tak <-Srite Address 220 I2C Napisz: 0x01 Got Ack: Tak <-Output Wartość Stan zatrzymania 240 I2C I2c >.

{Problemy zegarem I2C, przestrzegane przez adres kompozycyjny, 0x40. Wartość wyjściowa, 0B00000001, ustawia p0, a także niskie bitów pobytu. } Wysyła stan zatrzymania magistrali I2C, kończąc transakcję. Gdy odpowiedni bit jest ustawiony wysoki, dioda LED włącza się.

Aby wyłączyć diodę, powtórz sekwencję z odpowiednim bitem wyjściowym ustawionym na 0.

I2c> {0x40 0B0000000000} <- polecenie 210 I2C Stan Begin 220 I2C Napisz: 0x40 Got Ack: Tak <-Srite Address 220 I2C Napisz: 0x00 Got Ack: Tak <-Output Wartość Stan zatrzymania 240 I2C I2c >.

Z P0 teraz ustawiony na ziemię, dioda LED wyłącza się.

Wejście

Piny ustawione na wysokie wyjście może również być wykorzystywane jako wejścia (arkusz danych strony 1). W przykładzie p6 jest utrzymywany wysoko (+5 woltów), a także p7 jest utrzymywany niski (podłoże), jednak mogą być również przyciski, czujniki lub inna logika cyfrowa. Pozostałe piny są lewe, a także nie reprezentują ważnych danych.

I2c> {0x40 0B11000000} <- polecenie 210 I2C Stan Begin 220 I2C Napisz: 0x40 Got Ack: Tak <-Srite Address 220 I2C Napisz: 0xC0 Got Ack: Tak <-Output Wartość Stan zatrzymania 240 I2C I2c >.

Po pierwsze, ustawiamy preferowane kołki wejściowe do wyjścia wysoko, komponując 1 do odpowiednich bitów w wartości wyjściowej. BITS 6 oraz 7 zestaw P6 oraz P7, aby wysykać wysoko.

Teraz możemy sprawdzić szpilkę. Zrobiliśmy tę operację z wyjściem PIRATE PIRATE Ustaw na tryb binarny, aby upewnić się, że wartości PIN są niezwłocznie oczywiste.

I2c> {0x41 r} <- polecenie 210 I2C Stan Begin 220 I2C Napisz: 0B01000001 Got Ack: Tak <-Adress 230 I2C Czytaj: 0B01000000 <-Pin State Stan zatrzymania 240 I2C I2c >.

{Problemy z początkiem I2C, 0x41 jest sprawdzonym adresem, a także R czyta jeden bajt z urządzenia. } Wysyła stan zatrzymania magistrali I2C, kończąc transakcję.

Odpowiedź, 01000000 reprezentuje specyfikację kołków wejściowych. Najbardziej znaczącym bitem wynosi 0, ponieważ P7 jest podłączony do ziemi. Następny bit jest 1, ponieważ P6 jest trzymany wysokie inne bity (0) są danymi śmieciami.

This is far from the only IO expander IC. have you utilized one more chip?

Don’t fail to remember to catch up on any type of parts messages you may have missed.

Leave a Reply

Your email address will not be published.