- wyjścia mogą być obciążone prądem do 8 mA,
- wejścia tolerują napięcie 5 V,
- zasilanie napięciem z zakresu 1,65…3,6 V.
Układ daje możliwość definiowania kierunku każdego z wyprowadzeń IO, sterowania rezystorami podciągającymi, konfiguracji buforów wyjściowych w trybie trójstanowym oraz elastycznej konfiguracji generowanych przerwań. Schemat wewnętrzny układu XRA1200 został pokazany na rysunku 1.
Układ dostępny jest w dwóch wersjach: XRA1200 z załączonymi oraz XRA1200P z domyślnie wyłączonymi po resecie rezystorami podciągającymi.
Budowa i działanie
Schemat ideowy modułu został pokazany na rysunku 2.
Oprócz układu U1-XRA1200(P) zawiera trzy zworki A0...A2 umożliwiające ustalenie adresu oraz zworę PU umożliwiającą odłączenie rezystorów podciągających I2C – R1, R2. Pełna adresacja U1 umożliwia zastosowanie do 32 układów na jednej magistrali, w module ustawienie adresów jest ograniczone do 8 zgodnie z tabelą 1. Adresy nie pokrywają się z popularnym PCF8574, można więc stosować ekspandery na jednej magistrali.
A2 | A1 | A0 | Adres |
GND | SCL | SCL | 0x30 (0011 000X) |
GND | SCL | SDA | 0x32 (0011 001X) |
GND | SDA | SCL | 0x34 (0011 010X) |
GND | SDA | SDA | 0x36 (0011 011X) |
VCC | SCL | SCL | 0x38 (0011 100X) |
VCC | SCL | SDA | 0x3A (0011 101X) |
VCC | SDA | SCL | 0x3C (0011 110X) |
VCC | SDA | SDA | 0x3E (0011 111X) |
Sygnały GPIO doprowadzone są do złączy J1 i J2, dodatkowo wyprowadzono sygnał przerwania J2-9. Wyjścia mogą być obciążone prądem do 8 mA w każdym ze stanów logicznych, co umożliwia bezpośrednie sterowanie niskoprądowymi LED zarówno stanem niskim, jak i wysokim, pod warunkiem nieprzekraczania traconej w układzie mocy (200 mW). PCF8574 ma większą wydajność prądową tylko dla stanu niskiego. Sygnały magistrali I2C i zasilanie doprowadzone są do czteropinowego złącza typu EH – I2C zgodnego z Arduino oraz do złącza I2C1 JST o rozstawie 1 mm.
Uwaga: niektóre fabryczne kable EH4 maja przeplot 1-4,2-3, aby je wykorzystać, należy zamienić kolejność wyprowadzeń w jednym złączu EH.
Moduł może być zasilany napięciami z zakresu 1,65...3,6 V. Dioda LD sygnalizuje obecność zasilania. Wyprowadzenie IO XRA1200 tolerują napięcie 5 V, ale należy zachować ostrożność podczas konfiguracji układu.
Montaż i uruchomienie
Moduł zmontowany jest na dwustronnej płyt-
ce drukowanej. Rozmieszczenie elementów zostało pokazane na rysunku 3. Sposób montażu jest klasyczny i nie wymaga opisu. Zmontowany moduł pokazuje fotografia tytułowa.
Konstrukcja mechaniczna modułu umożliwia bezproblemową współpracę z płytkami stykowymi lub prototypowymi, zalecam stosowanie długich (30...40 mm) złączy SIP, wlutowanych tak, aby wyprowadzenia wystawały po obu stronach płytki drukowanej. Taki sposób montażu umożliwia wygodne stosowanie modułu w płytkach stykowych, ułatwia wyprowadzenie sygnałów oraz rozszerzanie magistrali I2C.
Sterowanie układem
XRA1200(P) ma osiem rejestrów ustalających tryb pracy GPIO oraz konfigurujących przerwania; skrócony opis rejestrów pokazano w tabeli 2, pełny opis dostępny jest w karcie katalogowej.
Dla szybkiego sprawdzenia działania moduł można podłączyć do Raspberry Pi i użyć funkcjonalności biblioteki i2ctools. Po ustawieniu adresu bazowego zworami A0...A2 moduł powinien być widoczny po odczycie magistrali poleceniem i2cdetect -y 1, co pokazano na rysunku 4 (ustawiony adres bazowy 7-bitowy 0x1F).
Poniżej kilka przydatnych poleceń:
- Stan wejść może być odczytany bez dodatkowej konfiguracji (przy ustawieniach domyślnych) poleceniem: i2cget -y 1 0x1F 0x00
- Wejścia mogą zostać zanegowane poleceniem: i2cset -y 1 0x1F 0x02 0xFF
- Ustawienie wyprowadzeń jako wyjścia wykonujemy poleceniem: i2cset -y 1 0x1F 0x03 0x00
- Stan wyjść zmieniamy poleceniem: i2cset -y 1 0x1F 0x01 0xFF
- Ustawienie wyjścia w stan wysokiej impedancji: i2cset -y 1 0x1F 0x06 0xFF
- Odczyt stanu rejestru wyjściowego GPIO: i2cget -y 1 0x1F 0x00
W przypadku ustawienia wyjść w tryb tri-State, odczyt rejestru GSR może różnić się od fizycznego stanu wyprowadzeń, warto o tym pamiętać.
Adam Tatuś
- R1, R2, R3, R4, R5, R6: 4,7 kΩ SMD0805
- C1, C2: 0,1 μF SMD0805
- U1: ADUM1250ARZ SO8
- I2CAI, I2CAO: złącze EH4 kątowe
- I2CBI, I2CBO: złącze SIP4 proste męskie
- I2CCI, I2CCIA, I2CCO, I2CCOA: złącze JST 2 mm proste
- I2CDI, I2CDI1, I2CDO, I2CDO1: złącze Grove proste
- I2CEI, I2CEO: złącze JST4 1 mm
- I2CGI, I2CGO: złącze śrubowe 2,54 mm MPT0.5/4-2.54