pub struct Ethernet<'d, T: Instance, P: Phy> { /* private fields */ }
Expand description
Ethernet driver.
Implementations§
Source§impl<'d, T: Instance, P: Phy> Ethernet<'d, T, P>
impl<'d, T: Instance, P: Phy> Ethernet<'d, T, P>
Sourcepub fn new<const TX: usize, const RX: usize>(
queue: &'d mut PacketQueue<TX, RX>,
peri: Peri<'d, T>,
irq: impl Binding<ETH, InterruptHandler> + 'd,
ref_clk: Peri<'d, impl RefClkPin<T>>,
mdio: Peri<'d, impl MDIOPin<T>>,
mdc: Peri<'d, impl MDCPin<T>>,
crs: Peri<'d, impl CRSPin<T>>,
rx_d0: Peri<'d, impl RXD0Pin<T>>,
rx_d1: Peri<'d, impl RXD1Pin<T>>,
tx_d0: Peri<'d, impl TXD0Pin<T>>,
tx_d1: Peri<'d, impl TXD1Pin<T>>,
tx_en: Peri<'d, impl TXEnPin<T>>,
phy: P,
mac_addr: [u8; 6],
) -> Self
pub fn new<const TX: usize, const RX: usize>( queue: &'d mut PacketQueue<TX, RX>, peri: Peri<'d, T>, irq: impl Binding<ETH, InterruptHandler> + 'd, ref_clk: Peri<'d, impl RefClkPin<T>>, mdio: Peri<'d, impl MDIOPin<T>>, mdc: Peri<'d, impl MDCPin<T>>, crs: Peri<'d, impl CRSPin<T>>, rx_d0: Peri<'d, impl RXD0Pin<T>>, rx_d1: Peri<'d, impl RXD1Pin<T>>, tx_d0: Peri<'d, impl TXD0Pin<T>>, tx_d1: Peri<'d, impl TXD1Pin<T>>, tx_en: Peri<'d, impl TXEnPin<T>>, phy: P, mac_addr: [u8; 6], ) -> Self
Create a new RMII ethernet driver using 9 pins.
Sourcepub fn new_mii<const TX: usize, const RX: usize>(
queue: &'d mut PacketQueue<TX, RX>,
peri: Peri<'d, T>,
irq: impl Binding<ETH, InterruptHandler> + 'd,
rx_clk: Peri<'d, impl RXClkPin<T>>,
tx_clk: Peri<'d, impl TXClkPin<T>>,
mdio: Peri<'d, impl MDIOPin<T>>,
mdc: Peri<'d, impl MDCPin<T>>,
rxdv: Peri<'d, impl RXDVPin<T>>,
rx_d0: Peri<'d, impl RXD0Pin<T>>,
rx_d1: Peri<'d, impl RXD1Pin<T>>,
rx_d2: Peri<'d, impl RXD2Pin<T>>,
rx_d3: Peri<'d, impl RXD3Pin<T>>,
tx_d0: Peri<'d, impl TXD0Pin<T>>,
tx_d1: Peri<'d, impl TXD1Pin<T>>,
tx_d2: Peri<'d, impl TXD2Pin<T>>,
tx_d3: Peri<'d, impl TXD3Pin<T>>,
tx_en: Peri<'d, impl TXEnPin<T>>,
phy: P,
mac_addr: [u8; 6],
) -> Self
pub fn new_mii<const TX: usize, const RX: usize>( queue: &'d mut PacketQueue<TX, RX>, peri: Peri<'d, T>, irq: impl Binding<ETH, InterruptHandler> + 'd, rx_clk: Peri<'d, impl RXClkPin<T>>, tx_clk: Peri<'d, impl TXClkPin<T>>, mdio: Peri<'d, impl MDIOPin<T>>, mdc: Peri<'d, impl MDCPin<T>>, rxdv: Peri<'d, impl RXDVPin<T>>, rx_d0: Peri<'d, impl RXD0Pin<T>>, rx_d1: Peri<'d, impl RXD1Pin<T>>, rx_d2: Peri<'d, impl RXD2Pin<T>>, rx_d3: Peri<'d, impl RXD3Pin<T>>, tx_d0: Peri<'d, impl TXD0Pin<T>>, tx_d1: Peri<'d, impl TXD1Pin<T>>, tx_d2: Peri<'d, impl TXD2Pin<T>>, tx_d3: Peri<'d, impl TXD3Pin<T>>, tx_en: Peri<'d, impl TXEnPin<T>>, phy: P, mac_addr: [u8; 6], ) -> Self
Create a new MII ethernet driver using 14 pins.
Source§impl<'d, T: Instance, P: Phy> Ethernet<'d, T, P>
impl<'d, T: Instance, P: Phy> Ethernet<'d, T, P>
Sourcepub fn station_management(&mut self) -> &mut impl StationManagement
pub fn station_management(&mut self) -> &mut impl StationManagement
Directly expose the SMI interface used by the Ethernet driver.
This can be used to for example configure special PHY registers for compliance testing.
Trait Implementations§
Source§impl<'d, T: Instance, P: Phy> Driver for Ethernet<'d, T, P>
impl<'d, T: Instance, P: Phy> Driver for Ethernet<'d, T, P>
Source§type TxToken<'a> = TxToken<'a, 'd>
where
Self: 'a
type TxToken<'a> = TxToken<'a, 'd> where Self: 'a
A token to transmit a single network packet.
Source§fn receive(
&mut self,
cx: &mut Context<'_>,
) -> Option<(Self::RxToken<'_>, Self::TxToken<'_>)>
fn receive( &mut self, cx: &mut Context<'_>, ) -> Option<(Self::RxToken<'_>, Self::TxToken<'_>)>
Construct a token pair consisting of one receive token and one transmit token. Read more
Source§fn transmit(&mut self, cx: &mut Context<'_>) -> Option<Self::TxToken<'_>>
fn transmit(&mut self, cx: &mut Context<'_>) -> Option<Self::TxToken<'_>>
Construct a transmit token. Read more
Source§fn capabilities(&self) -> Capabilities
fn capabilities(&self) -> Capabilities
Get a description of device capabilities.
Source§fn hardware_address(&self) -> HardwareAddress
fn hardware_address(&self) -> HardwareAddress
Get the device’s hardware address. Read more
Auto Trait Implementations§
impl<'d, T, P> Freeze for Ethernet<'d, T, P>
impl<'d, T, P> !RefUnwindSafe for Ethernet<'d, T, P>
impl<'d, T, P> Send for Ethernet<'d, T, P>where
P: Send,
impl<'d, T, P> !Sync for Ethernet<'d, T, P>
impl<'d, T, P> Unpin for Ethernet<'d, T, P>
impl<'d, T, P> !UnwindSafe for Ethernet<'d, T, P>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more