Ethernet

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

Konfigurace Spectoda Ethernet

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

Konfigurace

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"
  }
}

Základní Konfigurační Možnosti

Parametr
Typ
Popis
Výchozí hodnota

enable

boolean

Zapnutí/vypnutí Ethernet funkcionality

true pokud je ethernet definován v JSON

ip

string

Statická IP adresa zařízení

DHCP pokud není nastaveno

gateway

string

IP adresa brány

Vyžadováno při použití statické IP

mask

string

Síťová maska

Vyžadováno při použití statické IP

dns

string

IP adresa DNS serveru

Volitelné

hostname

string

Název zařízení v síti

Volitelné

Hardwarová Konfigurace

Předdefinované Varianty

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

Varianta
Popis

LAN8720

Standardní LAN8720 konfigurace

OLIMEXPOE

Konfigurace pro Olimex PoE desku

OLIMEXPOE2

Konfigurace pro Olimex PoE 2 desku

Ethernet PHY Typ

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

Typ
Popis

IP101

IP101 PHY

RTL8201

RTL8201 PHY

LAN8720

LAN8720 PHY

DP83848

DP83848 PHY

KSZ8041

KSZ8041 PHY

KSZ8081

KSZ8081 PHY

Pokročilá Konfigurace

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

Parametr
Typ
Popis
Výchozí hodnota
Platné hodnoty

phydet

number

Detekce PHY adresy. Určuje adresu PHY pro komunikaci.

0

-1 (auto-detekce), 0-31

phymdc

number

PHY MDC pin. Management Data Clock pin pro MDIO rozhraní.

23

GPIO 0-39

phymdio

number

PHY MDIO pin. Management Data Input/Output pin pro MDIO rozhraní.

18

GPIO 0-39

phyen

number

PHY Enable pin. Používá se pro zapnutí/vypnutí PHY čipu.

12

GPIO 0-39

phyrst

number

PHY Reset pin. Hardwarový reset pin pro PHY čip.

-1

-1 (vypnuto), GPIO 0-39

rmiipin

number

RMII Clock pin. Určuje GPIO pro RMII hodinový signál.

0

0 (EMAC_APPL_CLK_OUT_GPIO), 16-17

rmiimode

number

RMII Clock Mode. Konfiguruje zdroj RMII hodin.

2

0 (GPIO0_IN), 1 (GPIO0_OUT), 2 (EMAC_CLK_OUT), 3 (EMAC_CLK_OUT_180)

timeout

number

SW Reset Timeout v milisekundách. Maximální čas čekání na reset PHY.

1000

100-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
  }
}

Chybové Kódy

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

Chybový Kód
Popis
Možné Řešení

50768234

Neplatný ethernet typ

Zkontrolujte, zda je specifikovaný type podporován

45553478

Ethernet typ není string

Ujistěte se, že parametr type je string

56927834

IP adresa není string

Ujistěte se, že parametr ip je string

23074945

Gateway IP adresa není string

Ujistěte se, že parametr gateway je string

26347089

Netmask IP adresa není string

Ujistěte se, že parametr mask je string

62507839

DNS IP adresa není string

Ujistěte se, že parametr dns je string

10435793

Hostname není string

Ujistěte se, že parametr hostname je string

29683748

Selhalo vytvoření ESP32 ethernet MAC

Zkontrolujte hardwarové připojení

23498792

Selhalo vytvoření ethernet PHY

Zkontrolujte PHY konfiguraci

95273483

Selhala instalace ethernet ovladače

Zkontrolujte systémové prostředky

15694378

Selhala registrace ethernet event handleru

Zkontrolujte systémové prostředky

31729483

Selhala registrace IP event handleru

Zkontrolujte systémové prostředky

92657834

Selhalo připojení Ethernet ovladače k TCP/IP stacku

Zkontrolujte systémovou konfiguraci

23148734

Selhalo nastavení hostname síťového rozhraní

Zkontrolujte platnost hostname

69853473

Selhalo zastavení DHCP serveru

Zkontrolujte síťovou konfiguraci

68239473

Selhalo zastavení DHCP klienta

Zkontrolujte síťovou konfiguraci

Varovné Kódy

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

Varovný Kód
Popis
Dodatečné Informace

62537809

Ethernet Link Up

Fyzické připojení navázáno

59634873

Ethernet Link Down

Fyzické připojení ztraceno

95624383

Ethernet Started

Inicializace rozhraní úspěšná

62579839

Ethernet Stopped

Vypnutí rozhraní dokončeno

69278533

Ethernet Got IP Address

IP konfigurace získána

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

Důležité Poznámky

  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.

Last updated

Was this helpful?