altera的triple speed ethernet megacore function 的寄存器配置?
本帖最后由 atom100 于 2015-1-23 19:39 编辑请教 :如下图所示 triple speed ethernet megacore function 的mdio_addr0 和 mdio_addr1 到底是啥意思 ?谁用过
两个PHY连接在一条总线上,只用一个 地址寄存器 mdio_addr0 不就可以寻址 32个 PHY了,为何 又加个寄存器mdio_addr1??
ADDR1应该是PHY Device的地址 ADDR2应该是PHY内部寄存器的地址 mdio mdc就是i2c通信,有设备地址和寄存器地址两个 楼上的回答让我深受启发 本帖最后由 atom100 于 2015-1-25 23:25 编辑
DepravedLucien 发表于 2015-1-24 10:31
ADDR1应该是PHY Device的地址 ADDR2应该是PHY内部寄存器的地址
问题不在这里啊,addr1是PHY的地址,这个已经确定了,现在是 需要有两个寄存器mdio_addr0和mdio_addr1 给addr1赋值???(注意 看我红线画的位置:mdio_addr0和mdio_addr1两个寄存器 都指向addr1啊?按说一个寄存器 不就够了) 图上两个phy 当然需要两个地址了,你要是有三个phy 类推下去还有mdio_addr2。
就是一个 0到31的常数 atom100 发表于 2015-1-25 23:23
问题不在这里啊,addr1是PHY的地址,这个已经确定了,现在是 需要有两个寄存器mdio_addr0和mdio_addr1 给 ...
你是不是理解有误,mdio_addr0,mdio_addr1是PHY地址的值,要把它们配置到ADDR1中的。ADR1的值可以赋值多达32个,因为外面可以接32个phy。 图中有两个phy,就有两个phy地址咯, atom100 发表于 2015-1-25 23:23
问题不在这里啊,addr1是PHY的地址,这个已经确定了,现在是 需要有两个寄存器mdio_addr0和mdio_addr1 给 ...
不好意思,我理解错了。我看了下手册,用一个应该是可以的,两个是是为了faster access。具体请看 user guide(12.0版) 4-20页 PHY Management
页:
[1]