Zastosowana w module izolacja zapewnia separację galwaniczną wejść i wyjść układu pomiędzy współpracującymi urządzeniami (rozdzielenie mas). Nie jest przewidziana do bezpośredniej separacji napięć sieci energetycznej.
- umożliwia monitorowanie stanów 4 izolowanych wejść,
- umożliwia sterowanie 4 izolowanymi wyjściami cyfrowymi,
- separacja galwaniczna wejść i wyjść,
- zgodny mechanicznie z Raspberry Pi Zero,
- zasilanie 3,3 V.
Moduł korzysta z magistrali I2C, umożliwia monitorowanie stanów 4 izolowanych wejść lub sterowanie 4 izolowanymi wyjściami cyfrowymi.
Zastosowany układ XRA1200PIG (Maxlinear) umożliwia rozbudowę aplikacji o ośmiobitowy port cyfrowy GPIO sterowany przez magistralę I2C. 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 XRA1200PIG został pokazany na rysunku 1.
Budowa i działanie
Schemat ideowy modułu został pokazany na rysunku 2. Wyprowadzenia GPIO układu U1 podzielone są na dwie grupy. Pierwsza (P0...P3) skonfigurowana jest jako wejścia cyfrowe, druga (P4...P7) jako wyjścia cyfrowe. Sygnały monitorowane powinny być doprowadzone do złącza IN, a stąd poprzez transoptor IS2 trafiają do inwerterów Schmidta U2...U5, działających jako filtry i odwracających polaryzację sygnału wejściowego.
Transoptor IS typu TCMT4600 przystosowany jest do pracy z sygnałami o zmiennej polaryzacji, w module zapewnia to zgodność z wyjściami czujników w konfiguracji PNP lub NPN. W zależności od typu czujników wyprowadzenie CMI łączone jest z masą lub plusem zasilania czujników.
Rezystory R5...R12 ograniczają prąd diod IS2. Dla wartości podanych na schemacie napięcie wejściowe mieści się w standardzie przemysłowym 24 VDC. Sygnał z wyjść P5...P7 układu U1 steruje diodami LED transoptora IS1. Wyjścia typu otwarty kolektor układu IS1 wyprowadzone są na złącze OUT. Prąd pojedynczego kanału nie powinien przekraczać 20 mA przy napięciu pracy do 24 VDC.
Układ uzupełniają złącza I2C i I2CA umożliwiające wyprowadzenie magistrali I2C Raspberry – nie mają optoizolacji. Układ zasilany jest poprzez złącze GPIO napięciem 3,3 V. Zwory A0, A1 umożliwiają ustawienie adresu układu U1 zgodnie z tabelą 1.
Układ ma możliwość generowania przerwań sprzętowych. Po wlutowaniu rezystora R15 stan wyjścia INT układu U1 dostępny jest na GPIO04.
Montaż i uruchomienie
Moduł zmontowany jest na dwustronnej płytce drukowanej. Rozmieszczenie elementów pokazano na rysunkach 3 i 4.
Sposób montażu jest klasyczny i nie wymaga opisu. Zmontowany moduł pokazano na fotografii tytułowej oraz na fotografii 1.
Po montażu należy kroplą cyny ustalić adres modułu na zworach A1, A0. Moduł może być używany także samodzielnie, wtedy nie lutujemy złącza GPIO, a magistralę I2C i zasilanie doprowadzamy do złączy I2C/I2CA, pamiętając o standardzie 3,3 V, nie ma wtedy możliwości korzystania z przerwania generowanego przez U1.
Układ XRA1200PIG zawiera osiem rejestrów ustalających tryb pracy GPIO oraz konfigurujących przerwania, skrócony opis rejestrów umieszczono w tabeli 2, pełny opis dostępny jest w karcie katalogowej.
Do szybkiego przetestowania działania modułu podłączonego do Pi wykorzystujemy bibliotekę i2ctools. Po ustawieniu adresu bazowego zworami A1, A0 moduł powinien być widoczny po odczycie magistrali poleceniem
i2cdetect -y 1
Efekt pokazano na rysunku 5 (ustawiony adres bazowy 7-bitowy 0x2F [0x5E]). W pierwszej kolejności ustawiamy konfigurację IO w rejestrze GCR, porty P4...P7/[OUT4...OUT1] ustawiamy jako wyjścia, P0...P3/[IN3...IN1] jako wejścia:
i2cset -y 1 0x2F 0x03 0x0F
Stan wejść z rejestru GSR odczytujemy poleceniem (istotne tylko 4 młodsze bity P3...P0):
i2cget -y 1 0x2F 0x00
Ustawienie rejestru OCR stanu wyjść Y (istotne tylko starsze cztery bity P7...P4):
i2cset -y 1 0x2F 0x01 0xY0
Jeżeli wszystko działa poprawnie, można moduł zastosować we własnej aplikacji.
Adam Tatuś
adam.tatus@ep.com.pl
- R1…R4, R15, R20…R23: 330 Ω SMD0603
- R5…R12: 1,5 kΩ/0,5 W SMD1206
- R13, R14: 4,7 kΩ SMD0603
- R16…R19: 22 kΩ SMD0603
- C1, C7: 0,1 μF SMD0603
- C2: 10 μF SMD0603
- C3…C6: 100 pF SMD0603
- IS1: TCMT4100 (SO16) transoptor 4×
- IS2: TCMT4600 (SO16) transoptor 4× AC
- U1: XRA1200PIG16 (TSSOP16_065)
- U2…U5: 74V1G14 (SC70-5)
- GPIO: złącze DS1023-2*20S21
- I2C: złącze JST 4 pin 1 mm kątowe SMD
- I2CA: złącze HST 4 pin 2 mm kątowe
- IN, OUT: złącze śrubowe 5 pin 3,5 mm DG381-3.5-5