Přeskočit na obsah

Ethernet

Ethernetové připojení na síť LAN.

Tento dokument popisuje jak nakonfigurovat a používat Ethernet funkcionalitu v Spectoda zařízeních.

Ethernet konfigurace se provádí pomocí JSON objektu v Controller Configu. Zde je kompletní příklad:

{
"ethernet": {
"variant": "LAN8720",
"type": "LAN8720",
"ip": "20.0.0.4",
"gateway": "20.0.0.1",
"mask": "255.255.255.0",
"dns": "8.8.8.8",
"hostname": "spectoda"
}
}
ParametrTypPopisVýchozí hodnota
enablebooleanZapnutí/vypnutí Ethernet funkcionalitytrue pokud je ethernet definován v JSON
ipstringStatická IP adresa zařízeníDHCP pokud není nastaveno
gatewaystringIP adresa brányVyžadováno při použití statické IP
maskstringSíťová maskaVyžadováno při použití statické IP
dnsstringIP adresa DNS serveruVolitelné
hostnamestringNázev zařízení v sítiVolitelné

Předdefinované Varianty

Použijte parametr variant pro výběr předdefinované hardwarové konfigurace:

VariantaPopis
LAN8720Standardní LAN8720 konfigurace
OLIMEXPOEKonfigurace pro Olimex PoE desku
OLIMEXPOE2Konfigurace pro Olimex PoE 2 desku

Ethernet PHY Typ

Použijte parametr type pro specifikaci Ethernet PHY čipu:

TypPopis
IP101IP101 PHY
RTL8201RTL8201 PHY
LAN8720LAN8720 PHY
DP83848DP83848 PHY
KSZ8041KSZ8041 PHY
KSZ8081KSZ8081 PHY

Tyto parametry umožňují jemné doladění hardwarové konfigurace Ethernet:

ParametrTypPopisVýchozí hodnotaPlatné hodnoty
phydetnumberDetekce PHY adresy. Určuje adresu PHY pro komunikaci.0-1 (auto-detekce), 0-31
phymdcnumberPHY MDC pin. Management Data Clock pin pro MDIO rozhraní.23GPIO 0-39
phymdionumberPHY MDIO pin. Management Data Input/Output pin pro MDIO rozhraní.18GPIO 0-39
phyennumberPHY Enable pin. Používá se pro zapnutí/vypnutí PHY čipu.12GPIO 0-39
phyrstnumberPHY Reset pin. Hardwarový reset pin pro PHY čip.-1-1 (vypnuto), GPIO 0-39
rmiipinnumberRMII Clock pin. Určuje GPIO pro RMII hodinový signál.00 (EMAC_APPL_CLK_OUT_GPIO), 16-17
rmiimodenumberRMII Clock Mode. Konfiguruje zdroj RMII hodin.20 (GPIO0_IN), 1 (GPIO0_OUT), 2 (EMAC_CLK_OUT), 3 (EMAC_CLK_OUT_180)
timeoutnumberSW Reset Timeout v milisekundách. Maximální čas čekání na reset PHY.1000100-10000

Důležité Implementační Detaily:

  1. Detekce PHY Adresy (phydet):
    • Použijte -1 pro automatickou detekci
    • Hodnoty 0-31 specifikují pevnou PHY adresu
    • Většina konfigurací funguje s adresou 0
  2. Konfigurace Hodin (rmiimode):
    • EMAC_CLK_OUT (2): Standardní režim výstupu hodin
    • EMAC_CLK_OUT_180 (3): Hodinový signál posunutý o 180 stupňů
    • GPIO0_IN/OUT (0,1): Režimy externího zdroje hodin
  3. Konfigurace Pinů:
    • Všechny GPIO piny musí být platné ESP32 piny (0-39)
    • Vyhněte se použití pinů, které jsou již používány jinými funkcemi
    • Některé piny mohou být rezervovány na určitých ESP32 modulech
  4. Chování Resetu:
    • Když je phyrst nastaven na -1, používá se softwarový reset
    • Hardwarový reset (pomocí phyrst) je spolehlivější, ale vyžaduje další GPIO
  5. Časování:
    • Systém čeká 10ms po zapnutí PHY před pokračováním inicializace
    • Hodnota timeout by měla být upravena podle specifikací PHY čipu
    • Delší timeouty jsou spolehlivější, ale prodlužují čas bootování

Nastavení Configu

Standardní LAN8720 Config:

{
"ethernet": {
"phydet": 0,
"phymdc": 23,
"phymdio": 18,
"phyen": 12,
"phyrst": -1,
"rmiimode": 2,
"rmiipin": 0,
"timeout": 1000
}
}

Olimex POE Config:

{
"ethernet": {
"phydet": 0,
"phymdc": 23,
"phymdio": 18,
"phyen": 12,
"phyrst": -1,
"rmiimode": 2,
"rmiipin": 17,
"timeout": 1000
}
}

Zde jsou možné chybové kódy, které můžete zaznamenat:

Chybový KódPopisMožné Řešení
50768234Neplatný ethernet typZkontrolujte, zda je specifikovaný type podporován
45553478Ethernet typ není stringUjistěte se, že parametr type je string
56927834IP adresa není stringUjistěte se, že parametr ip je string
23074945Gateway IP adresa není stringUjistěte se, že parametr gateway je string
26347089Netmask IP adresa není stringUjistěte se, že parametr mask je string
62507839DNS IP adresa není stringUjistěte se, že parametr dns je string
10435793Hostname není stringUjistěte se, že parametr hostname je string
29683748Selhalo vytvoření ESP32 ethernet MACZkontrolujte hardwarové připojení
23498792Selhalo vytvoření ethernet PHYZkontrolujte PHY konfiguraci
95273483Selhala instalace ethernet ovladačeZkontrolujte systémové prostředky
15694378Selhala registrace ethernet event handleruZkontrolujte systémové prostředky
31729483Selhala registrace IP event handleruZkontrolujte systémové prostředky
92657834Selhalo připojení Ethernet ovladače k TCP/IP stackuZkontrolujte systémovou konfiguraci
23148734Selhalo nastavení hostname síťového rozhraníZkontrolujte platnost hostname
69853473Selhalo zastavení DHCP serveruZkontrolujte síťovou konfiguraci
68239473Selhalo zastavení DHCP klientaZkontrolujte síťovou konfiguraci

Ethernet rozhraní bude generovat varovné kódy pro následující události:

Varovný KódPopisDodatečné Informace
62537809Ethernet Link UpFyzické připojení navázáno
59634873Ethernet Link DownFyzické připojení ztraceno
95624383Ethernet StartedInicializace rozhraní úspěšná
62579839Ethernet StoppedVypnutí rozhraní dokončeno
69278533Ethernet Got IP AddressIP konfigurace získána

Když je získána IP adresa, systém zaloguje informace o IP, Gateway a Netmask.

  1. Při použití statické IP konfigurace musí být poskytnuty všechny tři parametry (ip, gateway a mask).
  2. PHY Enable pin bude nastaven na HIGH během inicializace.
  3. Systém počká 10ms po zapnutí PHY před pokračováním inicializace.
  4. DHCP bude použito jako výchozí, pokud není poskytnuta statická IP konfigurace.