Nakładka Ethernet PoE do AVTDuino

Nakładka Ethernet PoE do AVTDuino

Pojawienie się na rynku Arduino UNO R4 jest dobrym pretekstem do odświeżenia dostępnych nakładek, które albo nie do końca są zgodne z nową wersją, albo nie wykorzystują pełnych możliwości procesora zastosowanego w R4. Pierwszą z przygotowanych nakładek jest przewodowy interfejs Ethernet, oparty o popularny układ WIZnet W5500 i zawierający dodatkową funkcjonalność w postaci obwodów zasilania PoE. Moduł usprawni realizację układów m.in. sterowania i automatyki domowej z wykorzystaniem sieci Ethernet.

Podstawowe parametry:
  • konwerter W5500, zapewniający komunikację procesora modułu głównego z siecią Ethernet
  • moduł PoE AG9912M do zasilania przez przewód Ethernet
  • obsługa TCP, UDP, IPv4, ICMP, ARP, IGMP i PPPoE
  • wbudowany przełącznik zasilania, przycisk reset i diod LED (wskaźnik zasilania)
  • wbudowane złącza rozszerzeń zgodne z Grove analog/I²C oraz dodatkowe gniazdo UART
  • pełna kompatybilność ze standardem Arduino

Budowa układu

Sercem nakładki jest układ WIZnet W5500, którego budowę przedstawiono na rysunku 1.

Rysunek 1. Budowa wewnętrzna W5500 (za notą WIZnet)

Układ zawiera wszystko, co jest potrzebne w systemach wbudowanych do prostej realizacji połączenia, opartego o sieć przewodową (Ethernet). W swojej strukturze zawiera stos TCP/IP, 10/100 Ethernet MAC i PHY. Obsługuje protokoły TCP, UDP, IPv4, ICMP, ARP, IGMP i PPPoE. W5500 ma bufor 32 kB do przetwarzania pakietów Ethernet i komunikuje się z procesorem nadrzędnym przy użyciu interfejsu SPI.

UWAGA:
w nakładce występuje napięcie stałe 36...56 V. Uruchamiając i użytkując układ, należy zachować szczególną ostrożność przy manipulacji po stronie pierwotnej modułu PoE.
Zalecamy wycięcie niewielkiej osłony z cienkiego plexi lub folii izolacyjnej i zabezpieczenie przed dotknięciem elementów z pierwotnej strony modułu PoE oraz samego modułu AG9912M.

Schemat nakładki przedstawiono na rysunku 2. Za zasilanie PoE odpowiada moduł AG9912M firmy Silvertel. Moduł zapewnia zgodność ze standardem IEEE 802.3af i jest skonfigurowany w klasie 0. Dostarcza do obciążenia moc w zakresie 0,44...12,95 W przy napięciu wyjściowym 12 V. Do poprawnej pracy wymaga zasilania 48 V. Istotne jest, aby podczas rozruchu napięcie wejściowe AG9912M wynosiło ≥ 42 V, co zapewni prawidłowy start przetwornicy. Po uruchomieniu moduł będzie działał poprawnie, nawet jeżeli napięcie zasilania obniży się do 36 V. Mostki prostownicze BR1,2 zapewniają zgodność z dwoma standardami przesyłu zasilania, wykorzystującym zarówno linie danych, jak i pary zapasowe przewodów RJ45. Możliwe jest też wykorzystanie inżektorów/zasilaczy PoE o wydajności do 400 mA, mających odpowiednie zabezpieczenie przeciążeniowe. Dioda TVS chroni moduł przed skutkami przepięć zasilania, zaś dławiki FB1..6 filtrują zakłócenia przewodzone generowane przez moduł. Napięcie wyjściowe filtrowane jest przez kondensator CE1, rezystor R1 obciąża wstępnie moduł PoE. Zwarte z masą wyprowadzenie ADJ podnosi napięcie wyjściowe ze znamionowych 12 V do 12,75 V, co pozwala skompensować spadek napięcia na D1. Przełącznik zasilania SW umożliwia wyłączenie urządzenia bez konieczności odłączania przewodu RJ45. Dioda LED LD1 sygnalizuje obecność zasilania PoE. Dioda D1 separuje napięcie PoE od zasilania VIN Arduino, w przypadku omyłkowego pozostawienia wtyku zasilania w module bazowym. Jeżeli nie przewidujemy wykorzystania zasilania PoE, można bez zmian w układzie pominąć elementy schematu zaznaczone linią przerywaną.

Rysunek 2. Schemat nakładki

Najważniejszy element modułu stanowi układ U2, czyli W5500. Konwerter zasilany jest napięciem 3,3 V ze stabilizatora LDO (zrealizowanego na układzie U1 typu AP7361C) i dodatkowo filtrowanym w filtrach: FB7, C15, C16 dla części analogowej oraz FB8, C17, C18 dla części cyfrowej W5500. Zastosowanie niezależnego stabilizatora podyktowanie jest małą wydajnością prądową napięcia 3,3 V, udostępnianego zarówno przez UNO R4, jak i przez pozostałe wersje Arduino. Własny stabilizator napięcia 3,3 V minimalizuje ryzyko niepoprawnej pracy nakładki, jak i przeciążenia, a nawet uszkodzenia płytki bazowej, gdyż układ W5500 może pobierać podczas pracy nawet ponad 130 mA. Obwód oscylatora XT, C13, C14 zapewnia wymagany do pracy sygnał zegarowy 25 MHz. Interfejs różnicowy sygnałów Ethernet RXN/P, TXN/P doprowadzony jest do zintegrowanego gniazda ETH typu ARJM11D7114AB. Gniazdo ETH ma wbudowane transformatory separacyjne, diody sygnalizacyjne Link/Status oraz przystosowane jest do przesyłu danych w standardzie 100-Base-T wraz z zasilaniem PoE.

Aplikację uzupełnia obwód generujący sygnał resetu (RES3) dla W5500. Przycisk RES połączony równolegle z przyciskiem na płytce głównej służy do restartu zarówno U2, jak i procesora płytki bazowej. Układ bufora z wyjściem OD typu LVC1G07 (U3) zapewnia translację poziomów sygnału RES pomiędzy napięciem IORF (oznaczenie w Arduino IOREF), określającym standard zasilania i napięcia IO płytki bazowej (3,3 V/5 V), a układem generatora sygnału RESET/POR (U4) typu ADM811TART. Układ U4 generuje niski stan, restartujący W5500 po włączeniu lub w przypadku, gdy zasilanie spadnie poniżej progu tolerancji, a także w momencie detekcji stanu niskiego na wejściu !MR, wywołanego przyciśnięciem przycisku RES na nakładce lub płycie bazowej. Należy zwrócić uwagę, że czas trwania sygnału RES3 wynosi ok. 240 ms, co przeważnie nie jest uwzględniane w ogólnodostępnych przykładach/bibliotekach obsługujących komunikację Ethernet opartą o W5500 - a to powoduje zupełnie niepotrzebne problemy z detekcją układu. Rozwiązaniem jest albo odczekanie 250 ms (lub nawet nieco dłużej) przed rozpoczęciem inicjacji W5500 po włączeniu zasilania, lub - co jest poprawniejsze - cykliczne sprawdzenie zawartości jednego z rejestrów, np. PHY Configuration 0x002E (odczyt stanu flagi RST) lub poprawności odczytu wersji układu w rejestrze Chip Version 0x0039.

W5500 do komunikacji wykorzystuje magistralę SPI. Aby zapewnić całkowitą zgodność z systemami 3,3 V/5 V, w nakładce zastosowano układ translatora poziomów U6 typu TXU0304. Strona A translatora połączona jest z napięciem IORF, określającym poziom napięć IO płytki bazowej, zaś strona B pracuje z napięciem 3,3 V, zasilającym U2. TXU0304 zapewnia poprawną dwukierunkową translację poziomów, także w sytuacji, gdy napięcia zasilające obie strony translatora są równe, czyli IORF=3,3 V. Dzięki wbudowanemu translatorowi zapewniono zgodność nie tylko z płytkami Arduino zasilanymi napięciem 5 V (takimi, jak R3, R4, Leonardo), ale także płytkami Arduino M0, M0Pro i wersjami STM32, gdzie napięcie IOREF wynosi 3,3 V. Nakładka bez modyfikacji nie będzie działała z najstarszymi wersjami UNO i tanimi klonami, gdzie złącze POWER (PWR) ma tylko 6 wyprowadzeń i nie udostępnia sygnału IOREF. W takim przypadku należy kawałkiem przewodu połączyć wyprowadzenie IOREF z odpowiednim wyprowadzeniem napięcia zasilania 3 V lub 5 V, w zależności od wartości napięcia zasilania płytki bazowej.

W5500 do komunikacji wykorzystuje magistralę SPI, wyprowadzoną na złącze ISP/ICSP (IDC6) płytki bazowej oraz sygnał D10 (D10SS), użyty jako sygnał wyboru układu. Przed podłączeniem nakładki do klona lub wersji z innym procesorem należy sprawdzić, czy do złącza ISP (ICSP) lub jego odpowiednika doprowadzone są sygnały SPI, wymagane do poprawnego działania. Dodatkowo, na płytce umieszczono złącza w standardzie Grove, do których doprowadzono UART, I²C oraz 4 porty analogowe A0..A3, ułatwiające realizację układów monitorowania lub sterowania z bezpośrednim wykorzystaniem czujników zgodnych z Grove. Do zasilania złączy Grove wykorzystano napięcie IORF, które - w zależności od typu użytej płytki bazowej - będzie wynosiło 3,3 V lub 5. Należy o tym pamiętać i przed podłączeniem sprawdzić zgodność zakresu dopuszczalnych napięć zasilania i IO współpracujących modułów. Układ U5 odpowiada za translację poziomów sygnału przerwania INT (D2INT), generowanego przez W5500 - domyślnie rozwarta zwora INT umożliwia połączenie sygnału przerwania z wyprowadzeniem D2 Arduino, jeżeli przewidujemy jego wykorzystanie.

Układ zmontowany jest na dwustronnej płytce drukowanej zgodniej z Arduino Shield Rev3. Rozmieszczenie elementów przedstawiono na rysunku 3. Sposób montażu nie wymaga szerszego opisu. Warto jedynie dodać, że w zależności od przewidywanego zastosowania przedłużane złącza szpilkowe PWR, AD, IOL, IOH (wysokość 13...15 mm) można zastąpić „stackowalnymi” złączami Arduino, umożliwiającymi montowanie modułów w „kanapki”. Nakładkę można zmontować także w wersji bez obsługi PoE, pomijając w tym celu elementy zaznaczone ramką na schemacie z rysunku 1.

Rysunek 3. Schemat montażowy płytki drukowanej

Moduł nie wymaga uruchamiania, po zmontowaniu i połączeniu z płytką bazową oraz zasilaczem lub switchem PoE należy sprawdzić obecność napięcia VIN ok. 12 V, sygnalizowanego świeceniem diody LD1 PoE oraz wartość napięcia wbudowanego stabilizatora LDO 3,3 V.

Fotografia 1. Zmontowany moduł

Szybkiego sprawdzenia nakładki można dokonać przy użyciu biblioteki Ethernet, pamiętając o uzupełnieniu inicjacji W5500 o dodatkową zwłokę i określeniu wyprowadzenia sterującego sygnałem SS (w modelu D10). Przykładowy szkic WebSerwerR4.ino, odczytujący wartość napięcia na wyprowadzeniach A0...5, które po zdefiniowaniu w szkicu własnego adresu IP można sprawdzić w przeglądarce, umieszczono w materiałach dodatkowych. Jeżeli wszystko działa poprawnie, moduł może zostać użyty we własnej aplikacji.

Adam Tatuś, EP

Wykaz elementów:
Rezystory: (SMD0603, 1%)
  • R1, R2: 4,7 kΩ (SMD1206, 1%)
  • R3, R4: 330 Ω
  • R5...R8: 49,9 Ω
  • R9, R10...R12: 22 Ω
  • R13: 12,4 Ω
  • R14, R15, R18: 10 kΩ
  • R16: 1 MΩ
  • R17: 100 kΩ
Kondensatory:
  • C1, C2: 2,2 nF/2 kV (SMD1206, X7R)
  • C3: 10 μF/25 V (SMD0805, X7R)
  • C4, C5, C16, C18: 10 μF/10 V (SMD0603, X7R)
  • C6, C8...C10, C12, C19, C20, C21: 10 nF/10 V (SMD0603, X7R)
  • C7, C15, C17, C22, C23: 0,1 μF/10 V (SMD0603, X7R)
  • C11: 4,7 μF/10 V (SMD0603, X7R, 10 V)
  • C13, C14: 18 pF/10 V (SMD0603, X7R)
  • CX: 1 nF/1 kV (SMD1206, X7R)
  • CE1: 100 μF/25 V (THT ∅ 6,3 mm, p=2,5 mm, Low ESR)
Półprzewodniki:
  • D1: dioda Schottky’ego SS24 (SMB_D)
  • TVS1: transil SMAJ56A (SMB_D)
  • BR1, BR2: mostek prostowniczy B10S
  • LD1: dioda LED zielona (0603)
  • U1: AP7361C-33ER (SOT-223)
  • U2: W5500 (LQFP48)
  • U3,U5: 74LVC1G07DCK (SC70-5)
  • U4: ADM811TART (SOT-143)
  • U6: TXU0304PW (TSSOP14_065)
Pozostałe:
  • FB1...FB6: MMZ2012S102A (ferryt 0805)
  • FB7, FB8: BLM18AG601 (ferryt 0603)
  • A01, A23: złącze Grove proste
  • AD: złącze szpilkowe 1×10 (13...15 mm)
  • ETH: gniazdo RJ45 100M PoE (ARJM11D7114ABEW)
  • I²C, UART: złącze Grove kątowe
  • INT: zwora SMD (opis)
  • IOH: złącze szpilkowe 1×10 (13...15 mm)
  • IOL, PWR: złącze szpilkowe 1×8 (13...15 mm)
  • ISP: złącze żeńskie IDC6
  • PoE: moduł PoE AGM9912M, 12 V (AG9912M)
  • RES: przełącznik PB (6×3 mm)
  • SW: przełącznik suwakowy (MSS-2235)
  • XT: kwarc SMD 25 MHz
Artykuł ukazał się w
Elektronika Praktyczna
luty 2024
DO POBRANIA
Materiały dodatkowe
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik grudzień 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 grudzień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich grudzień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów