Sterownik powstał jako rozwinięcie wcześniejszej konstrukcji - zestawu AVT5450. Tamto urządzenie doskonale sprawdzało się w nieskomplikowanych zastosowaniach wymagających jedynie zdalnego włączenia lub wyłączenia jakiegoś urządzenia.
Ze względu na prostotę obsługi, miał jednak ograniczone możliwości konfiguracyjne, co utrudnia jego użycie w bardziej wyrafinowany sposób. Strony HTML wyświetlane na przeglądarce mają uproszczony wygląd bez możliwości zmian np. dołączenia elementów graficznych. Ostatecznie powstało całkiem nowe urządzenie, które nazwałem ARS3-ER.
Budowa
Schemat ideowy sterownika pokazano na rysunku 1. Jego sercem jest mikrokontroler STM32F107VCT w obudowie ze 100 wyprowadzeniami. Wyposażono go w wewnętrzną pamięć programu Flash mieszczącą 256 kB oraz pamięć RAM o pojemności 64 kB. Mikrokontroler ma wbudowany interfejs MAC (Media Access Controller) umożliwiający dołączenie do sieci Ethernet.
Do dołączenia do sieci potrzebne są jeszcze dwa elementy: układ pełniący funkcje interfejsu PHY (Physical Interface Device) i transformator z gniazdem do fizycznego przyłączenia sterownika do sieci. W opisywanym urządzeniu w roli interfejsu PHY zastosowano układ DP83848VV. Zastosowano również gniazdo RJ45 z wbudowanym transformatorem separującym.
Na schemacie mikrokontroler U1 pokazano jako osobne bloki portów i segmenty pozostałych wyprowadzeń funkcjonalnych. Układ U2 jest interfejsem PHY. Łączy się z kontrolerem liniami portów programowo skonfigurowanymi do współpracy tych dwu elementów. Z kolei do U2 jest dołączony sprzęg magnetyczny J1, do którego bezpośrednio przyłącza się wtyczkę kabla sieciowego. Warto wspomnieć, że U2 (interfejs PHY) ma kilka wyprowadzeń wstępnie ustawiających tryb jego pracy. Stan tych wyprowadzeń badany jest podczas restartu układu U2.
Jeśli:
- wyprowadzenie 26 (AN_EN /LED_ACT/COL) jest wewnętrznie podciągane do poziomu wysokiego,
- wyprowadzenia 27 i 28 (AN_1 /LED_SPEED), (AN_0 /LED_LINK) są poprzez diody LED podciągane do poziomu wysokiego,
- to przy ustawieniu interfejs PHY będzie pracował w trybie negocjacji. Oznacza to, że będzie możliwa praca w trybach half i full duplex, zarówno z wolniejszymi urządzeniami 10BASE-T jak i szybszymi 100BASE-TX. Jeśli:
- wyprowadzenie 39 (MII_MODE /RX_DV) zostanie podciągnięte do poziomu wysokiego opornikiem R11,
- wyprowadzenie 6 (SNI_MODE /TXD_3) jest wewnętrznie wyzerowane (zwarte z masą),
- to przy takim ustawieniu wyprowadzeń układ U2 (interfejsu PHY) łączy się z U1 (mikrokontrolerem) w trybie RMII (tryb zredukowanej linii połączeń). Dane transmitowane są dwiema liniami TXD i dwiema RXD. W tym trybie zegar taktujący U2 ma częstotliwość 50 MHz i jest podawany z portu PA1 mikrokontrolera.
Gniazdo Mini-USB J2 i interfejs USB U3 pełnią podwójną rolę. Umożliwiają komunikację programu serwisowego SerwUs ze sterownikiem i zmianę jego ustawień. Za pośrednictwem J2 można także zasilić sterownik z portu USB. Alternatywnym sposobem zasilania urządzenia jest podanie napięcia +5 V na gniazdo J4. Zasilanie może być podłączone jednocześnie do obydwu gniazd, ponieważ gniazda zabezpieczone są diodami.
Wyjściowymi układami wykonawczymi są 4 przekaźniki K1-4, sterowane poprzez tranzystory liniami kontrolera PE2-5. Styki przekaźników wyprowadzone są na gniazda zaciskowe do przykręcania zewnętrznych przewodów.
Na grzebień złącza J6 wyprowadzone zostały bezpośrednio 4 linie portów kontrolera PA4-7. Do linii można doprowadzić sygnały o poziomach logicznych 0...3,3 V, których stan jest czytany i wyświetlany na przeglądarce internetowej. Należy unikać podawania na nie napięcia przekraczającego podany zakres, co może grozić uszkodzeniem kontrolera, ponieważ wejścia nie są zabezpieczone.
W pamięci EEPROM (U4) przechowywane są parametry konfiguracyjne urządzenia również po odłączeniu zasilania. Kwarc Q2 i bateria BT1 są jedynymi elementami zewnętrznymi bloku zegara czasu rzeczywistego wbudowanego w mikrokontroler. Dzięki baterii zegar pracuje również po wyłączeniu zasilania. Ponieważ informacje o czasie pobierane z zegara wykorzystywane są przez system powiadomień, bateryjne podtrzymanie RTC jest niezbędne dla prawidłowego funkcjonowania urządzenia.
Zapis programu do pamięci Flash mikrokontrolera można wykonać za pomocą interfejsu JTAG wyprowadzonego na gniazdo J5 bądź poprzez port USB. O wyborze decyduje ustawienie zwory JP1 podczas restartu, który można wymusić naciskając przycisk S1.
Wykaz elementówRezystory: (SMD 0805) Kondensatory: (SMD 0805) Półprzewodniki: Inne: |
Montaż
Schemat montażowy sterownika pokazano na rysunku 2. Zmontowanie samej płytki z elementami nie jest skomplikowane. Standardowo, przed rozpoczęciem montażu warto dokładnie obejrzeć płytkę drukowaną, co zwiększa szanse zauważenia ewentualnych przetrawionych ścieżek czy zwarć. Następnie, jako pierwszy należy wlutować mikrokontroler U1.
Przy układzie ze 100 wyprowadzeniami lepiej nie mieć ograniczeń dostępu stwarzanych przez wcześniej zamontowane inne komponenty. Przy montażu elementu o tak gęstym rastrze wyprowadzeń jest wskazane użycie dobrych narzędzi, topnika w płynie i mała ilość lutowia na końcu grota.
Nie bez znaczenia jest również doświadczenie. Po wlutowaniu elementu warto sprawdzić omomierzem czy nie występują zwarcia, choćby linii zasilania 3,3 V do masy. Łatwiej je będzie znaleźć i usunąć, niż w wypadku stwierdzenia tego faktu po wlutowaniu wszystkich elementów.
Dla ułatwienia montażu można na początku wlutować także pozostałe układy scalone, a dopiero w dalszej kolejności kondensatory, oporniki i tranzystory SMD. Na samym końcu montujemy większe gabarytowo złącza, gniazdo baterii oraz przekaźniki.
Programowanie pamięci FLASH kontrolera STM32
Zapis programu w postaci pliku HEX lub pliku binarnego BIN można wykonać dwoma typowymi dla STM32 sposobami: poprzez port JTAG lub korzystając ze złącza USB.
Złącze JTAG J5 przystosowane jest do podłączenia programatora typu ST-Link lub któregoś z jego klonów np. ZL30PRGv2. Po włożeniu programatora do gniazda J5 należy połączyć go z portem USB komputera, na którym jest uruchomiony program narzędziowy STM32 ST-LINK Utility. Przed zasileniem płytki sterownika zwora JPI musi być rozwarta. Następnie, za pomocą poleceń programu STM32 ST-LINK Utility należy wczytać plik HEX i zapisać jego zawartość do pamięci Flash mikrokontrolera U1.
Dla skorzystaniu z drugiego sposobu programowania poprzez złącze J2 (mini-USB) na płytce będzie potrzebny specjalny program narzędziowy uruchamiany na komputerze. Może to być firmowy Flash loader demonstrator lub któryś z jego odpowiedników np. FlyMCU. Po połączeniu kablem portu USB komputera z gniazdem J2 płytki sterownika należy na komputerze uruchomić program Flash loader demonstrator.
W tym momencie płytka jest już zasilana poprzez port USB. Następnie należy założyć zworę na złącze JP1 i nacisnąć przycisk Reset sterownika. Od tego momentu znajduje się w trybie programowania. Korzystając z opcji Flash loader demonstrator-a należy wczytać plik HEX i zaprogramować kontroler na płytce. Na koniec trzeba usunąć zworę z JP1 i nacisnąć przycisk Reset na płytce.
Uruchamianie: sterowniki konwertera USB
Po zapisie programu do pamięci Flash mikrokontrolera sterownik prawdopodobnie nie będzie pracował... Należy jeszcze do pamięci EEPROM zapisać ustawienia standardowe. Potrzebny do tego będzie program narzędziowy SerwUs przystosowany do współpracy z ARS3-ER. Program komunikuje się ze sterownikiem poprzez port USB i gniazdo J2 (mini-USB).
Zanim jednak przejdziemy do zapisu ustawień standardowych należy się przekonać czy system w komputerze "widzi" konwerter USB na płytce sterownika. W Windows7 należy w tym celu otworzyć zakładkę Control Panel → Hardware and Sound → Device Manager (w innych wersjach systemu kolejność otwierania zakładek może się różnić) i sprawdzić czy w Ports (COM & LPT) po dołączeniu sterownika został dodany nowy, wirtualny port COM, tak jak pokazano na rysunku 3.
Oczywiście, w zależności od liczby zainstalowanych sterowników jego numer może być inny na każdym ze współpracujących komputerów. Jeżeli port nie został automatycznie dodany, może to wynikać z błędu montażu, uszkodzenia konwertera U3 lub niesprawnego kabla USB. Jednak bardziej prawdopodobną przyczyną może być brak w systemie sterowników do obsługi układu U3 (FT230X).
W tym drugim wypadku odszukujemy w Internecie stronę producenta, czyli http://www.ftdichip.com, wybieramy element FT230X i VCP_Drivers. Następnie, zależnie od zainstalowanej wersji systemu, wybieramy plik .exe, który automatycznie zainstaluje sterowniki w systemie. Po tej operacji podłączenie do komputera płytki sterownika ARS3-ER powinno powodować dodanie informacji o nowym porcie, jak pokazano na rysunku 3.
Uruchamianie: program SerwUs i ustawienia standardowe
Kiedy sterowniki konwertera USB wykryją dołączenie do komputera płytki sterownika i zostanie automatycznie dodany port wirtualny, można przejść do dalszych etapów przystosowania sterownika ARS3-ER do pracy w sieci. Posłuży do tego wspomniany wcześniej program narzędziowy SerwUs. Po jego uruchomieniu otrzymamy dostęp do 3 zakładek, z których pierwszą pokazano na rysunku 4.
Najpierw należy ustanowić połączenie pomiędzy programem a sterownikiem. Naciśnięcie przycisku "Automatyczne wykrywanie podłączonego urządzenia" inicjuje proces szukania ARS3-ER dołączonego do dowolnego portu USB.
Ponieważ bezpośrednio po włączeniu zasilania sterownik jest zajęty pewnymi czynnościami związanymi z ustanawianiem połączenia sieciowego, wyszukiwanie najlepiej rozpocząć po 10 sekundach od załączenia zasilania sterownika.
Jeżeli wszystko przebiegnie pomyślnie na sterowniku przez moment zaświeci się dioda LED5 a w oknie Logu programu SerwUs wyświetli się część informacji pokazanych na rys. 4. Teraz należy kliknąć klawisz programu z czerwonym napisem USTAWIENIA STANDARDOWE. Rozpocznie się proces wymazywania w EEPROM-ie starych zapisów i zastępowanie ich nowymi pozwalającymi na standardowe funkcjonowanie ARS3-ER.
Po chwili ponownie zapali się dioda LED5, a po jej zgaśnięciu na ekranie powinien pojawić się napis informujący o sukcesie przywracania ustawień standardowych. W kolejnym kroku można jeszcze otworzyć zakładkę COM i RTC dla zmiany szybkości transmisji poprzez port szeregowy (USB) oraz ustawić aktualny czas i datę na zegarze czasu rzeczywistego RTC. Żeby po odłączeniu zasilania ustawienia nie zostały utracone, w gnieździe BT1 należy umieścić baterię litową 3 V.
Dołączanie sterownika do sieci Ethernet
W domowym zastosowaniach najczęściej sieć jest organizowana w oparciu o któryś z tanich routerów. Zazwyczaj działają one bardzo podobnie, więc dalszy opis powinien odpowiadać większości przypadków. Komunikacja w mniejszej lub większej sieci odbywa się z wykorzystaniem tzw. adresów IP. Każde urządzenie dołączone do węzła sieci tworzonego przez ruter musi być identyfikowany przez unikatowy, 4-bajtowy adres IP (w wersji v.4).
Przy adresowaniu dynamicznym adres każdemu urządzeniu jest przydzielany przez router w miarę dołączania do sieci kolejnych urządzeń. Czas utrzymywania adresów przydzielonych urządzeniom można zmienić w ustawieniach routera. Urządzenie może też występować w sieci pod niezmiennym adresem statycznym. Wówczas jego numer powinien mieścić się w zakresie wymaganym przez daną sieć. Oczywiście, ten adres musi być unikatowy i w tym węźle nie może posługiwać się nim żadne inne urządzenie.
Sterownik ARS3-ER może pracować z adresem statycznym lub dynamicznym. Po zaznaczeniu w programie SerwUs opcji "Wybór statycznego IP" sterownik będzie odpowiadał na adres wpisany ręcznie. Można go ustawić w dowolnym zakresie akceptowanym przez sieć.
Przydzielając dynamiczny adres IP router identyfikuje urządzenia za pomocą numeru MAC, który powinien być unikatowy w danym węźle sieci. Jest on 6-bajtowy i w sterowniku może być ustawiony za pomocą programu SerwUs.
Ostatnia opcja, która wymaga ustawienia przed dołączeniem sterownika do sieci Ethernet znajduje się na zakładce "Pliki HTML" programu SerwUs. Ponieważ jeszcze nie dysponujemy własną wersją stron HTML, do wyświetlania należy wybrać opcję stron predefiniowanych.
Pierwsze uruchomienie ARS3-ER
Po zakończeniu wstępnych ustawień można podłączyć sterownik do rutera. Po podłączeniu zasilania i odczekaniu ok. 10 s można jeszcze raz uruchomić w programie SerwUs wyszukiwanie sterownika. Powinny wyświetlić się wszystkie wprowadzone ustawienia, a w okienku logu na pierwszej zakładce powinna być wyświetlona informacja o adresie IP, na który będzie reagował sterownik. Po uruchomieniu przeglądarki internetowej i wpisaniu na pasku tego adresu, powinna wyświetlić się strona pokazana na rysunku 5.
Na wyświetlanej, predefiniowanej stronie sterownika ARS3-ER jest kilka linków do podstron pozwalających przetestować jego działanie:
- test wejść pokazuje poziom logiczny (0 lub 1) wejść IN1...IN4 automatycznie odświeżany co około 2 sekundy. Zwarcie do masy dowolnego z wejść powoduje zmianę wyświetlanej informacji.
- test wyjść pozwala na sterowanie włączeniem każdego z przekaźników PK1...PK4.
- test hasła to przykład strony zabezpieczonej hasłem. W ustawieniach predefiniowanych hasło to "123456".
Zakładka "Złącza" prezentuje podręczny opis gniazd i złącz dostępnych na płytce sterownika.
W kolejnej części artykułu opiszę sposób tworzenia własnych stron sterujących wyjściami i odczytem wejść w oparciu o technikę tagów. Zostanie także przedstawiony sposób uruchomienia powiadomień e-mail o zdarzeniach.
Ryszard Szymaniak, EP