Ekspander portów cyfrowych z układem XRA1201

Ekspander portów cyfrowych z układem XRA1201

Zaprezentowany moduł umożliwia monitorowanie stanów lub sterowanie do 16 wyjść cyfrowych przy użyciu magistrali I²C. Dwa porty pogrupowane po 8 wyprowadzeń dostępne są poprzez typowe złącze RJ45. Uzupełniająca płytka przyłączeniowa umożliwia wyprowadzenie sygnałów na złącze śrubowe lub listwę goldpin, a połączenie z płytką bazową zrealizowane jest typowym kablem FTP Cat6a.

Podstawowe parametry:
  • umożliwia monitorowanie stanów lub sterowanie do 16 wyjść cyfrowych,
  • komunikacja poprzez magistralę I²C,
  • wyjścia mogą być obciążone prądem do 8 mA,
  • dodatkowa płytka przyłączeniowa zawiera złącze śrubowe i listwę goldpin,
  • połączenie z płytką bazową zrealizowane jest typowym kablem FTP.

Zastosowany w nakładce układ XRA1201 (Maxlinear) umożliwia rozbudowę dowolnej aplikacji o dwa ośmiobitowe porty cyfrowe GPIO. Układ ma 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 XRA1201 został pokazany na rysunku 1. Układ dostępny jest w dwóch wersjach - XRA1201P z załączonymi oraz XRA1201 z domyślnie wyłączonymi po resecie rezystorami podciągającymi.

Rysunek 1. Schemat wewnętrzny układu XRA1201

Budowa i działanie

Schemat ideowy modułu został pokazany na rysunku 2, natomiast na rysunku 3 znajduje się schemat ideowy płytki przyłączeniowej.

Rysunek 2. Schemat modułu
Rysunek 3. Schemat płytki przyłączeniowej

Blisko układu U1 typu XRA1201(P) znajdują się zworki A0, A1 umożliwiające ustalenie adresu na magistrali. Pełna adresacja U1 umożliwia zastosowanie do 32 układów na jednej magistrali, w module ustawienie adresów jest ograniczone do 4 zgodnie z tabelą 1.

Sygnały GPIO doprowadzone są do złączy JIOA, JIOB, sygnał przerwania podłączony jest poprzez rezystor R1 do wyprowadzenia GPIO04. Jeżeli nie korzystamy z przerwania, to pomijamy montaż R1. Wyjścia GPIO mogą być obciążone prądem do 8 mA w każdym ze stanów logicznych, co umożliwia bezpośrednie sterowanie niskoprądowych diod LED zarówno stanem niskim, jak i wysokim, pod warunkiem nieprzekraczania traconej w układzie mocy 200 mW i prądu wyprowadzeń GPIO 160 mA.

Sygnały magistrali I²C i zasilanie doprowadzone są do czterostykowych złączy JST o rozstawie 1 mm (I²C) i 2 mm (I²CA), co nie tylko wyprowadza magistralę do modułów zewnętrznych, ale umożliwia także użycie modułu z innymi systemami. Moduł może być zasilany napięciami z zakresu 1,65...3,6 V.

Wyprowadzenia IO układu XRA1201 tolerują napięcie 5 V, ale należy zachować ostrożność podczas konfiguracji układu.

Montaż i uruchomienie

Moduł zmontowany jest na dwustronnej płytce drukowanej, której schemat został pokazany na rysunku 4, natomiast schemat płytki przyłączeniowej pokazuje rysunek 5.

Rysunek 4. Schemat PCB modułu bazowego
Rysunek 5. Schemat PCB płytki przyłączeniowej

Sposób montażu jest klasyczny i nie wymaga dokładnego opisu. Po montażu należy kroplą cyny ustalić adres modułu na zworach A1, A0.

Układ XRA1201(P) ma szesnaście 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. Do szybkiego przetestowania działania modułu podłączonego do RPi użyjemy biblioteki i2ctools.

Po ustawieniu adresu bazowego zworami A1, A0 moduł powinien być widoczny po odczycie magistrali poleceniem:

i2cdetect -y 1

podobnie jak pokazano na rysunku 6 (ustawiony adres bazowy 7-bitowy 0x18).

Stan wejść GPIO (P0...P7/P8...P15) może być odczytany bez dodatkowej konfiguracji, tylko na bazie ustawień domyślnych, poleceniem:

i2cget -y 1 0x18 0x00
i2cget -y 1 0x18 0x01

Jeżeli stosujemy układ XRA1201, przed odczytem stanu należy załączyć rezystory podciągające wejście poleceniem:

i2cset -y 1 0x18 0x08 0xFF
i2cset -y 1 0x18 0x09 0xFF

lub doprowadzić do wejścia sygnał logiczny o poziomach 0/3,3 V. Wejścia mogą zostać zanegowane poleceniem:

i2cset -y 1 0x18 0x04 0xFF
i2cset -y 1 0x18 0x05 0xFF

Ustawienie GPIO jako wyjść wykonujemy poleceniem:

i2cset -y 1 0x18 0x06 0x00
i2cset -y 1 0x18 0x07 0x00

Stan wyjść zmieniamy poleceniem:

i2cset -y 1 0x18 0x02 0xFF
i2cset -y 1 0x18 0x03 0xFF

Ustawienie wyjść w stan wysokiej impedancji:

i2cset -y 1 0x18 0x0C 0xFF
i2cset -y 1 0x18 0x0D 0xFF

Odczyt stanu rejestru wyjściowego GPIO:

i2cget -y 1 0x18 0x00
i2cget -y 1 0x18 0x01
Rysunek 6. Detekcja układu XRA1201 na magistrali I²C za pomocą i2ctools

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ć. Jeżeli wszystko działa poprawnie, można moduł zastosować we własnej aplikacji.

Adam Tatuś, EP

Wykaz elementów: Moduł bazowy
Rezystory: (SMD0603, 1%)
  • R1: 330 Ω
  • R2, R3: 4,7 kΩ 
Kondensatory: (SMD0603)
  • C1, C3: 0,1 μF
  • C2: 10 μF
Półprzewodniki:
  • U1: XRA1201IL24 (QFN24)
Pozostałe:
  • A0, A1: zworka (SMD0603)
  • GPIO: złącze IDC 2×20pin żeńskie
  • I²C: złącze JST 4 pin 1 mm kątowe
  • I²CA: złącze HST 4 pin 2 mm kątowe
  • JIOA, JIOB: gniazdo RJ45 MTJ-88GX1-FSD
Płytka przyłączeniowa
Rezystory:
Kondensatory:
Półprzewodniki:
Pozostałe:
  • J1: złącze śrubowe 10 pin 2,54 mm
  • JIO: złącze szpilkowe SIP10 2,54 mm
  • JIOA: gniazdo RJ45 MTJ-88GX1-FSD
Artykuł ukazał się w
Elektronika Praktyczna
kwiecień 2023
DO POBRANIA
Materiały dodatkowe
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik listopad 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio listopad - grudzień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje listopad - grudzień 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna listopad 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich grudzień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów