Skip to content

Commit 4eb2488

Browse files
committed
Update rtic-echo example to support all link speeds
1 parent 9341d79 commit 4eb2488

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

examples/rtic-echo.rs

+15-2
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,10 @@ mod app {
2525

2626
use crate::common::EthernetPhy;
2727

28+
use ieee802_3_miim::{phy::PhySpeed, Phy};
2829
use systick_monotonic::Systick;
2930

30-
use stm32_eth::{EthernetDMA, RxRingEntry, TxRingEntry};
31+
use stm32_eth::{mac::Speed, EthernetDMA, RxRingEntry, TxRingEntry};
3132

3233
use smoltcp::{
3334
iface::{self, Interface, SocketHandle},
@@ -131,8 +132,20 @@ mod app {
131132
);
132133

133134
phy.phy_init();
135+
136+
if let Some(speed) = phy.speed().map(|s| match s {
137+
PhySpeed::HalfDuplexBase10T => Speed::HalfDuplexBase10T,
138+
PhySpeed::FullDuplexBase10T => Speed::FullDuplexBase10T,
139+
PhySpeed::HalfDuplexBase100Tx => Speed::HalfDuplexBase100Tx,
140+
PhySpeed::FullDuplexBase100Tx => Speed::FullDuplexBase100Tx,
141+
}) {
142+
phy.get_miim().set_speed(speed);
143+
defmt::info!("Detected link speed: {}", speed);
144+
} else {
145+
defmt::warn!("Failed to detect link speed.");
146+
}
134147
} else {
135-
defmt::info!("Not resetting unsupported PHY.");
148+
defmt::info!("Not resetting unsupported PHY. Cannot detect link speed.");
136149
}
137150

138151
defmt::info!("Setup done. Listening at {}", crate::ADDRESS);

0 commit comments

Comments
 (0)