Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Switch z pasywnym PoE na STM32F107

Sareph 10 Lut 2019 15:42 2304 8
  • Switch z pasywnym PoE na STM32F107

    Po co? Bo potrzebowałem zastąpić taki zestaw urządzeń:

    Switch z pasywnym PoE na STM32F107

    Czyli switcha 100M, ładowarkę USB, rozdzielacz, dwa 3 portowe (używane 4 porty w sumie) "wstrzykiwacze" PoE (jednego nie ma na zdjęciu) jednym urządzeniem, bo schludniej. Poza tym była okazja, żeby zbudować switcha, tego jeszcze nie robiłem. A, że posiadanie w domu szyny 12V DC jest wygodne, można nią zasilać różne czujniki, switche, access pointy, ładowarki do telefonów, etc - wszystko jednym zasilaczem, buforowym, energetyka czasem daje ciała. Jak się do tego jeszcze dorzuci ethernet, to w większości wypadków wystarczy tylko jeden kabelek podłączyć do urządzenia i po kłopocie. Jedyny problem z pasywnym PoE jest taki, że jak się podłączy "przewód z prądem" do urządzenia, które nie obsługuje zasilania w ten sposób i ma tylko jeden kondensator od EMI przy transformatorze (chyba 99,9% wszystkich konstrukcji) - spalimy transformator, kiedyś wypadało będzie zastąpić wszystkie kable "pod prądem" takimi w kolorze czerwonym.

    W efekcie powstał switch, potrafiący serwować zasilanie do 4 urządzeń eth (4x1A max) i 4 USB (4x2,5A) z opcją rozszerzania go o różne dodatki, bo przecież żadna nóżka MCU nie może się zmarnować.

    Główne cechy:
    * 4 porty 100Mbps (piąty zajmuje STM32F107)
    * Pomiar napięcia i prądu na każdym porcie, automatyczne odłączanie przy przeciążeniu
    * Każdy port posiada:
    ** Konfigurowalny próg ich automatycznego odłączenia
    ** Opcję zdalnego włączenia i wyłączenia
    ** Wykrywają sytuację kiedy sam switch jest zasilany przez port eth a nie z zewnętrznego zasilacza
    ** Sygnalizację stanu zasilania na porcie
    * Porty 1 i 4 mają zabezpieczone linie danych transilami
    * Wyświetlacz LCD

    Budowa całości nie jest jakoś bardzo skomplikowana, zacznijmy zatem od zasilania:

    Switch z pasywnym PoE na STM32F107

    Nic szczególnie nietypowego, płytka przystosowana do obsługi głownie EUP3458 (30V/1,2A), ale jakby nie było to można zainstalować także MP2359 (24V/1,2A) albo SX2106 (21V/2A). Zasilanie przystosowane do max 25V, ograniczone przez mosfety (AO4407) mające maksymalnie Vgs +-25V. 1V2 potrzebne dla układu switcha "produkowane" jest przez regulator liniowy TPS76312. Switch posiada co prawda swój regulator 1V2, ale żeby z niego skorzystać trzeba dołożyć więcej elementów niż dając zewnętrzny regulator. Do tego klika dzielników rezystorowych do monitorowania napięć systemowych. Jeśli chcemy zasilać układ przez port eth, trzeba połączyć wejście B+ (zasilanie "systemowe") razem z VIN (wejście zasilania dla urządzeń zewnętrznych).





    Switch z pasywnym PoE na STM32F107

    Zastosowałem gniazda RJ45 bez transformatora, ciężko dostać takie, które obsługują POE i nie kosztują fortuny. A tak można zastosować tanie i powszechne 4 portowe złącze + popularny transformator HR601680. Każdy port posiada swój mosfet odcinający prąd (AO4407), rezystor pomiarowy (0R082) podłączony do jednego z 2 INA3221, oraz warystor mający chronić wyjścia przed skokami napięcia. W końcu jedno urządzenie (stacja meteo) znajduje się na zewnątrz budynku. Poza funkcją odcinania zasilania, mosfety chronią także switcha przed podłączeniem zasilania przez port ethernetu z odwrotną polaryzacją, a jeśli MCU wykryje, że jest zasilany przez jeden z portów, to automatycznie otwiera dany mosfet i wyłącza jego ręczne sterowanie. Każdy port ma swoją konfiguracje zapisaną w EEPROMie (pin sterujący, limit prądu, adres i typ urządzenia pomiarowego) i może być niezależnie od reszty włączany i wyłączany. Cztery z 8 ledów w portach (Link) są podłączone do układu switcha. Pozostałe cztery do STM32 i sygnalizują stan zasilania:

    * 100ms puls co 1s - brak poboru prądu zasilanie włączone
    * Ciągle włączone - pobór prądu powyżej 10mA
    * 4 100ms błyski na sekundę - błąd, przeciążenie
    * Wyłączone - port odłączony od zasilania

    Switch z pasywnym PoE na STM32F107

    Sercem układu jest zarządzalny 5 portowy switch KSZ8895RQX produkcji Micrela (Microchip), połączony przez RMII/MDIO z nadzorującym go STM32F107VC. Generatorem zegara jest zewnętrzny 50MHz układ, SG7050CAN-50. Co prawda zegar 50MHz da się wydobyć z układu switcha po podłączeniu doń 25MHz kryształu, ale że potrzebowałem zrobić coś z generatorami, które od lat leżały kurzyły się oczekując na jakąś okazję, no to wykorzystałem je zamiast kryształu. Ten sam zegar jest podstawą taktowania głównego zegara MCU i interfejsu RMII. Dodatkowo na pokładzie znajduje się standardowy 32KHz kryształ dla zegara RTC i wyprowadzenia dla baterii/superkondensatora podtrzymującego domenę RTC.

    Switch z pasywnym PoE na STM32F107 Switch z pasywnym PoE na STM32F107


    Aby dało się switcha rozszerzyć, na złącza micro-JST wyprowadzona jest: magistrala I2C wraz z pinami portów UART, SPI, piny analogowe (pomiar napięcia sieciowego w UPS), SWD, USB-OTG (obecnie nieużywane) i OneWire. Jeśli dane złącze UART/I2C nie jest skonfigurowane jako port szeregowy piny używane są jako standardowe GPIO, do sterowania ledem czy włączenia układu ładowarki. Magistrale SPI i I2C skonfigurowane i włączone są zawsze. Switch z dostępnych dodatków wykorzystuje jeden port I2C na potrzeby ładowarki USB oraz jeden port SPI dla wyświetlacza LCD.

    Switch z pasywnym PoE na STM32F107 Switch z pasywnym PoE na STM32F107

    Wyświetlacz bazuje na UC1601 i może być podłączony do płytki zarówno przez I2C jaki przez SPI, przy czym przez I2C jest rozpoznawany automatycznie, poprzez SPI musi byc skonfigurowany w EEPROMie. Aktualnie brakuje jeszcze klawiatury, ale jak tylko będę miał chwilkę, to switch dostanie taką samą klawiaturę na i2c jaka jest w monitorze moich UPSów:

    Switch z pasywnym PoE na STM32F107

    Na pokładzie znajdują poza tym, wspomniany wcześniej EEPROM (8kiB) - konfiguracja oraz DataFlash (8MiB) - pliki potrzebne dla interfejsu WWW.

    Aktualnie switch pokazuje na wyświetlaczu Aktualne obciążenie ładowarki USB, ilość przesyłanych danych na sekundę dla każdego portu (i całości), sumaryczną wielkość danych otrzymanych oraz aktualne obciążenie każdego z portów. Konfiguracja portów w sofcie:

    Switch z pasywnym PoE na STM32F107

    I stan switcha:

    Switch z pasywnym PoE na STM32F107

    Z uwagi na to, że UPS podaje informacje po sieci, że utracono zasilanie sieciowe porty mogą być odłączne w zależności od tego czy sieć pracuje na bateriach czy nie, lub w zależności od poziomu napięcia zasilania/akumulatorów. Całość dodatkowo zabezpieczona 8A bezpiecznikiem na wejściu głównego zasilania. I tak oto switch zasila zegar, panel wyświetlaczy, switcha, dwa access pointy i kilka czujników rozsianych po mieszkaniu.


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • #2 11 Lut 2019 19:01
    paluszasty
    Poziom 24  

    Świetny projekt. Gratuluje.
    Czy ja dobrze rozumiem ze ukłaad KSZ8895RQX to komplenty układ 5 portowego Switcha?
    Ilu warstwowe PCB udało się zmieścić na 2 warstwach czy 4?

  • #3 11 Lut 2019 19:32
    Sareph
    Poziom 20  

    paluszasty napisał:
    Czy ja dobrze rozumiem ze ukłaad KSZ8895RQX to komplenty układ 5 portowego Switcha?

    Dokładnie tak. Nawet z wbudowaną terminacją. Tylko transformatorów, zasilania, gniazd i źródła zegara brakuje.

    paluszasty napisał:
    Ilu warstwowe PCB udało się zmieścić na 2 warstwach czy 4?

    2 warstwy, i nawet wrzucę pcb, bo zapomniałem o nim. ;)
    Switch z pasywnym PoE na STM32F107

  • #4 12 Lut 2019 02:23
    voltbolt
    Poziom 12  

    Super projekt. Moim zdaniem jeśli by rozszerzyć konstrukcję do 8 portów to spokojnie znalazł byś na to nabywców. Jak by jeszcze giga lan był ... :)

  • #5 12 Lut 2019 09:34
    Sareph
    Poziom 20  

    voltbolt napisał:
    Super projekt. Moim zdaniem jeśli by rozszerzyć konstrukcję do 8 portów to spokojnie znalazł byś na to nabywców.
    To by się dało zrobić, ale...

    voltbolt napisał:
    Jak by jeszcze giga lan był ... :)
    ... z tym jest większy problem. Głownie w złączach/transformatorach. Dla przykładu, złącz 8 port ze wsparciem PoE nie ma (przynajmniej w TME), za to 12 portowe kosztuje bagatelka 538,69zł/szt netto przy zakupie minimum 36 sztuk, toż to za same złącza wyjdzie n razy więcej niż za elektronikę. :D (a farnell ma za durna wyszukiwarkę żeby tam coś znaleźć) Pojedyncze sa za około 20... ale ten switch musiałby finalnie kosztować z 800zł żeby być jako tako opłacalnym przy niskiej produkcji. A za jakieś 400 to już znajdziesz 8 portowego, gigabitowego switcha z "prawdziwym" PoE. ;)

  • #7 13 Lut 2019 11:06
    voltbolt
    Poziom 12  

    Sareph napisał:
    voltbolt napisał:
    Super projekt. Moim zdaniem jeśli by rozszerzyć konstrukcję do 8 portów to spokojnie znalazł byś na to nabywców.
    To by się dało zrobić, ale...

    voltbolt napisał:
    Jak by jeszcze giga lan był ... :)
    ... z tym jest większy problem. Głownie w złączach/transformatorach. Dla przykładu, złącz 8 port ze wsparciem PoE nie ma (przynajmniej w TME), za to 12 portowe kosztuje bagatelka 538,69zł/szt netto przy zakupie minimum 36 sztuk, toż to za same złącza wyjdzie n razy więcej niż za elektronikę. :D (a farnell ma za durna wyszukiwarkę żeby tam coś znaleźć) Pojedyncze sa za około 20... ale ten switch musiałby finalnie kosztować z 800zł żeby być jako tako opłacalnym przy niskiej produkcji. A za jakieś 400 to już znajdziesz 8 portowego, gigabitowego switcha z "prawdziwym" PoE. ;)


    Ja jeśli mam pomysł na narzędzie które przyda mi się, lub ułatwi pracę to je wykonuje, nawet jeśli czasem nakład pracy jest znaczny. Plus jest taki, że mam coś dopasowanego dokładnie do swoich potrzeb. Poza tym mamy ogromną satysfakcję jeśli na co dzień korzystamy z czegoś własnoręcznie wykonanego.

  • #9 13 Lut 2019 20:33
    Sareph
    Poziom 20  

    morswin89 napisał:
    Pojedyncze złącza RJ45 z wbudowanym transformatorem i obsługą PoE można nabyć na alliexpress
    I to w sumie interesująca opcja do moich zabawek pobierających zasilanie po eth. Tylko do dostarczania prądu się nie nadają, bo mają wbudowane mostki diodowe uniemożliwiające wypływ prądu na zewnątrz. Ale widać czas ponownie przebadać ofertę HanRun i AliExpress.

    Dopisane: Ale znalazłem nadające się, HR971169C ;)