RTL8211千兆网PHY芯片LED灯配置

配置目标:
(1)绿灯表示连接状态,插上网线绿灯常亮,拔出网线绿灯熄灭。
(2)黄灯表示数据包收发状态,收发数据包时黄灯闪烁,空闲时黄灯熄灭。

【RTL8211FD】

假设绿灯接的是LED2,黄灯接的是LED1。
那么绿灯应该配置为:10/100/1000Mbps Link Indication => 0x0b << (5 * 2)
黄灯应该配置为:10/100/1000Mbps Link Indication + Active Indication => 0x1b << (5 * 1)

特别注意,RTL8211FD不能只配置Active Indication,不带Link Indication,如下图所示,只使能Active位是不允许的(N/A)。

由于无法单独使用Active位,黄灯平时无法熄灭。不过我们可以使用EEE节能指示。
当网络空闲时,网口进入EEE节能状态,只要将黄灯的EEE指示设为1,绿灯的EEE指示设为0,我们就达到目的了。

// 网口LED灯的序号
#define GREEN_LED 2 // 绿灯是LED2
#define YELLOW_LED 1 // 黄灯是LED1

// 配置网口LED灯
XAxiEthernet_PhyWrite(&xaxieth, PHY_ADDR, 31, 0xd04);
temp = 0x0b << (5 * GREEN_LED); // 绿灯表示连接状态
temp |= 0x1b << (5 * YELLOW_LED); // 黄灯表示数据包收发状态
XAxiEthernet_PhyWrite(&xaxieth, PHY_ADDR, 0x10, temp);
temp = 1 << (YELLOW_LED + 1); // 绿灯不指示EEE节能状态, 插了网线后灯要常亮
                            // 但黄灯要指示EEE节能状态, 没有数据包时灯要熄灭
XAxiEthernet_PhyWrite(&xaxieth, PHY_ADDR, 0x11, temp);
XAxiEthernet_PhyWrite(&xaxieth, PHY_ADDR, 31, 0);
// 插上网线后, 绿灯常亮; 拔掉网线后, 绿灯熄灭
// 链路支持EEE节能: 有数据传输, 黄灯闪烁, 否则熄灭
// 链路不支持EEE节能: 有数据传输, 黄灯闪烁, 否则常亮

【RTL8211EG】

和RTL8211FD不同,RTL8211EG是支持单独配置为Active指示的。所以在任何链路下,我们都能满足要求(2)。
不过为了满足要求(1),保证绿灯不会因EEE节能而熄灭,最好将绿灯的LEDx EEE Enable位设为0。

  • 10
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巨大八爪鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值