Moduł przekaźników z interfejsem USB

Moduł przekaźników z interfejsem USB
Pobierz PDF Download icon

Na łamach czasopism wydawanych przez AVT było opublikowanych wiele projektów modułów z wyjściami przekaźnikowymi, sterowanymi za pomocą USB lub innych interfejsów. Prawie zawsze w budowie takiego modułu używano konwertera USB/USART oraz mikrokontrolera 8-bitowego. Dzięki nowoczesnym podzespołom można zbudować taki moduł z pominięciem konwertera, pozostawiając sam mikrokontroler z wbudowanym interfejsem USB. Rekomendacje: moduł przyda się w różnych aplikacjach automatyki sterowanych z użyciem komputera.

Poza 4 wyjściami przekaźnikowymi moduł ma 4 wejścia cyfrowe. Wejścia i wyjścia cyfrowe doprowadzone są do złącza. Opcjonalnie można dodać w programie obsługę 4 wejść analogowych, interfejsów SPI, I2C oraz USART. Otwarte oprogramowanie umożliwi łatwe dostosowanie możliwości
modułu do własnych wymagań.

Budowa i zasadza działania

Schemat ideowy modułu zamieszczono na rysunku 1. Jego głównym elementem jest mikrokontroler STM32F103C8T6 z wbudowanym interfejsem USB pracującym w trybie device. Napięcie zasilania ze złącza USB jest obniżane w stabilizatorze SPX1117MP-3.3. Sterowanie przekaźników jest buforowane układem ULN2003. Przekaźniki mogą być zasilane napięciem +5 V z USB lub z zewnętrznego zasilacza. Maksymalne napięcie akceptowane przez bufor to +50 V. Moduł ma 4 wejścia cyfrowe wewnętrznie podciągnięte do zasilania. Sygnały wejść/wyjść cyfrowych wyprowadzono na złącze J9. Wejścia analogowe (J5) oraz SPI, I2C, USART, w aktualnej wersji oprogramowania nie są używane. W razie zainteresowania taką funkcjonalnością proszę o e-maile. Całość dopełniają diody LED informujące o statusie urządzenia (tabela 1).

Rysunek 1. Schemat ideowy modułu przekaźników z interfejsem USB

Montaż i uruchomienie:

Schemat montażowy pokazano na rysunku 2. Montaż najlepiej rozpocząć od uruchomienia stabilizatora. Jeśli pracuje poprawnie, to należy zamontować pozostałe elementy rozpoczynając od najmniejszych, kończąc na złączach. W sytuacji, gdy przekaźniki są zasilane z USB, należy zewrzeć piny 4 i 5 złącza J13. Jeśli zasilanie przekaźników jest zewnętrzne, podane na wyprowadzenia 1-2 J13, należy zewrzeć piny 3-4 J13, natomiast na JP1 zewrzeć piny 4-6. Wymiary płytki przystosowane są do obudowy KM-35.

Rysunek 2. Schemat montażowy modułu przekaźników z interfejsem USB

Przy pierwszym połączeniu z komputerem konieczne jest zainstalowanie sterowników. Można je pobrać spod adresu http://bit.ly/2C3SNsK. Po zainstalowaniu sterowników na liście Menedżera Urządzeń zostanie wyświetlony nowy wirtualny port COM nazwie „STMicroelectronics Virtual COM port” (rysunek 3)

Rysunek 3. Nowy wirtualny port na liście Menedżera Urządzeń

Moduł przekaźników otrzyma numer kolejnego wolnego portu w systemie. Jeśli w systemie był już zainstalowany sterownik o tych samych identyfikatorów VID i PID, to zobaczymy jego numer i nazwę. Niestety Windows w takiej sytuacji nie pokaże faktycznej nazwy urządzenia tylko tę, która pojawiła się podczas pierwszej instalacji sterowników. W systemie Linux nie jest wymagana instalacja sterowników. Urządzenia klasy CDC mają nadawane kolejne nazwy  „ttyACM0” „ttyACM1” itd.

Obsługa programowa

Komunikacja z modułem przebiega za pomocą nieskomplikowanego protokołu tekstowego. Podczas testowania programem terminala trzeba pamiętać, aby dane wysyłać w postaci kompletnych łańcuchów, a transmitując znak po znaku. Wygodne jest użycie „TeraTerm”, który to wysyła ciąg znaków po naciśnięciu klawisza „Enter”. W innych programach można posłużyć się kopiowaniem tekstu w oknie terminala (najczęściej CTRL+V) lub makrami, jak w BrayTerminal+.

W pierwszej kolejności należy wybrać w programie terminala numer portu COM, który nadał system Windows instalując sterowniki. Parametry transmisji są nieistotne. Karta akceptuje komendy wymienione w tabeli 2. Komendy nie muszą kończyć się znakami CR/LF. Zmiana stanu wejścia, powoduje automatyczne wygenerowanie ramki „@i:” zwracającej stan wejść. Uwalnia to program od ciągłego odpytywania karty w celu sprawdzenia stanu wejść.

Rysunek 4. Efekty działania komend „ati” „@r”, „@i”

Na ekranie programu „Termite” widać efekty działania komend „ati” „@r”, „@i” (rysunek 4). W Linuksie (Debian) listę ostatnio przyłączonych urządzeń wyświetlamy wydając komendę  „dmesg | tail”. Na zrzucie ekranowym pokazano efekt działania komendy przed i po przyłączeniu modułu przekaźników (rysunek 5). Do komunikacji można wykorzystać „minicom”. Uruchamiając program z parametrem „–s” (minicom –s) zostanie wyświetlone okno konfiguracji (rysunek 6). Wybierając „Serial port setup” możemy zmienić ustawienia portu komunikacyjnego (rysunek 7). Na rysunku 8 pokazano efekt działania komendy zmieniającej stan wejść cyfrowych. Przy okazji warto wspomnieć, że w Linuksie, wklejanie to nie CTRL+V tylko SHIFT+INSERT.

Rysunek 5. Efekt działania komendy przed i po dołączeniu karty
Rysunek 6. Okno konfiguracji programu minicom
Rysunek 7. Zmiana ustawień portu komunikacyjnego
Rysunek 8. Efekt działania komendy zmieniającej stan wejść
Wykaz elementów:
Rezystory: (SMD 1206)
R14: 1,5 kV
R6, R7: 2,2 kV
R13: 10 kV
R15, R16: 22 V
R17: 100 kV
R1…R5, R8…R12: 560 V
Kondensatory:
C1, C2: 10 mF (SMD 1206)
C5, C6: 20 pF (SMD 1206)
C3, C4, C7, C8: 100 nF (SMD 1206)
Półprzewodniki:
U1: SPX1117MP-3.3 (SOT223)
U2: STM32F103C8T6 (LQFP48)
U3: ULN2003D (SO16)
D1: LED niebieski
D2, D4…D9: LED zielona
D3: LED czerwona
D10: LED żółta
Inne:
Q1: rezonator kwarcowy 8 MHz
PK1…PK4: AZ822-2C-5DSE
JP1: goldpin 3×2
J1, J8, J9: ZL231-10PG (KG)
J3…J5: T821-1-06-S1
J6: USB-B
J7. J10…J12: TB-5.0-PP-3P + TB-5.0-PIN24
J13: goldpin 1×9

Aplikacja dla Windows

Do sterowania kartą można użyć aplikacji, której zrzut ekranowy pokazano na rysunku 9. W pierwszej kolejności z listy należy wybrać odpowiedni VCOM. Jest to łatwe, ponieważ na liście, poza numerem portu, zostaje wyświetlona „przyjazna” nazwa portu/urządzenia. Po kliknięcie na „Połącz” w oknie terminala zostanie pokazana nazwa i wersja programu karty (rysunek 10). Stan przekaźników można zmienić za pomocą przycisków. Należy zaznaczyć, że program odzwierciedla faktyczny ich stan, dlatego po uruchomieniu programu, jeśli karta ma załączone przekaźniki, będzie to odpowiednio pokazywane (rysunek 11). Wyświetlany jest także stan wejść cyfrowych, a utrata połączenia USB będzie sygnalizowana w chwili próby zmiany stanu przekaźnika stosownym komunikatem (rysunek 12).

Rysunek 9. Okno aplikacji sterującej modułem
Rysunek 10. Informacja o wersji oprogramowania
Rysunek 11. Sygnalizowanie stanu przekaźnika
Rysunek 12. Komunikat o utracie połączenia z modułem

Numer wybranego portu COM jest zapamiętywany w pliku „*ini”. Dzięki temu, po kolejnym uruchomieniu programu połączenie z kartą zostanie nawiązane automatycznie o ile będzie dołączona do komputera.

Oprogramowanie mikrokontrolera

Program dla mikrokontrolera nie jest zbyt skomplikowany. W pętli głównej mikrokontroler aktualizuje rejestr watchdog, po czym jest mikrokontroler jest wprowadzany w tryb obniżonego poboru energii:

IWDG->KR = 0xaaaa;

__WFI();

Ważniejsze fragmenty programu sterującego pracą modułu zamieszczono na listingu 1. Wystąpienie przerwania (od USB, timera) wybudza mikrokontroler, który sprawdza czy odebrano ramkę danych. Ponadto, jest sprawdzany stan wejść oraz testowana konieczność wysłania ramki „@a”. Fakt połączenia z hostem USB stwierdza się na podstawie obecności pakietów SOF:

void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd)

{

    USBD_LL_SOF((USBD_HandleTypeDef*)hpcd->pData);

    extern char volatile TimSof;

    TimSof = 50;

}

W przerwaniu jest aktualizowany timer softwareowy TomSof. Jeśli w przerwaniu milisekundowym timer doliczy do zera, to jest to sygnalizowane przez zgaszenie diody LED.

u8 volatile TimSof;

void Tick1ms()

{

    if( TimSof )

    {

        TimSof--;

        HAL_GPIO_WritePin( LED_SOF_GPIO_Port, LED_SOF_Pin, GPIO_PIN_RESET );

    }

    else

    {

        HAL_GPIO_WritePin( LED_SOF_GPIO_Port, LED_SOF_Pin, GPIO_PIN_SET );

    }

}

Aktualne oprogramowanie jest dostępne w materiałach dodatkowych dołączonych do artykułu. Najnowsze wersje dostępne na http://avt.4ra.pl.

ES2 & KK, EP

es2@ep.com.pl, ka2@ep.com.pl

Artykuł ukazał się w
Elektronika Praktyczna
marzec 2019
DO POBRANIA
Pobierz PDF Download icon

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio marzec - kwiecień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje marzec 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna kwiecień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich kwiecień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów