- sterowanie przy pomocy prostych komend ASCII,
- moduł przystosowany jest do sterowania układów niskonapięciowych, maksymalne napięcie przełączane to 30 V AC/DC, przy obciążalność styku przekaźnika 5 A,
- całkowity pobór mocy modułu wynosi 0,5 W przy aktywnych wszystkich przekaźnikach.
Zaprezentowany układ interfejsu zawiera dwa specjalizowane układy – pierwszy to konwerter USB/UART typu FT230, drugi to układ mostka UART/GPIO/I²C typu SC18IM704 firmy NXP, którego strukturę wewnętrzną pokazano na rysunku 1. Układ SC18IM704 komunikuje się z komputerem nadrzędnym poprzez standardowy interfejs szeregowy UART, korzystając z komunikacji znakowej ASCII. Interfejs GPIO dostępny jest poprzez rejestry wewnętrzne układu, każde z wyprowadzeń GPIO może pracować w trzech trybach: wejścia, wyjścia z otwartym drenem i wyjścia Push-Pull. Układ obsługuje także magistralę I²C w trybie odczytu i zapisu. Obsługa I²C nie jest używana w opisanym projekcie. Cała praca programistyczna podczas używania SC18IM704 ogranicza się do opracowania aplikacji na PC komunikującej się poprzez UART. Aby zapewnić komunikację z SC18IM704 jego port szeregowy podłączony jest z PC poprzez interfejs konwertera USB/UART.
Budowa i działanie
Schemat interfejsu został pokazany na rysunku 2. Magistrala USB-C doprowadzona jest do gniazda typu USB4110 GCT, które ma ograniczoną do trybu zgodności USB 2.0, liczbę wyprowadzeń. Dostępne są jedynie linie interfejsu USB2.0, zasilanie oraz wyprowadzenia konfiguracji interfejsu. Zmniejszona liczba wyprowadzeń USB-C ułatwia montaż, który nie wymaga specjalistycznych narzędzi.
Układ U1 typu FT230XS pełni funkcję interfejsu USB/UART, dioda LD2 sygnalizuje obecność zasilania, dioda LD1 aktywną transmisję szeregową (dla obu kierunków transmisji RX/TX). Wbudowany w U1 stabilizator 3,3 V jest używany do zasilania części logicznej układu. Układ U3 typu SC18IM704 pełni funkcję mostka UART/GPIO. Za poprawny restart po włączeniu zasilania odpowiada U2 typu MCP100T-315. Mostek U3 ma 8 wyprowadzeń GPIO. W modelu do sterowania cewkami przekaźników używane są GPIO0...3.
W module zastosowano nowoczesne przekaźniki Panasonic APAN3105 cechujące się niewielkimi rozmiarami oraz niewielkim poborem mocy (110 mW). Pozwala to na obniżenie całkowitego poboru mocy modułu do 0,5 W przy aktywnych wszystkich przekaźnikach. Cewki przekaźników buforowane są tranzystorami Q1...Q4, każda cewka ma sygnalizację podania napięcia zrealizowaną na diodach LD3...LD6. Styki przekaźników wyprowadzone są na złącze śrubowe OUTPUT.
Przekaźniki zasilane są potencjałem VREL, który kluczowany jest układem U5 typu AP2151AW z napięcia V50 z interfejsu USB-C. Dodatkowe kluczowanie zasilania VREL sterowane z GPIO6 U3 zapewnia eliminację stanów przejściowych podczas załączenia układu, oraz zapewnia minimalny pobór mocy podczas inicjacji interfejsu. Tranzystor Q5 zapewnia inwersję sygnału sterującego oraz konwersję poziomów napięcia.
Montaż i uruchomienie
Moduł zmontowany jest na dwustronnej płytce drukowanej, której schemat został pokazany na rysunku 3. Poprawnie zmontowany układ nie wymaga uruchamiania.
Po podłączeniu do portu USB, konwerter FT230 powinien zostać wykryty i powinno automatycznie zostać zainstalowane oprogramowanie. Przy użyciu oprogramowania narzędziowego FT Prog, należy skonfigurować prąd pobierany z magistrali – zgodnie z ustawieniami pokazanymi na rysunku 4.
Następnie należy zmienić konfigurację wyprowadzenia C1, na sygnalizację sumy sygnałów RXD/TXD – zgodnie z rysunkiem 5. Jeżeli konfiguracja została ustalona i zapisana, należy układ zrestartować poprzez odłączenie i ponowne podłączenie do magistrali USB.
Dla sprawdzenia modułu należy zainstalować terminal portu szeregowego z możliwością wysyłania sekwencji znaków np. Realterm. Komunikacja z układem SC18IM704 odbywa się poprzez wysłanie polecenia w postaci komendy ASCII, zestaw rozpoznawanych komend zestawiono w tabeli 1. Komendy nierozpoznane są ignorowane. Układ ma wbudowany licznik time-out, który kasuje zawartość buforów, jeżeli odbiór kolejnych dwóch znaków zajmuje więcej niż 655 ms.
Po restarcie układ jest skonfigurowany wstępnie, standard transmisji ustawiony jest na 9600,8,N,1. Konfiguracja może zostać zmieniona w rejestrach układu, które pokazano na rysunku 6, i szczegółowym opisem w dokumentacji SC18IM704PWJ.pdf dołączonej do materiałów dodatkowych projektu.
Po uruchomieniu terminala i resecie układu, zwrócone zostaną znaki OK, potwierdzające połączenie z układem. Dla sprawdzenia poprawnej komunikacji z układem SC18IM704 odczytujemy jego sygnaturę wysyłając:
56 50
Układ powinien zwrócić ciąg:
53 43 31 38 49 4D 37 30 34 20 31 2E0 30 2E 32 00
czyli typ i wersję układu:
SC18IM704 1.0.2
Do zmiany konfiguracji służą sekwencje poleceń zapisu rejestru wewnętrznego:
W <rejestr 0> <dana 0>...<rejestr N> <dana N> P
lub odczytu:
R <rejestr 0> ...<rejestr N> P
po którym SC18IM704 zwróci ciąg wartości:
<dana 0> ... <dana N>
Dla przykładu – odczyt rejestru 00 to sekwencja:
52 00 50 – która po resecie zwraca wartość domyślną 0xF0
Przed użyciem wyprowadzeń GPIO w rejestrach PortConf1/2 należy ustawić wymaganą konfigurację wyprowadzenia, zgodnie z tabelą 2.
Dla sterowania przekaźnikami oraz sygnałem klucza zasilania konieczne jest ustawienie GPIO6 oraz GPIO3...0 jako wyjść Push-Pull (10). Wymaga to zapisu rejestrów wewnętrznych PortConf1 0x02 (GPIO3...0) oraz PortConf2 0x03 (GPIO7...4):
57 02 AA 50 – która ustawia w rejestrze PortConf1 (0x02) piny GPIO3...0, jako wyjścia PP;
57 03 20 50 – która ustawia rejestrze PortConf2 (0x03) pin GPIO6 jako wyjście PP, a pozostałe jako wejścia. Weryfikację zapisu rejestrów można wykonać poleceniem odczytu rejestru wewnętrznego:
52 02 50 – która powinna zwrócić zapisaną wartość 0xAA,
52 03 50 – która powinna zwrócić zapisaną wartość 0x20.
Do zmiany stanu GPIO służą sekwencje poleceń odczytu I oraz zapisu O:
49 50 – po której układ zwróci <stan GPIO>
4F <dana> 50 – po której układ zapisze stan GPIO.
Sterowanie przekaźnikami oraz kluczowanie zasilania wymaga zapisu portu GPIO:
4F 00 50 – która załącza klucz VREL (aktywny stan niski GPIO6) oraz wyłącza sterowanie wszystkich przekaźników. Wysterowanie poszczególnych cewek odbywa się poprzez ustawienie stanu wysokiego na odpowiadających wyprowadzeniach GPIO3...0, przykładowo – załączenie przekaźnika RL1 wymaga polecenia:
4F 01 50 – załączenie przekaźnika RL1.
Po sprawdzeniu działania wszystkich wyjść moduł można zastosować we własnej aplikacji.
Adam Tatuś, EP
- R1, R2: 27 Ω
- R3: 470 Ω
- R4: 2,2 kΩ
- R5, R6, R7, R8, R9, R10: 5,1 kΩ
- R11: 22 kΩ
- R12: 100 Ω
- R13: 220 kΩ
- RP1: drabinka rezystorowa 4×10 kΩ (CRA06S08)
- RP2: drabinka rezystorowa 4×100 kΩ (CRA06S08)
- C1, C2: 47 pF/25 V COG
- C3, C4, C6: 0,1 μF/10 V
- C5, C8, C9: 10 μF/10 V
- C7: 1 nF/10V
- D1, D2, D3, D4: dioda uniwersalna 1N4448W-TP (SOD123)
- LD1: dioda LED żółta 2 mA (SMD0603)
- LD2: dioda LED czerwona 2 mA (SMD0603)
- LD3...LD6: dioda LED zielona 2 mA (SMD0603)
- Q1, Q2, Q3, Q4, Q5: tranzystor MOSFET DMG3414U (SOT-23)
- U1: FT230XS (SSOP16)
- U2: MCP100T-315I/TT (SOT-23)
- U3: SC18IM704PWJ (TSSOP16)
- U5: AP2151AW-7 (SOT-25)
- FB1, FB2: koralik ferrytowy BLM18EG101TN1D (SMD0603)
- OUTPUT: złącze śrubowe rozłączane 3,81 mm, komplet
- RL1, RL2, RL3, RL4: przekaźnik miniaturowy Panasonic APAN3105
- USBC: złącze USB-C USB4110GTC (USB4110)