rk3566-安卓11-千兆网卡 rtl8211f 移植

本文详细描述了在Linux系统下对Rockchip平台的GMAC进行功能调试,包括RGMII和RMII模式的配置,驱动安装,电源管理,以及吞吐量测试(使用iperf3)的过程。同时涉及如何打开RTL8211F芯片的LED灯控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、功能调试

1. 确认原理图

phy 常用的接口有两种 RGMII 和 RMII, 这两种对应的物理接口有 6 中如下所示. 首先需要根据原理图确定是哪种接法, 根据接法对应的 name 在文档 Rockchip_Developer_Guide_Linux_GMAC_Mode_Configuration_CN.pdf中查找对应的配置.

1.1 RGMII 模式

该模式需要关注的硬件接口

  • mac: GMACX_MCLKINOUT, ETHx_REFCLKO_25M
  • phy: CLKOUT, XTAL_IN, XTAL_OUT
MACPHYname
GMACX_MCLKINOUT 悬空
ETHx_REFCLKO_25M 悬空
XTAL_IN/XTAL_OUT 由晶体提供时钟PLL output 125M for TX_CLK, Crystal 25M for PHY
GMACX_MCLKINOUT 悬空
ETHx_REFCLKO_25M 提供时钟给 XTAL_OUT
XTAL_IN 接地
XTAL_OUT ETHx_REFCLKO_25M 提供时钟
PLL output 125M for TX_CLK, PLL 25M for PHY
GMACX_MCLKINOUT 时钟由 CLKOUT 提供
ETHx_REFCLKO_25M 悬空
XTAL_IN/XTAL_OUT 由晶体提供时钟125M TX_CLK input from PHY, Crystal 25M for PHY
GMACX_MCLKINOUT 时钟由 CLKOUT 提供
ETHx_REFCLKO_25M 提供时钟给 XTAL_OUT
XTAL_IN 接地,
XTAL_OUTETHx_REFCLKO_25M提供时钟
125M TX_CLK input from PHY, PLL 25M for PHY

1.2 RMII 模式

需要关注的引脚

  • mac: GMACX_MCLKINOUT, ETHx_REFCLKO_25M(一直悬空)
  • phy: PHY_TXCLK, XTAL_IN, XTAL_OUT
MACPHYname
GMACX_MCLKINOUT 提供时钟给 XTAL_OUT
ETHx_REFCLKO_25M 悬空
XTAL_IN 接地
XTAL_OUTGMACX_MCLKINOUT 提供时钟
RMII Clock Output
GMACX_MCLKINOUT 时钟由 PHY_TXCLK 提供
ETHx_REFCLKO_25M 悬空
XTAL_IN/XTAL_OUT 由晶体提供时钟RMII Clock Input

1.3 确认 name

确认 mac 端接口

根据原理图:

  • GMAC1_MCLKINOUT_M0 悬空 ==> GMACX_MCLKINOUT 悬空
  • ETH1_REFCLKO_25M_M0 悬空 ==> ETHx_REFCLKO_25M 悬空

确认 phy 端接口

根据原理图:

  • XTAL_IN/XTAL_OUT 由晶体提供时钟

根据前面的信息可以推出 name 为 PLL output 125M for TX_CLK, Crystal 25M for PHY在 rk 提供的文档 Rockchip_Developer_Guide_Linux_GMAC_Mode_Configuration_CN.pdf查找对应的配置.

&mdio1 {
         rgmii_phy1: phy@0 {
         compatible = "ethernet-phy-ieee802.3-c22"; // 协议
         reg = <0x0>;
       };
};

&gmac1 {
        phy-mode = "rgmii"; // 接口类型
        // clock_in_out = "output"; // 输出时钟, 对应PLL output 125M for TX_CLK, Crystal 25M for PHY 配置
		clock_in_out = "input"; // 输入时钟

        snps,reset-gpio = <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>; // 复位引脚
        snps,reset-active-low;                             // 低电平有效
        snps,reset-delays-us = <0 20000 100000>;           // 复位延时时间

        // 时钟配置
        assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
        // assigned-clock-parents = <&cru SCLK_GMAC1_RMII_SPEED>; 对应 PLL output 125M for TX_CLK, Crystal 25M for PHY 的配置
        assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&gmac1_clkin>;
        assigned-clock-rates = <0>, <125000000>;  // 千兆网卡时钟

        pinctrl-names = "default";
        pinctrl-0 = <&gmac1m0_miim // 引脚复用
                     &gmac1m0_tx_bus2
                     &gmac1m0_rx_bus2
                     &gmac1m0_rgmii_clk
                     &gmac1m0_rgmii_bus>;

        // tx, rx 延时时间, 需要参考文档 Rockchip_Developer_Guide_Linux_GMAC_RGMII_Delayline_CN.pdf 配置
        tx_delay = <0x4d>;
        rx_delay = <0x2d>;

        phy-handle = <&rgmii_phy1>;
        status = "okay";
};

如果 dts 配置的不对会出现 dma 相关的报错, 出现这个报错, 按照前面的步骤确认硬件接法对应的name 然后查找对应的配置.

补充说明, 我试过了我的设备无论是配成 input 还是 output 都能用 =-=

2. 配置驱动

这一步比较简单, rk 默认提供了该驱动的支持, 对应的路径 kernel/drivers/net/phy/realtek.c, 只需要打开宏 CONFIG_REALTEK_PHY即可.

3. 配置电源

如果原理图上的 mac 的 io 供电由 vcc_1v8 提供, 软件需要配置打开这个 vcc_1v8 供电.

软件上对于 gmac1 的电源控制为 vccio5-supply , 因此需要做对应的映射

&pmu_io_domains {
    status = "okay";
    pmuio1-supply = <&vcc3v3_pmu>;
    pmuio2-supply = <&vcca1v8_pmu>;
    vccio1-supply = <&vccio_acodec>;
    vccio3-supply = <&vccio_sd>;
    vccio4-supply = <&vcca1v8_pmu>;
-       vccio5-supply = <&vcc_3v3>;
+       vccio5-supply = <&vcc_1v8>;
    vccio6-supply = <&vcc1v8_dvp>;
    vccio7-supply = <&vcc_3v3>;
};

这里如果没有配置正确的现象就是, 软件看起来一切正常, 可以读取 phy 信息, 能够 link up, 没有报错, 但是 ifconfig 读取不到 ip 地址 =_=.

参考文档(文档找rk的fae要):
Rockchip_Developer_Guide_Linux_GMAC_CN.pdf
Rockchip_Developer_Guide_Linux_GMAC_RGMII_Delayline_CN.pdf
以太网常见问题处理方法排查手册.pdf

二、吞吐量测试

pc 使用 iperf3 测试在 iperf3官网 下载安装, 下载后将 iperf3.exe 和 cygwin1.dll 复制粘贴到 C:\Windows\System32.

安卓 sdk 自带了这个工具, 在 external/iperf3运行 mmm ./编译,
编译之后生成 out/target/product/rk3566_rgo/system/bin/, push 到机器里面使用.

1. 发送测试

  • pc端: 运行 iperf3.exe -s后等待
PS D:\project\pg1000\wifi固件\bcdm> iperf3.exe -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.3.41, port 43542
[  5] local 192.168.3.20 port 5201 connected to 192.168.*.* port 43544
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.00   sec   104 MBytes   872 Mbits/sec
[  5]   1.00-2.00   sec   104 MBytes   873 Mbits/sec
[  5]   2.00-3.00   sec   105 MBytes   881 Mbits/sec
[  5]   3.00-4.00   sec   106 MBytes   886 Mbits/sec
[  5]   4.00-5.00   sec   107 MBytes   900 Mbits/sec
[  5]   5.00-6.00   sec   107 MBytes   900 Mbits/sec
[  5]   6.00-7.00   sec   107 MBytes   895 Mbits/sec
[  5]   7.00-8.00   sec   108 MBytes   902 Mbits/sec
[  5]   8.00-9.00   sec   106 MBytes   892 Mbits/sec
[  5]   9.00-10.00  sec   107 MBytes   897 Mbits/sec
[  5]  10.00-10.02  sec  2.60 MBytes   884 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-10.02  sec  0.00 Bytes  0.00 bits/sec                  sender
[  5]   0.00-10.02  sec  1.04 GBytes   890 Mbits/sec                  receiver
-----------------------------------------------------------

*安卓端: 运行 ./iperf3 -c 192.168.*.* -i 1 -w 1M -t 10 -l 16000, 其中192.168.*.*: 为 pc 端的 ip

rk3566_rgo:/cache # ./iperf3 -c 192.168.*.* -i 1 -w 1M -t 10 -l 16000
Connecting to host 192.168.3.20, port 5201
[  5] local 192.168.3.41 port 43544 connected to 192.168.3.20 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   108 MBytes   904 Mbits/sec    6    395 KBytes
[  5]   1.00-2.00   sec   104 MBytes   872 Mbits/sec    9    361 KBytes
[  5]   2.00-3.00   sec   105 MBytes   883 Mbits/sec   15    276 KBytes
[  5]   3.00-4.00   sec   106 MBytes   886 Mbits/sec   12    218 KBytes
[  5]   4.00-5.00   sec   107 MBytes   899 Mbits/sec    9    168 KBytes
[  5]   5.00-6.00   sec   107 MBytes   901 Mbits/sec    0    436 KBytes
[  5]   6.00-7.00   sec   107 MBytes   896 Mbits/sec   12    341 KBytes
[  5]   7.00-8.00   sec   107 MBytes   901 Mbits/sec    9    331 KBytes
[  5]   8.00-9.00   sec   106 MBytes   892 Mbits/sec   15    253 KBytes
[  5]   9.00-10.00  sec   107 MBytes   896 Mbits/sec   12    188 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.04 GBytes   893 Mbits/sec   99             sender
[  5]   0.00-10.00  sec  1.04 GBytes   892 Mbits/sec                  receiver

2. 接收测试

发送测试反过来操作即可。

三、打开 led 灯

默认情况只亮一颗黄灯, 需要将另一颗绿灯点亮. 查看芯片手册, RTL8211F 的寄存器读写, 首先需要将要操作的 Address 对应的 page 写入 Page Select Register, 再对该寄存器进行读写.

要点亮灯对应检测到千兆网卡是亮灯需要将 bit8(绿灯), bit13(黄灯) 设置为 1. 首先往Page Select Register中写入对应的 page 0xd04, 然后再操作 0x10 寄存器. Page Select Register 如下所示.

编写代码如下

#define PHY_ID_RTL8211F                   0x001cc916
#define PAGE_SELECT_ADDR                  0x1f
#define LED_PAGE_REG                      0xd04
#define LED_CONTORL_REG                   0X10

static int phy_rtl8211f_led_fixup(struct phy_device *phydev)
{
   int value = 0;

   if (phydev->phy_id != PHY_ID_RTL8211F)
       return 0;

   /* select page to 0xd04 */
   phy_write(phydev, PAGE_SELECT_ADDR, LED_PAGE_REG);

   /* When the network card is 1000m, open led1(bit8) and led2(bit13) */
   value = phy_read(phydev, LED_CONTORL_REG);
   value |= (1 << 8) | (1 << 13);
   phy_write(phydev, LED_CONTORL_REG, value);

   return 0;
}

完整修改如下

-- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -121,11 +121,10 @@ static void stmmac_exit_fs(struct net_device *dev);

 #define STMMAC_COAL_TIMER(x) (jiffies + usecs_to_jiffies(x))

+#define PHY_ID_RTL8211F                   0x001cc916
+#define PAGE_SELECT_ADDR                  0x1f
+#define LED_PAGE_REG                      0xd04
+#define LED_CONTORL_REG                   0X10

 /**
  * stmmac_verify_args - verify the driver parameters.
@@ -2485,27 +2484,24 @@ static void stmmac_safety_feat_configuration(struct stmmac_priv *priv)
        }
 }

+static int phy_rtl8211f_led_fixup(struct phy_device *phydev)
 {
+       int value = 0;

+       if (phydev->phy_id != PHY_ID_RTL8211F)
                return 0;

+       /* select page to 0xd04 */
+       phy_write(phydev, PAGE_SELECT_ADDR, LED_PAGE_REG);

+       /* When the network card is 1000m, open led1(bit8) and led2(bit13) */
+       value = phy_read(phydev, LED_CONTORL_REG);
+       value |= (1 << 8) | (1 << 13);
+       phy_write(phydev, LED_CONTORL_REG, value);

        return 0;
 }

 /**
  * stmmac_hw_setup - setup mac in a usable state.
  *  @dev : pointer to the device structure.
@@ -4482,7 +4478,7 @@ int stmmac_dvr_probe(struct device *device,
                            __func__);
 #endif

+       ret = phy_register_fixup_for_uid(PHY_ID_RTL8211F,0xffffffff, phy_rtl8211f_led_fixup);
        if (ret)
                pr_warn("Cannot register PHY board fixup.\n");

@@ -4685,7 +4681,7 @@ int stmmac_resume(struct device *dev)

        mutex_unlock(&priv->lock);

+       phy_rtl8211f_led_fixup(ndev->phydev);

        if (ndev->phydev)
                phy_start(ndev->phydev);
<think>我们正在调试RK3576 Android 14平台上的RTL8211F-CG网络芯片。RTL8211F-CG是一款千兆以太网PHY芯片,需要正确配置硬件和软件才能工作。以下步骤将指导我们完成调试过程。 ### 一、硬件设计检查 1. **电源和复位电路** - 检查VDD33(3.3V)、VDDIO(1.8V/2.5V/3.3V)和VDD12(1.2V)电源是否稳定,电压波动需在±5%以内。 - 确认复位信号(RST#)在上电后保持高电平(有效状态为低电平复位)。 2. **MDI接口(网络变压器)** - 确保TX±/RX±差分线对通过网络变压器连接至RJ45接口,差分阻抗为100Ω。 - 检查中心抽头是否接正确电压(通常为3.3V或2.5V)。 3. **时钟电路** - RTL8211F需要25MHz晶振或外部时钟输入,测量时钟频率偏差需小于±50ppm。 4. **管理接口(MDC/MDIO)** - 确认MDC(时钟)、MDIO(数据)线连接至RK3576的MAC控制器,上拉电阻4.7kΩ至VDDIO。 ### 二、设备树(DTS)配置 在RK3576的DTS文件中添加以太网节点,参考RK3568的配置风格[^2]: ```dts &gmac1 { phy-mode = "rgmii"; // 根据实际连接选择模式(RGMII/RMII) clock_in_out = "output"; // PHY提供时钟给MAC snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; // 复位引脚 snps,reset-active-low; // 低电平复位 snps,reset-delays-us = <0 10000 50000>; // 复位时序:延时0us, 复位10ms, 释放后延时50ms assigned-clocks = <&cru SCLK_GMAC1_RX_TX>; // 时钟分配 assigned-clock-parents = <&cru CLK_MAC1_2TOP>; // 时钟源 pinctrl-names = "default"; pinctrl-0 = <&gmac1_miim &gmac1_tx_bus2 &gmac1_rx_bus2 &gmac1_rgmii_clk &gmac1_rgmii_bus>; // 引脚复用 phy-handle = <&rgmii_phy1>; // 指向PHY节点 status = "okay"; }; mdio1 { compatible = "snps,dwmac-mdio"; #address-cells = <1>; #size-cells = <0>; rgmii_phy1: phy@0 { // PHY地址,根据硬件设计设置(0~31) compatible = "ethernet-phy-id001c.c916"; // RTL8211F的ID reg = <0x0>; // PHY地址 phy-is-integrated; // 可选,表示PHY集成在MAC中 reset-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; // 复位引脚(与MAC节点一致) reset-assert-us = <10000>; // 复位时间10ms reset-deassert-us = <50000>; // 复位释放后延时50ms }; }; ``` **关键参数说明**: - `phy-mode`:必须与硬件连接一致(如RGMII、RMII)。 - `snps,reset-gpio`:PHY复位引脚,需与硬件原理图一致。 - `reg`:PHY的MDIO地址,由硬件设计决定(通常为0~31)。 - `reset-assert-us`和`reset-deassert-us`:确保复位时序满足PHY芯片要求(参考RTL8211F手册)。 ### 三、驱动配置 RTL8211F驱动在内核中通常位于: ```bash drivers/net/phy/realtek.c ``` 确认该驱动已编译进内核(`CONFIG_REALTEK_PHY=y`)。 ### 四、调试步骤 1. **检查PHY识别** 通过内核日志确认PHY是否被正确识别: ```bash adb shell dmesg | grep -i ethernet ``` 成功识别时输出: ```log gmac1: probed r8169 0000:01:00.0 eth0: RTL8211F at 0xffff9234c200, 00:11:22:33:44:55, IRQ 123 ``` 2. **测试MDIO通信** 使用`mdio-tool`验证与PHY的通信: ```bash adb shell mdio-tool -w eth0 0x0 # 读取PHY ID寄存器(地址0x0) ``` 正常应返回`0x001cc916`(RTL8211F的OUI)。 3. **网络功能测试** - 连接网线后执行: ```bash adb shell ifconfig eth0 up adb shell udhcpc -i eth0 # 获取IP地址 ping www.baidu.com ``` 4. **双工模式与速度** 若连接速度异常(如卡在100Mbps),检查: - 硬件布线是否满足千兆要求(差分对等长±100mil内)。 - 在DTS中强制设置速度(不推荐): ```dts rgmii_phy1: phy@0 { max-speed = <1000>; // 强制千兆 }; ``` ### 五、常见问题解决 | **现象** | **解决方案** | |------------------------|-----------------------------------------------------------------------------| | **PHY无法识别** | 1. 检查MDC/MDIO线路通断和上拉<br>2. 确认`reg`地址与硬件一致<br>3. 测量复位信号时序 | | **连接速度仅为100Mbps** | 1. 检查RGMII信号质量(用示波器测量TX/RX时钟)<br>2. 更换网线或网络变压器 | | **频繁断连** | 1. 检查电源纹波(<50mV)<br>2. 在DTS中增加`rx_delay`和`tx_delay`参数[^2] | ### 六、硬件设计建议 1. **RGMII布线规则** - TX/RX数据线长度差≤100mil,时钟线长度误差≤200mil。 - 远离高频信号(如USB/HDMI),避免串扰。 2. **电源滤波** - VDD33:并联10μF钽电容+100nF陶瓷电容。 - VDD12:使用LDO供电,纹波<30mV。 > 完成上述步骤后,RTL8211F应能正常工作。若仍失败,需用示波器测量RGMII信号时序是否符合规范。 --- ### §§相关问题§§ 1. RK3576的RGMII接口电气特性参数是什么? 2. 如何通过MDIO修改RTL8211F的内部寄存器? 3. RK3576 Android 14中如何配置以太网唤醒(Wake-on-LAN)? 4. RTL8211F的节能模式(EEE)如何启用? [^1]: RK3568-B2-ANDROID11-WIFI-RTL8821CU [^2]: rk3566-安卓11-千兆网卡 rtl8211f 移植 [^3]: RK3568平台(网络篇)WIFI模块RTL8821CU调试 [^4]: rk3399 Android 10.0调试 rtl8723ds 芯片</think>### RK3576 Android 14 调试 RTL8211F-CG 网络芯片指南 #### 一、硬件设计检查(关键基础) 1. **电源与复位电路** - 确认 **VDD33(3.3V)**、**VDDIO(1.8V/2.5V/3.3V)** 和 **VDD12(1.2V)** 电源稳定(波动≤±5%) - 检查复位信号(RST#)时序:上电后保持低电平至少10ms(参考RTL8211F手册)[^2] 2. **MDI接口与网络变压器** - 差分线对(TX±/RX±)需100Ω阻抗匹配,长度偏差≤100mil - 网络变压器中心抽头电压需与PHY配置一致(通常3.3V或2.5V) 3. **管理接口(MDC/MDIO)** - 确认MDC时钟频率≤2.5MHz(默认1.6MHz) - MDIO需4.7kΩ上拉至VDDIO #### 二、设备树(DTS)配置 在 `rk3576.dtsi` 中添加以太网节点(参考RK3566/RK3568设计[^2][^4]): ```dts &gmac1 { status = "okay"; phy-mode = "rgmii"; // 根据硬件连接选择模式 clock_in_out = "output"; // PHY提供时钟给MAC snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; // 复位引脚 snps,reset-active-low; snps,reset-delays-us = <0 10000 50000>; // 复位时序: 延时0us,复位10ms,释放后延时50ms assigned-clocks = <&cru SCLK_GMAC1_RX_TX>; // 时钟分配 assigned-clock-parents = <&cru CLK_MAC1_2TOP>; // 时钟源 pinctrl-names = "default"; pinctrl-0 = <&gmac1_miim &gmac1_tx_bus2 &gmac1_rx_bus2 &gmac1_rgmii_clk &gmac1_rgmii_bus>; // 引脚复用 }; &mdio1 { status = "okay"; rgmii_phy: phy@0 { // PHY地址需根据硬件设计修改 compatible = "ethernet-phy-id001c.c916"; // RTL8211F ID reg = <0x0>; // MDIO地址 reset-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; // 与MAC节点一致 reset-assert-us = <10000>; // 复位时间10ms reset-deassert-us = <50000>; // 复位释放延时 }; }; ``` #### 三、驱动层配置 1. **内核配置** 启用RTL8211F驱动: ```bash Device Drivers → Network device support → PHY Device support → Drivers for Realtek PHYs → [*] Realtek RTL8211F PHY ``` 2. **LED模式配置(解决单灯问题)** 修改驱动文件 `drivers/net/phy/realtek.c`: ```c // 在 rtl8211f_config_init() 函数中添加: phy_write(phydev, RTL8211F_PAGE_SELECT, 0xd04); // 切到LED控制页 phy_write(phydev, 0x10, 0x617f); // 配置双LED模式(黄+绿) phy_write(phydev, RTL8211F_PAGE_SELECT, 0x0); // 切回默认页 ``` 参考RTL8211F手册寄存器配置[^2] #### 四、调试步骤 1. **硬件信号检测** ```bash adb shell "cat /sys/kernel/debug/regulator/regulator_summary" # 检查PHY供电 adb shell "ifconfig eth0 up" # 启用网口 ``` - 用示波器测量: - **25MHz时钟**:抖动≤100ps - **RGMII信号**:上升/下降时间≤1ns 2. **MDIO寄存器调试** 使用 `mdio-tool` 读写PHY寄存器: ```bash adb shell mdio-tool -w eth0 0x1f 0x0d04 # 切到LED控制页(0xd04) adb shell mdio-tool -w eth0 0x10 0x617f # 写LED控制寄存器 adb shell mdio-tool -r eth0 0x10 # 读寄存器值 ``` 3. **网络功能测试** ```bash adb shell ping -I eth0 8.8.8.8 adb shell iperf3 -c <server_ip> -i 1 -t 10 # 千兆带宽测试 ``` #### 五、常见问题解决 | **现象** | **解决方案** | |------------------------|-----------------------------------------------------------------------------| | **PHY无法识别** | 1. 检查MDC/MDIO通断和上拉<br>2. 确认`reg`地址与硬件一致<br>3. 测量复位信号时序 | | **仅黄灯亮** | 配置PHY寄存器`0x10`的LED模式(参考0x617f值)[^2] | | **千兆模式不稳定** | 1. 检查RGMII信号等长(偏差≤100mil)<br>2. 在DTS中增加`rx_delay`和`tx_delay`参数 | | **热插拔后不识别** | 在DTS中增加 `reset-delays-us = <0 20000 100000>;` 延长复位时间 | #### 六、硬件设计建议 1. **PCB布局** - RGMII信号走线长度≤2000mil,组内等长差≤100mil - 电源滤波:VDD33并联10μF钽电容+100nF陶瓷电容 2. **网络变压器** - 选用支持1Gbps的型号(如HX5008NL) - 中心抽头电压与PHY配置一致(通过`phy-supply`指定) > 通过上述步骤完成调试后,使用`ethtool eth0`确认连接状态: > ``` > Speed: 1000Mb/s > Duplex: Full > Link detected: yes > ``` --- ###
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值