[ Príspevok: 1 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 16.11.24
Príspevky: 451
Témy: 198 | 198
Bydlisko: Poprad-okolie
NapísalOffline : 20.10.2022 21:00 | ESP32 - PHY Ethernet LAN8720

K mikrokontroléru ESP32 existuje množstvo periférii, ktoré je možné pripojiť cez podporované zbernice a rozhrania. Jedno z menej známych rozhraní je RMII (Reduced media-independent interface), ktoré znižuje počet potrebných signálov (oproti rozhraniu MII) pre prepojenie mikrokontroléra s perifériou. RMII využíva jeden hodinový signál pre príjem a odosielanie dát, RXDV a CRS multiplexuje do jedného signálu a nemá signál COL a hodinový signál je zvýšený z 25 MHz na 50 MHz.

Medzi populárnu perifériu, ktorú je možné pripojiť k ESP32 cez RMII rozhranie je PHY Ethernet modul s čipom LAN8720. Samotný PHY čip nemá MAC vrstvu, teda tá je zabezpečená priamo mikrokontrolérom ESP32. Zaujímavosťou je, že MAC vrstvu ESP32 poskytuje cez WiFi kontróler pre ovládanie Ethernetu a posielanie stavových signálov. LAN8720 podporuje Ethernet (10 Mbps) a Fast Ethernet (100 Mbps) štandard s Full-Duplex prenosom.

Zapojenie s ESP32 ==> LAN8720 PHY Ethernet modul:
PHY Ethernet LAN8720 má 3V3 logiku s 2.0V a vyššie pre log 1 a 0.8V a menej pre log 0 (podľa špecifikácia RMII). Periféria nie je 5V tolerantná. Pre prepojenie ESP32 s LAN8720 cez rozhranie RMII je potrebných 8 dátových signálov + napájanie.
3V3 Vcc
GND GND (RBIAS)
D18 MDIO
D19 TXD0
D21 TXEN
D22 TXD1
D23 MDC
D25 RXD0
D26 RXD1
D27 CRS_DV
ESP32 - PHY Ethernet LAN8720
Programová implementácia
PHY Ethernet je podporovaný vo frameworku ESP-IDF ale taktiež aj vo Wiringu (Arduino Core pre ESP32). Vstavaná knižnica ETH slúži pre inicializáciu PHY Ethernetu. Okrem LAN8720 je možné využiť aj iné moduly pre PHY Ethernet - TLK110 / IP101GRI. Stavy Ethernetu sa zobrazujú cez WiFi eventy, ktoré indikujú aktuálny stav Ethernetu, pričom dokáže rozoznať aj odpojený LAN Ethernet kábel. Stavové WiFi eventy vypíšu (z príkladov ETH knižnice) IP adresu po pridelení z DHCP služby, Duplex mód a taktiež aj nastavená rýchlosť komunikácie.

Ethernet LAN8720 som otestoval v rôznych projektoch, napríklad v režime webclient ako ultrazvukový senzorový uzol, či pre termostat s teplotnými senzormi DS18B20 Dallas. Po inicializácii Ethernetu je možné využívať všetky sieťové funkcie a knižnice totožne ako v prípade požívania WiFi na ESP32. Pre HTTP spojenia som využíval socket spojenie v knižnici WiFi, taktiež mi fungovalo aj šifrované spojenie s webserverom po HTTPS protokole s využitím Root CA certifikátu - knižnica WiFiClientSecure.
https://www.youtube.com/watch?v=Xnj2DHpdGpw
ESP32 - PHY Ethernet LAN8720
Taktiež aj knižnica Webserver funguje totožne a bez úprav programu funguje programová implementácia aj pod Ethernetom. ESP32 s PHY Ethernetom som tak implementoval do projektu Hladinomer, kde funguje ako klient a v pravidelných intervaloch odosiela dáta na webserver po HTTP, alebo HTTPS protokole. V tejto programovej implementácii som použil FreeRTOS s Queue blokovacím mechanizmom taskov totožne ako v programe pre WiFi variant. Druhou implementáciou, kde som LAN8720 skúšal bol Ethernet termostat ako ekvivalent už k existujúcemu WiFi termostatu. Implementácia bola jednoduchá, stačilo nahradiť inicializáciu WiFi za Ethernet (jednoriadková úprava). Termostat využíva teplotné čídlo Dallas DS18B20 na OneWire zbernici s 12-bitovým rozlíšením meraní - 0.0625 °C. Ethernet termostat som sa rozhodol vylepšiť o OTA (Over-The-Air) pre možnosť vzdialeného nahrávania firmvéru, nakoľko som v miestnosti nemal možnosť dvojzásuvky. Z počítača som tak mohol cez sieť aktualizovať firmvér termostatu bez potreby nahrávania cez USB kábel. Aj táto funkcionalita fungovala korektne bez potreby úpravy programovej implementácie. Firmvér sa úspešne nahral nástrojom espota.py a spustil na mikrokontroléri.
ESP32 - PHY Ethernet LAN8720
Druhou implementáciou, kde som LAN8720 skúšal bol Ethernet termostat ako ekvivalent už k existujúcemu WiFi termostatu. Implementácia bola jednoduchá, stačilo nahradiť inicializáciu WiFi za Ethernet (jednoriadková úprava). Termostat využíva teplotné čídlo Dallas DS18B20 na OneWire zbernici s 12-bitovým rozlíšením meraní - 0.0625 °C. Ethernet termostat som sa rozhodol vylepšiť o OTA (Over-The-Air) pre možnosť vzdialeného nahrávania firmvéru, nakoľko som v miestnosti nemal možnosť dvojzásuvky. Z počítača som tak mohol cez sieť aktualizovať firmvér termostatu bez potreby nahrávania cez USB kábel. Aj táto funkcionalita fungovala korektne bez potreby úpravy programovej implementácie. Firmvér sa úspešne nahral nástrojom espota.py a spustil na mikrokontroléri.
ESP32 - PHY Ethernet LAN8720
ESP32 - PHY Ethernet LAN8720
Ethernet modul LAN8720 funguje výborne. Nezaznamenal som žiadne výpadky Ethernetu pri prevádzke na client-side, alebo serverových aplikácii. Testoval som niečo vyše dvoch týždňov v non-stop prevádzke. Modul preto odporúčam, i keď k nemu neexistuje veľa tutoriálov, jeho zapojenie a následné použitie v programovej implementácii je jednoduché. Ďalším plusom je cena. Na slovenských e-shopoch modul zakúpite pod 5€, čo je menej ako za Ethernet moduly ENC28J60, či Wiznet pre Arduino s ktorými je problém urobiť spoľahlivú aplikáciu, či už z pohľadu pamäte (najmä u mikrokontrolérov Arduino s jednotkami kB RAM, ENC28J60 navyše vyžaduje SW stack, ktorý musí bežať na Arduine), alebo aj po stránke napájania (rádovo 150 mA, pričom LAN8720 má maximálne 49 mA pri vysielaní na 100 Mbps Full Duplex). Pri Arduino doskách nemôžete využiť šifrované spojenie s webserverom z dôvodu absencie kryptografických akcelerátorov a najmä chýbajúcej pamäti.

K stabilite prislúcha aj počet možných otvorených socket spojení. V prípade ENC28J60 je počet spojení závislý od mikrokontroléra, ktorý celý stack spravuje. Arduino Uno v štandardnom programe zvláda 1 až 2 aktívne socket spojenia na ktoré stačí 2 kB RAM pamät. V prípade Wiznet W5100 Ethernet modulov sú to 4 spojenia, W5500 podporuje 8 nezávislých spojení. Všetky Wiznet moduly majú hardvérový stack. Nakoľko LAN8720 nemá MAC, je počet spojení závislý od mikrokontroléra. ESP32 pre WiFi podporuje 10 nezávislých spojení, ktoré je možné použiť aj pre PHY Ethernet.

Viac o projekte Ethernet termostat s ESP32 a PHY Ethernetom modulom LAN8720:
https://martinius96.github.io/termostat-ethernet/phy_ethernet.html


 [ Príspevok: 1 ] 


ESP32 - PHY Ethernet LAN8720



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Senzorická sieť v LAN sieti - Arduino + Ethernet / ESP32 / ESP8266

v Články

0

1412

21.02.2020 23:13

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

4-Port Ethernet Switch HWIC with Power Over Ethernet, Cisco,

v Siete

2

1312

06.01.2009 16:04

Cruel

V tomto fóre nie sú ďalšie neprečítané témy.

nVidia MCP68 - lan controller (PHY: Realtek rtl8211 8212)

v Ovládače

2

1289

01.05.2015 15:14

ujo zigo

V tomto fóre nie sú ďalšie neprečítané témy.

GRBL, UNO+ ESP32

v Mikropočítače

0

927

15.05.2021 23:23

stevo512

V tomto fóre nie sú ďalšie neprečítané témy.

Ovládanie ESP32 prostredníctvom UDP datagramov

v Články

0

1302

31.08.2019 0:13

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Hladinomer + Zrážkomer - Arduino / ESP8266 / ESP32

v Články

0

1272

05.11.2020 13:02

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Hladinomer - Arduino, ESP32, ESP8266 + ultrazvuk

v Články

0

1653

22.09.2019 0:01

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Kurzy (krypto)mien - Arduino / ESP32 / ESP8266

v Články

0

1352

15.11.2019 1:03

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Android s Arduinom/ESP32 - vzájomná komunikácia

v Android, iOS, Windows Phone (Mobile)

1

1132

26.10.2021 12:14

sento01

V tomto fóre nie sú ďalšie neprečítané témy.

ESP-IDF v simulátore Wokwi - ESP32

v Články

0

716

20.10.2022 20:58

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

ThingSpeak - IoT platforma pre Arduino / ESP8266 / ESP32

v Články

0

1682

16.01.2020 23:59

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

BLE Beacon na ESP32 - vysielanie vlastných dát

v Články

0

797

27.08.2023 1:01

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

OTA (Over The Air) - ESP32 - Arduino IDE

v Články

4

2001

27.08.2024 23:23

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Implementácia senzorového uzla na ESP32 vo frameworku ESP-IDF

v Články

3

916

23.01.2022 14:55

medove

V tomto fóre nie sú ďalšie neprečítané témy.

Ovládanie hlasom pre Arduino/NodeMCU/ESP32/Raspberry/Orange Pi ... projekty

v Mikropočítače

1

2402

16.09.2017 9:16

ado130

V tomto fóre nie sú ďalšie neprečítané témy.

Ethernet

v Siete

1

792

03.12.2016 9:15

shiro



© 2005 - 2024 PCforum, edited by JanoF