Mbed OS Reference
Loading...
Searching...
No Matches
GenericEthPhy::Config Struct Reference

Configuration structure for a generic Ethernet PHY. More...

#include <GenericEthPhy.h>

Data Fields

uint32_t OUI
 24-bit OUI of the organization that produced the ethernet PHY.
 
uint8_t model_min
 Range of 5-bit model number of the phy.
 
uint8_t address
 MDIO address of the phy chip.
 
std::chrono::microseconds resetLowTime = std::chrono::microseconds(100)
 Time to hold reset low on this phy.
 
std::chrono::microseconds resetHighTime = std::chrono::milliseconds(500)
 Time to wait after resetting the phy before trying to talk to it.
 
bool autonegEnabled = true
 Whether autonegotiation shall be enabled on the phy.
 
bool advertiseFullDuplex = true
 Whether the PHY should advertise full duplex modes.
 
bool advertiseHalfDuplex = true
 Whether the PHY should advertise half duplex modes.
 
bool advertise100M = true
 Whether the PHY should advertise 100Mbit modes.
 
bool advertise10M = true
 Whether the PHY should advertise 10Mbit modes.
 
std::pair< CompositeEMAC::LinkSpeed, CompositeEMAC::Duplex > fixedEthSettings = {CompositeEMAC::LinkSpeed::LINK_100MBIT, CompositeEMAC::Duplex::FULL}
 If autonegEnabled is false, this gives the fixed link settings to advertise.
 

Detailed Description

Configuration structure for a generic Ethernet PHY.

Definition at line 84 of file GenericEthPhy.h.

Field Documentation

◆ OUI

uint32_t OUI

24-bit OUI of the organization that produced the ethernet PHY.

Definition at line 86 of file GenericEthPhy.h.

◆ model_min

uint8_t model_min

Range of 5-bit model number of the phy.

This plus the OUI is used to verify that the chip in hardware matches what's expected.

Definition at line 90 of file GenericEthPhy.h.

◆ address

uint8_t address

MDIO address of the phy chip.

NOTE: 0 is supposed to be reserved as the general call address but lots of phy chips use it anyway.

Definition at line 96 of file GenericEthPhy.h.

◆ resetLowTime

std::chrono::microseconds resetLowTime = std::chrono::microseconds(100)

Time to hold reset low on this phy.

Definition at line 99 of file GenericEthPhy.h.

◆ resetHighTime

std::chrono::microseconds resetHighTime = std::chrono::milliseconds(500)

Time to wait after resetting the phy before trying to talk to it.

Also used as the time to wait for power on reset if there is no reset pin. Note that standards compliant PHYs must reset in <500ms.

Definition at line 104 of file GenericEthPhy.h.

◆ autonegEnabled

bool autonegEnabled = true

Whether autonegotiation shall be enabled on the phy.

NOTE: If this is set to false, the other end of the connection MUST be manually configured to match. Otherwise you will get sporadic data loss due to an Ethernet duplex mismatch! However, setting this to false will make the Ethernet link come up much faster (milliseconds instead of seconds, at least if you don't do DHCP)

Definition at line 110 of file GenericEthPhy.h.

◆ advertiseFullDuplex

bool advertiseFullDuplex = true

Whether the PHY should advertise full duplex modes.

Definition at line 113 of file GenericEthPhy.h.

◆ advertiseHalfDuplex

bool advertiseHalfDuplex = true

Whether the PHY should advertise half duplex modes.

Half duplex allows running only over 1 or 2 twisted pairs, but introduces the possibility of collisions.

Definition at line 117 of file GenericEthPhy.h.

◆ advertise100M

bool advertise100M = true

Whether the PHY should advertise 100Mbit modes.

Definition at line 120 of file GenericEthPhy.h.

◆ advertise10M

bool advertise10M = true

Whether the PHY should advertise 10Mbit modes.

10Mbit can be a fallback if signal conditions are poor, but this fallback may not be desired.

Definition at line 124 of file GenericEthPhy.h.

◆ fixedEthSettings

std::pair<CompositeEMAC::LinkSpeed, CompositeEMAC::Duplex> fixedEthSettings = {CompositeEMAC::LinkSpeed::LINK_100MBIT, CompositeEMAC::Duplex::FULL}

If autonegEnabled is false, this gives the fixed link settings to advertise.

Definition at line 127 of file GenericEthPhy.h.