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

Lilygo T-Connect z ESP32 - magistrala CAN i trzy RS485 na jednej płytce

p.kaczmarek2 08 Mar 2026 12:55 1326 9

TL;DR

  • Lilygo T-Connect łączy ESP32-S3-WROOM-1 z jedną linią CAN i trzema magistralami RS485 na przemysłowej płytce.
  • Moduły RS485 i CAN są wymienne, izolowane do 2500 V, a zasilanie 7-12 V DC podaje przetwornica obniżająca.
  • Wersja N16R8 oferuje 16 MB Flash i 8 MB RAM, a płytka kosztuje około 200 zł.
  • Działa demo APA102 i test RS485, ale ESP32 ma tylko trzy sprzętowe UART, więc nie wszystkie cztery RS485 mogą być aktywne naraz.
REKLAMA
📢 Słuchaj (AI):
  • Płytka LilyGO T-Connect z modułem ESP32, zielonymi zaciskami i podłączonym kablem USB-C
    Przedstawię tu przemysłową płytkę Lilygo T-Connect wyróżniającą się jednoczesnym wsparciem do trzech magistrali RS485 i jednej linii CAN. Zamówiłem ją z Chin za około 200 zł.
    Plastikowe pudełko z płytką LILYGO T-Connect; etykieta „ESP32-S3 RS485/CAN Bus” Plastikowe pudełko z czarną pianką i etykietą z kodem kreskowym oraz chińskim tekstem
    Otwieramy charakterystyczne pudełeczko i wyciągamy płytkę. Od razu rzuca się w oczy moduł ESP32-S3-WROOM-1 będący sercem T-Connect, tu w wersji N16R8, czyli z 16 MB Flash i 8 MB RAM.
    Płytka LilyGO T-Connect z modułem ESP32 i trzema układami RS485 oraz zielonymi złączami śrubowymi
    W rogu mamy sekcję zasilania z przetwornicą obniżającą napięcie, co pozwala całości działać na napięciach 7-12 V DC, złącze USB C oraz QWIIC z UART. Nie ma tam konwertera USB na UART, gdyż ESP32-S3 wspiera sprzętowe USB. Dodatkowo mamy dwa rzędy goldpinów z wyprowadzonym GPIO, masą, 3.3 V i 5 V, oraz cztery diody APA102.
    Płytka LilyGO T-Connect z modułem ESP32-S3-WROOM-1, złączem USB-C i pinami GPIO
    Moduły RS485 i CAN są wymienne - można je zdjąć z płytki.
    Płytka LilyGO T-Connect z ESP32-S3, złączami śrubowymi RS485/CAN i świecącymi diodami
    RS485 obsługuje TD501D485H-A, a CAN TD501MCANFD, oba o izolacji do 2500 V.
    Grafika płytki LilyGO T-Connect ESP32-S3 z modułami RS485 i CAN oraz opisami parametrów
    Mapę pinów pokazuje grafika poniżej:
    Mapa pinów płytki LilyGO T-Connect z ESP32-S3, złączami RS485/CAN i diodami APA102
    Wymiary:
    Płytka LilyGO T-Connect z zielonymi złączami śrubowymi i opisanymi wymiarami 94×83×13 mm
    GitHub projektu:
    https://github.com/Xinyuan-LilyGO/T-Connect




    Demo LED
    Do tego typu projektów używam Visual Code z rozszerzeniem PlatformIO. PIO nie ma natywnie wgranych płytek z T-Connect, ale na ich repozytorium można pobrać brakujące pliki. Zawierają one konfiguracje płytek, pamięci Flash, itd. W tym przypadku mam wersję 16 MB. Poniżej plik, którego użyłem - dałem go do folderu boards:
    Kod: JSON
    Zaloguj się, aby zobaczyć kod

    Kolejnym plikiem do edycji jest platformio.ini, czyli konfiguracja projektu. Nazwałem go APA102 Blink, gdyż tymi czterema diodami chcę zamigać. Wybrałem tam odpowiednią platformę (espressif32 @6.5.0), wybrałem płytkę i partycje, oraz dodałem bibliotekę do obsługi LEDów - fastled/FastLED. Włączyłem tam też PSRAM i tryb USB.
    Kod: Ini
    Zaloguj się, aby zobaczyć kod

    Jak działa APA102? APA102 to indywidualnie adresowalny kolorowy LED z komunikacją SPI.
    Schematy wyprowadzeń i zdjęcia diod LED APA102 oraz APA102C w obudowie 5×5 mm
    Definicje pinów, na razie tylko od APA102, umieściłem w pin_config.h:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Zostało napisać właściwy program. Jest to zasadniczo przykład z FastLED, pokazujący prostą kolorową animację.
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Rezultatem jest ta prosta animacja:






    Demo RS485
    Drugą rzeczą którą chciałbym pokazać jest demko RS485. Zasadniczo jest one tutaj kluczowe, to po to właśnie ta płytka powstała. Na płytce mogą być aż 4 linie RS485, ale ESP32 ma tylko 3 sprzętowe kontrolery UART, więc jeden będzie nieaktywny. Zacząłem od wpisania do kodu pinów:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Miejsca TD501MCANFD i TF501D485H można w razie czego zamienić, nie są one lutowane. RS485 to po prostu warstwa fizyczna UART, więc używamy tu normalnie klas HardwareSerial. Za pomocą begin ustawiamy baud oraz piny.
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Moje demko wysyła kolejno napisy przez pierwszy port i odbiera je z drugiego. Po odebraniu sprawdza, czy doszło to, co było oczekiwane. Trzeba jeszcze te dwa porty ze sobą połączyć:
    Płytka Lilygo T-Connect z podłączonym USB i zaciskami śrubowymi, świecą diody LED
    Jak widać, wszystko działa. Dane są przesyłane poprawnie:
    Zrzut ekranu RealTerm z logami RS485: powtarzające się „PING:216–226” i statusy OK.

    Uruchomienie magistrali CAN
    Zasadniczo wszystko tak jak w temacie poniżej, jedynie ustawiamy odpowiednie piny:
    Jak nawiązać połączenie CAN pomiędzy dwoma ESP32 na przykładzie LilyGO T-CAN485?

    Podsumowanie
    Bardzo fajna płytka, podoba mi się też ta modularność w przypadku CAN i RS485, choć troszkę szkoda, że ESP sprzętowo ma tylko trzy UART, więc nie uda się na raz mieć czterech RS485 aktywnych. Dodatkowo podoba mi się wygodnie wyprowadzone GPIO oraz aż cztery kolorowe diody LED, na nich można wygodnie pokazywać różne statusy pracy i błędów.
    Czy widzicie zastosowanie dla płytki z aż trzema RS485?

    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ł 14644 postów o ocenie 12654, pomógł 655 razy. Jest z nami od 2014 roku.
  • REKLAMA
  • #2 21857599
    oscil1
    Poziom 24  
    Posty: 639
    Pomógł: 50
    Ocena: 176
    p.kaczmarek2 napisał:
    Nie ma tam konwertera USB na UART, gdyż ESP32-S3 wspiera sprzętowe USB.

    Do używania tego do eriala jest upierdliwe, bo po resecie tracisz połączenie – i comX się inicjalizuje znowu, co rozłącza. Mało wygodne. Wygodne za to do sprzętowego debugowania – ten USB ma sprzętowy JTAG – ale tego już Kolega nie zauważył, bo używa dziecięcego Arduino w postaci Platformio.

    Nie wiem, po co ten cały kod — bo to chyba dość oczywiste, że jak jest RS-485, to będzie działać, a wysłanie i odebranie czegoś to jest coś trywialnego. Podobnie ustawianie kolory diody.

    Płytka ma nazwę "T-Connect" czego chyba Autor nie zauważył - co seguruje od razu co projektanci mieli na myśli. Nie diody, a komunikację,

    Bardzo naiwna recenzja.
  • #3 21858506
    gulson
    Administrator Systemowy
    Posty: 29383
    Pomógł: 148
    Ocena: 6062
    Uwaga o JTAG w ESP32-S3 jest w zasadzie trafna, ale to musiałoby być osobne omówienie.

    Demonstrowanie podstawowych funkcji płytki (diody, RS485, CAN) to standardowy format krótkiej recenzji sprzętowej. Tak samo jak "Hello World" i wiadomo, że temat w ogóle nie jest wyczerpany i może będzie kontynuacja - w zależności od zainteresowania.

    Przy okazji PlatformIO to pełnoprawne środowisko, więc nazywanie go "dziecięcym" nie jest za bardzo merytoryczne.

    Merytoryczna dyskusja jest zawsze mile widziana, natomiast prosiłbym o utrzymanie kultury wypowiedzi, dziękuję.
  • REKLAMA
  • #4 21858779
    oscil1
    Poziom 24  
    Posty: 639
    Pomógł: 50
    Ocena: 176
    gulson napisał:
    Przy okazji PlatformIO to pełnoprawne środowisko, więc nazywanie go "dziecięcym" nie jest za bardzo merytoryczne.


    Takim złotym "przemysłowym" standardem przy ESP32 jest ESP32-IDF. Platformio jest wygodne dla hobbystów (ale czy to jest płytka mająca jakiekolwiek zastosowanie w warunkach hobbystycznych?) i przy prostych projektach. ESP32-IDF wymaga jednak więcej doświadczenia w pracy ze złożonymi systemami (generalnie doświadczenia w budowaniu projektów pod Linuxem, jako że używa narzędzi pochodzących z tego środowiska).

    Testy "hello world" w przypadku płytek takich jak ta IMO mają zerowy sens - no chyba że się okaże, że jest źle zaprojektowana i po prostu nie działa.

    Interesujący test to np. stabilność, prędkości itp. podobne – ale na pewno nie migają diodą.
  • #5 21859252
    TechEkspert
    Redaktor
    Posty: 7184
    Pomógł: 16
    Ocena: 5561
    Zainteresowały mnie te wymienne moduły interfejsowe, ciekawe jaką mają żywotność?

    Przeczytałem materiał o CAN i zastanawiam się w jakich projektach CAN będzie lepszy od Modbus RTU oraz jednocześnie ethernet będzie tam zbyt złożony natomiast połączenia bezprzewodowe nieatrakcyjne?
  • REKLAMA
  • #6 21859442
    oscil1
    Poziom 24  
    Posty: 639
    Pomógł: 50
    Ocena: 176
    TechEkspert napisał:
    i zastanawiam się w jakich projektach CAN będzie lepszy od Modbus RTU oraz jednocześnie ethernet będzie tam zbyt złożony natomiast połączenia bezprzewodowe nieatrakcyjne?


    - Modbus-RTU jest systemem master slave i slave nie nada niczego dopóki go master nie poprosi. W CAN - nie ma takiej struktury - każdy moduł może nadawać, mieć priorytety - co powoduje, że nadaje się bardziej do systemów czasu rzeczywistego. W CAN nody mogą ze sobą "rozmiawiać" bezpośrednio - w Modbus - nie

    - CAN jest dużo bardziej błędoodporny oraz odporny za zakłócenia. CAN ma także możliwość odłączenia urządzeniam kóre generuje za dużo błedów. Struktura pakietu CAN powoduje niezwykłą odporność na zakłócenia elektryczne. Dodajmy ze ACK (oczywiście tylko na poziomie że odbiorca pakiet dostał, ale nie że go zrozumiał) i obsługa będów jest już poziomie sprzętowym

    CAN wymaga mocniejszego MCU - bo trzeba zapimplementować cały stos CAN. Modbus jest trywialniejszy w implementacji i dlatego można łatwo go postawić na bardzo małych MCU.

    Ethernet – generalnie potrzebuje zbyt skomplikowanego okablowania, switchy są bardziej prądożerne, za to oczywiście jest niezrównany, jeżeli chodzi o prędkość. Ale CAN i Modbus nie służą do przesyłania np. obrazu z kamer.

    WiFi i inne berzprzewodowe mają tę zasadniczą wadę, że żle przenikają przez przeszkody, szczególnie metalowe i są wrażliwe na zakłócenia elektromagnetyczne - co dyskwalifikuje je w systemach sterowania przemysłowego.

    Przy okazji ja używam tranciverów CAN do nietypowej funkcji - mianowicie jak musze I2C przesłac na większą odległość. SDA i SCL są przekształcane na oddzielnie pary różnicowe. Działa to perfekcyjnie i moje rządzenia np. pracują na wielu platformach wiertniczy w ekstremalnych warunkach
  • #7 21859471
    TechEkspert
    Redaktor
    Posty: 7184
    Pomógł: 16
    Ocena: 5561
    Ciekawe czy kiedyś jednoparowy ethernet T1L wejdzie na szerszą skalę.
  • REKLAMA
  • #8 21859500
    oscil1
    Poziom 24  
    Posty: 639
    Pomógł: 50
    Ocena: 176
    TechEkspert napisał:
    Ciekawe czy kiedyś jednoparowy ethernet T1L wejdzie na szerszą skalę.

    Już jest popularny - ale nie pytałeś o SPE. Nawet w jednym samochodzie masz teraz CAN, CAN FD i SPE
  • #9 21860184
    TechEkspert
    Redaktor
    Posty: 7184
    Pomógł: 16
    Ocena: 5561
    W sumie to SPE i T1L to tematy, które chciałbym poczytać na elektrodzie zaraz po praktycznym przewodniku Modbus RTU i CAN.

    Widziałem kilka dem od Microchip eternetu jednoparowego, przesyłali obraz z kamery, która zasilała się z tej pojedynczej pary, dane szły do wyświetlacza, który również zasilał się i komunikował z jednej pary.
  • #10 21860401
    oscil1
    Poziom 24  
    Posty: 639
    Pomógł: 50
    Ocena: 176
    Tak naprawdę to IMO interesujący jest 10BASE-T1S bo umożliwia tzw miultidrop.
📢 Słuchaj (AI):

Podsumowanie tematu

✨ Przedstawiono przemysłową płytkę Lilygo T-Connect z modułem ESP32-S3-WROOM-1 (wersja N16R8 z 16 MB Flash i 8 MB RAM), oferującą jednoczesne wsparcie dla trzech magistrali RS485 oraz jednej magistrali CAN. Płytka posiada zasilanie 7-12 V DC z przetwornicą obniżającą napięcie, złącze USB-C z obsługą sprzętowego USB (bez konwertera USB-UART), interfejs QWIIC z UART, wyprowadzenia GPIO, 3.3 V, 5 V oraz cztery diody APA102. Dyskusja poruszała kwestie praktycznego wykorzystania płytki, w tym problemy z utratą połączenia RS485 po resecie oraz zalety sprzętowego debugowania przez JTAG w ESP32-S3. Omówiono różnice między magistralami CAN i Modbus RTU: CAN umożliwia komunikację peer-to-peer z priorytetami i jest bardziej odporny na zakłócenia, ale wymaga mocniejszego MCU, natomiast Modbus RTU działa w trybie master-slave i jest prostszy do implementacji na małych mikrokontrolerach. Poruszono także temat alternatywnych technologii komunikacyjnych, takich jak jednoparowy Ethernet 10BASE-T1S i SPE (Single Pair Ethernet), które oferują multidrop i zasilanie urządzeń po jednej parze przewodów, co może być atrakcyjne w zastosowaniach przemysłowych i motoryzacyjnych. Dyskusja podkreśliła, że testy podstawowe (np. miganie diodą) są niewystarczające do oceny stabilności i wydajności takich płytek, a bardziej wartościowe są testy prędkości transmisji i odporności na zakłócenia.
REKLAMA