class LAN – controla uma interface Ethernet

A classe LAN controla o MAC Ethernet integrado ao MCU contra um PHY RMII externo. O tipo do PHY, o endereço MDIO e a pinagem são todos específicos da placa; valores padrão sensatos estão embutidos em cada placa OpenMV, de modo que o construtor normalmente não recebe argumentos.

Disponível em:

  • OpenMV Cam N6 (porta STM32) – PHY padrão PHY_LAN8742.

  • Arduino Portenta H7 (porta STM32) – PHY padrão PHY_LAN8742.

  • OpenMV Cam RT1062 (porta mimxrt) – PHY padrão PHY_KSZ8081.

Exemplo de uso:

import network

nic = network.LAN()
nic.active(True)

while not nic.isconnected():
    pass

print(nic.ipconfig("addr4"))

Construtores

class network.LAN(id: int = 0, *, phy_type: int | None = None, phy_addr: int | None = None, ref_clk_mode: int | None = None) None

Constrói um objeto de interface LAN. Todos os argumentos após id são somente nomeados.

id seleciona a porta Ethernet em placas que expõem mais de uma (porta mimxrt: 0 = ENET, 1 = ENET_1). Ignorado em placas STM32, que possuem apenas um único MAC.

phy_type seleciona o driver do PHY (uma das constantes PHY_* abaixo). Passe None (o padrão) para usar o PHY ligado à placa OpenMV.

phy_addr é o endereço MDIO do PHY no barramento de gerenciamento. Passe None (o padrão) para usar o valor cabeado da placa.

ref_clk_mode (somente mimxrt) seleciona se o clock de referência RMII é gerado pelo MAC (OUT) ou pelo PHY (IN). Ignorado em placas STM32.

Métodos

active(is_active: bool | None = None) bool

Ativa ou desativa o MAC Ethernet.

Sem argumento, retorna o status atual do link do PHY como um inteiro verdadeiro/falso – veja status() para o conjunto completo de valores codificados.

active(True) inicia o MAC e o PHY, dispara a auto-negociação e ativa o netif do lwIP. A subida do link em si pode levar um momento para completar – consulte isconnected() em loop se precisar bloquear até o link estar totalmente pronto. Todos os outros métodos (ipconfig(), config(), …) exigem que a interface esteja ativa.

active(False) para o MAC e desmonta o netif.

isconnected() bool

Retorna True quando o PHY negociou a subida do link e a interface está no estado totalmente ativo (valor de status do link 3).

status() int

Retorna o status bruto do link do PHY como um inteiro:

  • 0 – link inativo.

  • 1 – link ativo (apenas PHY, pilha IP ainda não pronta).

  • 2 – em transição.

  • 3 – link ativo e a pilha IP terminou de ativar a interface.

ifconfig(config: Tuple[str, str, str, str] | None = None) Tuple[str, str, str, str] | None

Obtém ou define os parâmetros IPv4 da interface como uma 4-tupla de strings em quádruplo decimal (ip, subnet, gateway, dns).

Nota

Prefira ipconfig() para código novo:

nic.ipconfig(addr4="192.168.0.4/24", gw4="192.168.0.1")
network.ipconfig(dns="8.8.8.8")
ipconfig(param: str) Any
ipconfig(**kwargs: Any) None

Obtém ou define os parâmetros IPv4 / IPv6 da interface. Comporta-se da mesma forma que AbstractNIC.ipconfig() – veja esse método para a lista completa de nomes de parâmetros suportados (dhcp4, addr4, gw4, autoconf6, addr6, …).

config(param: str) Any
config(**kwargs: Any) None

Obtém ou define parâmetros específicos da interface Ethernet.

Com um único argumento posicional do tipo string, retorna o valor desse parâmetro:

  • "mac" – o endereço MAC da interface como um objeto bytes de 6 bytes.

Com argumentos nomeados, define um ou mais parâmetros:

  • trace=<int> – habilita o rastreamento do lwIP. Campo de bits: 2 rastreia TX, 4 rastreia RX, 8 habilita o rastreamento completo.

  • low_power=<bool> – habilita ou desabilita o modo de baixo consumo IEEE 802.3az (Energy Efficient Ethernet) do PHY.

Constantes

PHY_LAN8742: int

PHY Ethernet Microchip LAN8742A 10/100. Somente porta STM32; padrão na OpenMV Cam N6 e na Arduino Portenta H7.

PHY_LAN8720: int

PHY Ethernet Microchip LAN8720 10/100. Disponível tanto na porta STM32 quanto na mimxrt.

PHY_DP83848: int

PHY Ethernet Texas Instruments DP83848 10/100. Disponível tanto na porta STM32 quanto na mimxrt.

PHY_DP83825: int

PHY Ethernet Texas Instruments DP83825 10/100. Disponível tanto na porta STM32 quanto na mimxrt.

PHY_KSZ8081: int

PHY Ethernet Microchip KSZ8081 10/100. Somente porta mimxrt; padrão na OpenMV Cam RT1062.

PHY_DP83867: int

PHY Ethernet gigabit Texas Instruments DP83867. Somente porta mimxrt.

PHY_RTL8211F: int

PHY Ethernet gigabit Realtek RTL8211F. Somente porta mimxrt.

IN: int

Passe para ref_clk_mode para que o clock de referência RMII seja gerado pelo PHY. Somente porta mimxrt.

OUT: int

Passe para ref_clk_mode para que o clock de referência RMII seja gerado pelo MAC. Somente porta mimxrt.