6口交换机芯片RTL8306和FPGA的开发

#RTL8306的功能简介
RTL8306具有5个PHY(PHY0、PHY1、PHY2、PHY3、PHY4)和6个MAC(MAC0、MAC1、MAC2、MAC3、MAC4、MAC5),其中PHY4和MAC5可以输出到MII/RMII2,MAC4可以输出到MII/RMII1。但是PHY4和MAC4也可以配置为UTP端口,即网口。
RTL8306内部功能框图
PHY4和MAC5可以输出到MII/RMII2,MAC4可以输出到MII/RMII1

RTL8306是6口交换机芯片,有5个PHY和6个MAC。具有多种应用方式。
例如:
情况1:5个PHY做为网口输出,第6个MAC作为内部网口链接到FPGA或者CPU。
情况3:4个PHY作为网口输出,第5个PHY或者第5个MAC和第6个MAC作为两个MII接口连接到FPGA或者CPU。
除此之外还有很多的使用方式,可以通过5个配置管脚来选择使用方式,下面给出配置表
5个管脚的配置表
#我的使用场景
下面给出我的使用场景。我用的是情况1,5个PHY做为网口输出,第6个MAC作为内部网口链接到FPGA。管脚配置为01011:MII/RMII 2由MAC 5在MAC模式下使用; UTP中的端口4由MAC4/PHY4组成;或者MII/RMII 2由MAC 5在MAC模式下使用
在这里插入图片描述
##使用过程中遇到的问题和解决办法
问题一:FPGA没收到5个网口过来的数据,同时FPGA自己产生的数据也没有发送到网口。但是网口0到网口4都是互通的,即外部5个网口可以互通,但是和FPGA没有交互。

解决办法:MAC5和FPGA链接,但是MAC5默认是没有链接的,需要配置寄存器使能MAC5链接。

问题二:FPGA配置MAC5的reg22寄存器不成功,配完成后,读取PHY6 reg22时,返回的数据是16‘h0,说明读寄存器有问题,因为寄存器是有默认配置’h073F的。明显是没有读出数据。

解决办法:寄存器手册有坑!我读寄存器时用PHY0 reg16寄存器切换到页0读PHY6 reg22,这是错的。需要用PHY6 reg16寄存器切换到页0才可以写和读reg22。但是寄存器手册没有给出PHY6 reg16寄存器。这也是后面我在阅读网络寄存器时发现的,网络寄存器的0-15都是通用的,国际协议规定的!RTL8306的每一个PHY都有reg16寄存器,这个寄存器是用来切换本PHY的页。
MAC5 的寄存器配置

寄存器的配置Port0到Port4的寄存器都是默认自协商,支持100M/10M。和FPGA连接的MAC5需要配置寄存器,打开使能就可以正常使用了,这样FPGA就能通过MAC5和5个网口交换数据了。

寄存器配置信息
port0配置,全部都是默认配置
PHY0 REG0 : 16’h3100 自协商 全双工
PHY0 REG22 : 16’h877f 禁用优先
PHY0 REG24 : 16’h0ed1 开启发送、接收、学习

port1配置,全部都是默认配置
PHY1 REG0 : 16’h3100 自协商 全双工
PHY1 REG22 : 16’h877f 禁用优先
PHY1 REG24 : 16’h1ed2 开启发送、接收、学习
//PHY1 REG24 : 16’h1ad2 开启发送、开启学习、关闭接收

port2配置,全部都是默认配置
PHY2 REG0 : 16’h3100 自协商 全双工
PHY2 REG22 : 16’h877f 禁用优先
PHY2 REG24 : 16’h2ed4 开启发送、接收、学习

port3配置,全部都是默认配置
PHY3 REG0 : 16’h3100 自协商 全双工
PHY3 REG22 : 16’h877f 禁用优先
PHY3 REG24 : 16’h3ed8 开启发送、接收、学习
//PHY3 REG24 : 16’h36d8 关闭发送、开启学习、开启接收

port4配置,全部都是默认配置
PHY4 REG0 : 16’h3100 自协商 全双工
PHY4 REG22 : 16’h877f 禁用优先
PHY4 REG24 : 16’h4edf 开启发送、接收、学习

MII2配置,与FPGA链接,管脚配置工作在MAC模式
PHY6 REG0 : 16’h2100 100M、全双工
PHY6 REG16 : 16’h2100 跳到0页
PHY6 REG22 : 16’h873f 使能链接、关闭环回、关闭优先、禁用插入和删除标签
PHY6 REG24 : 16’h8eff 开启发送、接收、学习

实际上这五个管脚配置为01011和01001都是可以的,他们唯一的区别是两个时钟的方向不同。当MAC5配置为MAC模式(01011),这两个时钟管脚作为输入;当MAC5配置为MAC模式(01001),这两个时钟管脚作为输出。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值