NUCLEO-H5E5ZJ 以太网(Ethernet)移植记录
" }5 V4 p* c5 K6 w1 D: [# M+ _& ] 1. 硬件分析1.1 方案概述 NUCLEO-H5E5ZJ 通过 LAN8742A-CZ-TR(U17)PHY + RJ45(CN14)支持 10/100M 以太网,PHY 与 STM32H5E5 之间走 RMII 接口。 关键硬件事实(来源:UM3601 §7.11 + MB2129 原理图交叉核对):
REF_CLKPA1CRS_DVPD1 MDIOPA2RXD0PC4. u/ c0 ^6 x2 }' i) G MDCPC1RXD1PC5! i% \$ D. P3 g TX_ENPA5TXD0PB129 Z% F. s% \9 o0 m TXD1PG12 文档勘误:UM3601 Table 10 末尾列了 "ETH CLK → PD4",这是从其他板型 UM 拷贝的残留错误——原理图中 PD4 实际接电源开关控制信号 T_PWR_SEL1,与以太网完全无关。UM 表格本身是双栏排版,PDF 文本提取后会错位(例如把 RXD1 错标成 PB7),一切以原理图网络标号 RMII.xxx 为准。 与 LED 无冲突:本板 RMII_RXD1 走 PC5(部分 Nucleo 板型占用 PE5,会与 LD3 冲突,本板不存在此问题)。 2. Zephyr 侧改动2.1 设备树(nucleo_h5e5zj.dts)/* LAN8742A PHY (U17), RMII; PHY nRST tied to board NRST via SB35, addr 0 */&mac { status = "okay"; pinctrl-0 = <ð_rmii_rxd0_pc4, W3 e2 w1 N0 O {* Z$ v2 t ð_rmii_rxd1_pc5, ?; S+ H$ p: `, b ð_rmii_ref_clk_pa1 ð_rmii_crs_dv_pd1: ]3 M8 t/ T" n6 ]5 @( T* D- o ð_rmii_tx_en_pa5 ð_rmii_txd0_pb12 ð_rmii_txd1_pg12>;3 {" `# A$ z+ A" H7 f! A" s0 W pinctrl-names = "default"; phy-connection-type = "rmii"; phy-handle = <ð_phy>; }; 3 R: Q# e( {( T/ q+ R &mdio {, O4 H. O) {3 b, @9 ]/ | Z d status = "okay";2 s5 ^5 R: v, G2 u/ d' T pinctrl-0 = <ð_mdio_pa2 ð_mdc_pc1>; pinctrl-names = "default";. W0 X+ I* ^: L* p U' c1 z0 ~* x eth_phy: ethernet-phy@0 {5 D/ ?5 H9 \& J+ [ compatible = "ethernet-phy"; reg = <0x00>;/ O7 ^8 ^0 L+ W };0 m3 t+ ^! Z1 f% e& Y6 D- D$ { p }; 说明:
5 l; Z5 k0 Y( R" E" N% L configdefault NET_L2_ETHERNET) U/ i9 I% c% c3 w5 b2 S default y endif # BOARD_NUCLEO_H5E5ZJ 这里有个坑(详见 §3):不要照抄 stm32h5f5j_dk 的 configdefault ETH_DRIVER,在 Zephyr v4.4 中必须默认打开 NET_L2_ETHERNET;ETH_DRIVER 自身带 default y if NET_L2_ETHERNET,链路会自动闭合,ETH_STM32_HAL 由设备树 DT_HAS_ST_STM32_ETHERNET_ENABLED 自动使能。 2.3 其他
现象:配置好设备树后编译 samples/net/dhcpv4_client,报: subsys/net/lib/shell/iface.c:899: error: implicit declaration of function 'net_eth_get_phy'排查过程:
修复:参考 nucleo_h563zi / nucleo_f429zi 的 Kconfig.defconfig,默认打开 NET_L2_ETHERNET(见 §2.2)。 经验:跨 Zephyr 版本抄板级 Kconfig 时要小心,同系列新板(main 上的)的写法在旧版本里可能不成立;遇到"隐式声明"错误先查 autoconf.h 里相关配置项的组合是否一致。 4. 构建与验证3 Z8 p) V& L6 y. K; K" K' eexport ZEPHYR_SDK_INSTALL_DIR=/d/Zephyrproject/zephyr-sdk-1.0.1/zephyr-sdk-1.0.1 west build -b nucleo_h5e5zj zephyr/samples/net/dhcpv4_client -d build_h5e5_net -p always -- -DBOARD_ROOT=D:/STM32/STM32H5E5/NUCLEO_H5E5ZJ west flash -d build_h5e5_net 网线插到 RJ45(CN14),对端需有 DHCP 服务(路由器/交换机)。串口(ST-LINK VCP,115200 8N1)观察启动日志。 实测结果(2026-10-16)[00:00:00.050,000] <inf> phy_mii: PHY (0) ID 7C131*** Booting Zephyr OS build v4.4.0-25-ga51fc4394abb *** [00:00:00.051,000] <inf> net_dhcpv4_client_sample: Run dhcpv4 client [00:00:00.051,000] <inf> net_dhcpv4_client_sample: Start on ethernet: index=1 [00:00:02.853,000] <inf> phy_mii: PHY (0) Link speed 100 Mb, full duplex! K7 \( |( @2 q! H. k2 B( C1 @ [00:00:05.941,000] <inf> net_dhcpv4: Received: 192.168.3.15 [00:00:05.941,000] <inf> net_dhcpv4_client_sample: Address[1]: 192.168.3.156 ?* s" h, A T% o3 w [00:00:05.941,000] <inf> net_dhcpv4_client_sample: Subnet[1]: 255.255.255.0 [00:00:05.941,000] <inf> net_dhcpv4_client_sample: Router[1]: 192.168.3.1 PC 侧反向验证: C:\> ping 192.168.3.15! Z8 [6 Y9 ]" e; r4 ^) W. o) v已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),最短 = 0ms,最长 = 1ms,平均 = 0ms
|
【NUCLEO-H5E5ZJ评测】M.2存储扩展实测
【STM32H5 评测】+ 多外设同时开启稳定性简要评测
【NUCLEO-H5E5ZJ评测】CoreMark 移植实录:从 CubeMX 到 700.89 分
STM32C542RC开发板I2C通讯实验
STM32C542RC开发板启用SPI驱动TFT显示屏
【STM32H5 评测】+ 增加ETH外设和NetX协议栈实验
STM32C542RC开发板驱动TFT显示屏
【STM32H5 评测】+ H5E5专用OLED点亮实验
【STM32H5 评测】ADC 电压表
【STM32H5 评测】Part3 STM32H5E5 密码学加速性能测试
微信公众号
手机版