原创 向Nios II系统中添加以太网PHY驱动

2011-8-23 12:15 5103 13 13 分类: FPGA/CPLD

前些天和晓亮师兄一起调试Nios II系统,目标是通过Nios II内置的TSE MAC控制Micrel公司的以太网交换机芯片KSZ8893。由于KSZ8893模式,所以可以通过在TSE的源代码中添加对应KSZ8893的相关驱动来完成对其的控制。

通过参考altera公司提供的TSE MAC IP的手册得知,只需要修改altera_avalon_tse.h以及altera_avalon_tse.c两个文件即可。具体修改位置如图12所示。只需要在代码下方添加相应结构即可。

鉴于调试过程中遇到过的问题,在这里有几点提示:一、在altera_avalon_tse.h中枚举结构中的代码在有些PHY芯片中需要自己通过PHYID HIGHPHYID LOW32位换算得到,其中高22位为OUI,接下来6位为MODEL,再接下来4位为REV。二、某些PHY芯片可能有多种配置寄存器的方式,如MIIMI2CSPI等,它们配置寄存器的配置地址空间地址映射可能不同,所以在修改altera_avalon_tse.c结构体中的相关参数时需要注意。

    下面说一下在Quartus II 11.0中使用DP83848C的一些注意事项。附图所截图是Quaruts II 11.0中的代码,通过与之前版本(如Quartus II 8.0)中DP83848C的结构体进行对比发现在11.0的版本中忽略了状态寄存器地址等信息,而是添加了一个特殊状态寄存器地址的指针,如图3所示,通过MDIO来读取状态寄存器的内容,获得speedduplex相关信息,从而判断link的状态。所以在Quartus II 11.0中若想使用DP83848进行设计,必须在TSE中勾选MDIO选项,否则系统不能正常工作。

tse_h.PNG

                      1    

tse_c.PNG

                                                         2

dp83848.PNG

                                3

 

文章评论0条评论)

登录后参与讨论
我要评论
0
13
1
2
3
4
5
6
7
8
9
0
关闭 站长推荐上一条 /4 下一条