大家好,欢迎来到IT知识分享网。
双网卡调试记录
1.主链路:
2.链路原理:
主要目的是完成由MCU控制的yt8531,实现该phy的光电转换,输入可以是光信号或者插入光信号的电信号;
将光信号变成电信号;然后经过rk3399控制的yt8531;
3.yt8531寄存器介绍:
寄存器类型及访问方法:
分三类:
MII 寄存器( Media independent interface MII register,以下简写为 mii_reg)
Ext扩展寄存器( extendedregister,以下简写为 ext_reg)
MMD 寄存器(MDIO Managable Device 简写为 mmd_reg)
地址空间:
//ext 寄存器写
void yt8531s_ext_write(uint8_t phyaddr, uint16_t regaddr, uint16_t data)
{
yt8531_mdio_write(phyaddr,0x1e,regaddr);
yt8531_mdio_write(phyaddr,0x1f,data);
}
//ext 寄存器读
uint16_t yt8531s_ext_read(uint8_t phyaddr, uint16_t regaddr)
{
uint16_t data=0;
yt8531_mdio_write(phyaddr,0x1e,regaddr);
data=yt8531_mdio_read(phyaddr,0x1f);
return data;
}
MII寄存器写
void yt8531_mdio_write(uint8_t phyaddr, uint8_t regaddr, uint16_t data)
MII寄存器读
uint16_t yt8531_mdio_read(uint8_t phyaddr, uint8_t regaddr)
注意:读写
3.1访问ext寄存器时(包括 commom ext 跟sds ext,及phy ext);用法如下:
写: yt8531s_ext_write(phyaddr, regaddr, data)
或者 yt8531_mdio_write(phyaddr,0x1e,regaddr);
yt8531_mdio_write(phyaddr,0x1f,data);
读: yt8531s_ext_read(phyaddr, regaddr)
yt8531_mdio_write(phyaddr,0x1e,regaddr);
data = yt8531_mdio_read(phyaddr,0x1f);
3.2访问SDS MII寄存器
必须先切换数据到SDS yt8531s_ext_write(phyaddr,0xa000, 0x2)
写: yt8531_mdio_write(phyaddr, regaddr, data);
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/147867.html