logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

LilyGO T-CAN485 - ESP32 do nauki łączności przemysłowej, magistrale RS485 i CAN

p.kaczmarek2 07 Wrz 2025 10:13 804 2

TL;DR LABEL_AI_GENERATED

  • LilyGO T-CAN485 to płytka developerska z ESP32 do nauki i testów komunikacji przemysłowej: RS485, CAN, microSD, WS2812 oraz opcjonalna antena Wi‑Fi.
  • Na pokładzie są MAX13487E dla RS485, ME2107 dla CAN i CH9102 do USB-UART, więc płytka od razu nadaje się do eksperymentów w PlatformIO.
  • Płytka kosztuje około 70 zł i pracuje z zasilaniem do 12V.
  • RS485 działa z automatycznym sterowaniem kierunkiem transmisji, więc wystarczy zainicjalizować UART i wysyłać ramki Modbus RTU.
  • CAN działa sprzętowo przez kontroler TWAI ESP32, a przykład pokazuje odbiór i nadawanie ramek 11-bitowych przy 500kb/s; największy problem to brownout i konieczność dolutowania kondensatora.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
Słuchaj:
  • Płytka LilyGO T-CAN485 z ESP32, złącza RS485 i CAN oraz port USB-C
    W tym temacie przedstawię LilyGO T-CAN485, czyli płytkę developerską opartą o ESP32, przeznaczoną do pracy z magistralami RS485 i CAN. T-CAN485 dodatkowo oferuje pracę na napięciu zasilania do 12V, złącze USB-C wraz z konwerterem USB na UART CH9102 do łatwiejszego programowania, slot na kartę microSD, opcjonalne złącze antenowe do polepszenia zasięgu Wi-Fi, pojedynczą kolorową diodę WS2812 oraz wyprowadzone GPIO.
    Specyfikacja płytki T-CAN485 z ESP32 i złączami CAN oraz RS485
    Dodatkowo na płytce są dwa wyspecjalizowane układy do komunikacji przemysłowej. Pierwszy to VP231, transceiver can:
    Fragment dokumentacji SN65HVD23x z opisem funkcji, zastosowań i specyfikacji
    Drugi to MAX13487E - RS485:
    Karta katalogowa układu MAX13487E/MAX13488E z diagramem funkcjonalnym i opisem cech
    Szczegółowy opis wyprowadzeń:
    Schemat wyprowadzeń płytki LilyGO T-CAN485 z oznaczeniami CAN, RS-485, USB i SD
    T-CAN485 dostępny jest do kupienia za około 70 zł.

    Zobaczmy w praktyce, co za tę kwotę dostajemy. Produkt zapakowany jest w solidne, plastikowe pudełeczko, które można bez obaw schować do torby na laptopa czy nawet do większej kieszeni.
    Pudełko LilyGO T-CAN485 z opisem pinów i schematem płytki ESP32
    W środku jest też wydruk z opisem płytki, który tu też wcześniej zamieściłem.
    Płytka LilyGO T-CAN485 z gniazdami CAN i RS485 oraz złączem USB-C
    Sama płytka też jest szczegółowo opisana, złącza są podpisane od strony druku.
    Płytka LilyGO T-CAN485 z podłączonym kablem USB-C, widoczne złącza CAN i RS485
    Płytkę łatwo programuje się z dodatkiem PlatformIO w Visual Studio Code.

    Pełna dokumentacja oraz przykłady programów znajdują się na oficjalnym repozytorium producenta:
    https://github.com/Xinyuan-LilyGO/T-CAN485

    Definicje pinów
    Oto indeksy pinów komunikacyjnych i kontrolnych RS485 i CAN - przekopiowane z powyższego repozytorium, dla Waszej wygody:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Uruchomienie RS485
    RS485 to standard komunikacji szeregowej oparty na różnicowej transmisji danych. Charakteryzuje się dużą odpornością na zakłócenia i możliwością pracy na długich przewodach (nawet setki metrów). Dzięki temu jest szeroko stosowany w automatyce przemysłowej, inteligentnych budynkach, licznikach energii czy systemach HVAC. Na bazie RS485 działa m.in. popularny protokół Modbus RTU.
    Na płytce T-CAN485 układ MAX13487E zapewnia automatyczne sterowanie kierunkiem transmisji (brak konieczności ręcznego przełączania DE/RE), co znacznie ułatwia programowanie. Dzięki temu wystarczy zainicjalizować port UART i można od razu wymieniać dane z urządzeniami na magistrali.

    Poniższy przykład wysyła wpisaną na sztywną ramkę modbus i wyświetla odpowiedź:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod



    Uruchomienie CAN
    CAN to magistrala komunikacyjna stworzona głównie z myślą o motoryzacji. Pozwala na niezawodną wymianę danych pomiędzy wieloma urządzeniami (sterowniki ECU, czujniki, moduły komfortu) bez konieczności stosowania centralnego kontrolera. Wyróżnia się mechanizmem arbitrażu, dzięki któremu kilka urządzeń może próbować nadawać jednocześnie – a magistrala automatycznie przydzieli pierwszeństwo ramce o najważniejszym identyfikatorze.
    ESP32 obsługuje CAN sprzętowo poprzez kontroler TWAI, a na płytce T-CAN485 dodano transceiver ME2107 zapewniający zgodność sygnałową. Dzięki temu możemy w prosty sposób podłączyć płytkę na przykład do instalacji samochodowej (11-bitowe ID, 500kb/s).

    Poniższy przykład jednocześnie odbiera i nadaje ramki z przykładowymi danymi:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    W osobnym temacie pokażę komunikację pomiędzy dwoma tak połączonymi płytkami (masa jest wspólna przez USB):
    Dwie płytki LilyGO T-CAN485 połączone przewodami przez złącza CAN i RS485.

    Uruchomienie WS2812
    WS2812 to indywidualnie adresowalna dioda LED RGB. Można jej nadać dowolny kolor poprzez złożenie na siebie barw czerwonej, zielonej i niebieskiej. Często występuje w postaci pasków (adresowalne jednym pinem), ale tu jest jedna - np. do komunikowania statusu płytki.
    Do obsługi WS2812 można użyć biblioteki FastLED.
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Zbliżenie na płytkę LilyGO T-CAN485 z podświetloną diodą WS2812. Płytka LilyGO T-CAN485 z jasno świecącą diodą LED WS2812 w kolorze niebieskim
    Płytka LilyGO T-CAN485 z aktywną zieloną diodą WS2812 i widocznymi portami CAN i RS485 Płytka LilyGO T-CAN485 z zapaloną diodą WS2812 i oznaczeniami CAN oraz RS485


    Uruchomienie karty SD
    Karta SD to świetny sposób na zapis dużych ilości danych. Komunikacja z kartą odbywa się poprzez SPI. Biblioteka SD zapewnia nam dostęp do systemu plików na karcie, możemy tworzyć, edytować, listować i usuwać pliki.
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Zbliżenie na slot microSD z częściowo wsuniętą kartą 32 GB na płytce T-CAN485


    Uruchomienie antenki
    Postępuj zgodnie z tematem o antence:
    Jak podłączyć zewnętrzną antenę do ESP32? Złącze IPEX i zworki - lepszy zasięg WiFi
    Moduł LilyGO T-CAN485 z zewnętrznymi antenami WiFi oraz złączami IPEX
    Normalnie podłączona jest antenka znajdująca się na PCB. Aby przełączyć się na zewnętrzną, trzeba przelutować malutką zworkę.

    Wrażenia z użytkowania
    Płytka ma jeden problem, który powtarza się przy różnych projektach - ESP ma kłopoty z zasilaniem. Doświadczyłem tego przy różnych kabelkach USB. Rozwiązaniem jest dolutowanie kondensatora, tak jak pokazałem już w innym temacie:
    https://www.elektroda.pl/rtvforum/topic4135784.html#21645913
    Bez tego często dostaję błędy brownout i to nawet nie tylko na własnych programach, ale też np. na WLED.
    Zbliżenie na płytkę LilyGO z dolutowanym kondensatorem i podłączonym kablem USB

    Podsumowanie
    Bardzo wygodna i przydatna płytka, choć na jej niekorzyść przemawia fakt, że dosłownie za 5 - 15 zł można kupić proste transceivery RS485 lub CAN. Osobiście i tak wolę gotowca - wygodniej się z niego korzysta, nie lubię wielokrotnie przenosić zbyt złożonych konstrukcji na płytce stykowej, kabelki się wtedy odłączają, tracą kontakt i tylko utrudniają pracę.
    To oczywiście nie koniec przygody z tą płytką, osobno pokażę przykład komunikacji CAN pomiędzy dwoma takimi płytkami. Planuję też zrobić analogiczną demonstrację z RS485, ale w tym przypadku raczej użyję płytek z Waveshare z wyświetlaczem - chcę zrobić taki prosty dwukierunkowy tekstowy chat na wyświetlaczach dotykowych.
    Czy korzystaliście z RS485 lub z CAN we własnych projektach, a jeśli tak, to do czego?

    Fajne? Ranking DIY
    Pomogłem? Kup mi kawę.
    O autorze
    p.kaczmarek2
    Moderator Smart Home
    Offline 
    Inżynier programista z wieloletnim doświadczeniem embedded i full stack developer.
    Specjalizuje się w: embedded, Full-Stack Developer
    p.kaczmarek2 napisał 14802 postów o ocenie 12963, pomógł 659 razy. Jest z nami od 2014 roku.
  • #2 21656132
    ZbeeGin
    Poziom 39  
    Posty: 4333
    Pomógł: 605
    Ocena: 467
    p.kaczmarek2 napisał:
    Czy korzystaliście z RS485 lub z CAN we własnych projektach, a jeśli tak, to do czego?

    Tak. Mam projekt (komercyjny) gdzie korzystam z obu. CAN komunikuje się protokołem OBDII z ECU, a 485 służy jako transmisja między głównym modułem a tym montowanym na słupku A.
    Z tym, że ja użyłem innych transciverów oraz STM32 posiadającego już FD-CAN.
  • #3 21873760
    Zibiland
    Poziom 13  
    Posty: 179
    Ocena: 12
    Zakupiłem tą płytkę do podłączenia się pod falownik ale nie mogę się z nią dogadać.
    Początkowo po podłączeniu do kompa mrugała dioda, obecnie ciemność.

    Próbuje wgrać program pod falownik, niby wszytko przechodzi poprawnie ale na końcu ESPHome nie wykrywa modułu.

    Komputer widzi płytkę i w programie TOOL wybierając chip info dostaje odpowiedz:
    start detect chip...please wait
    chip sync ...
    Chip is ESP32-D0WDQ6-V3 (revision v3.1)
    Features: Wi-Fi, BT, Dual Core + LP Core, 240MHz, Vref calibration in eFuse, Coding Scheme None
    Crystal is 40MHz
    MAC: 2cbcbba92d38
    Manufacturer: ef
    Device: 4016
    Status value: 0x600200
    Detected flash size: 4MB


    natomiast w Read flash:
    start read flash...please wait
    read flash address: 0x000
    read flash size: 0x10000
    chip sync ...
    MAC: 2cbcbba92d38
    Manufacturer: ef
    Device: 4016
    Status value: 0x600200
    Detected flash size: 4MB
    Invalid head of packet (0xFF): Possible serial noise or corruption.


    Zrobiłem to samo wykorzystując ESP-32S i TTL do RS485i wszytko śmiga jak należny.
    Mogę prosić o pomoc ja uruchomić, aktywować T-CAN485.
Słuchaj:
REKLAMA