以太网

时间:2024-03-15 22:26:36

以太网是802.3的封包,其实去掉物理层网络层传输层的那层皮,不管是80几的,到了应用层一样是http ftp  scp rtmp mqtt。。。。各种

上层问题基本无,有也是应用的问题,目前的IPC基本都是socket,很少用dbus,上层去看看了

我其实主要是看搭载上的,是的。。能用就行

 

以太网不通,以太网传的慢,概率性掉比较多

主要有主控的MAC 和PHY芯片的问题,因为真他妈太多条线了,硬件问题多

 

MAC和PHY接线主要有 MII RMII GMII RGMII 

 

MII  25M 4根线      tx clk   rx  clk          百兆网  25*4 =100M

RMII  50M 2根线    ref clk                    百兆网 50*2=100M

GMII 125M 8根线   gtx clk   rx clk         千兆网 125*8=1000M

RGMII   125M 4根线  rx clk  tx clk        千兆网 125*4*2(上升沿,下降沿都传数据) =1000M

以太网

以太网

 

用RK的ic,一般原理图也就是这几款验证过了,所以基本LAN8720和RTL8211用的比较多

 

以太网

 

如图就是8211的PHY CLK的两个引脚,这两个脚和MAC CLK是怎么接的呢?

 

以太网

就是这样接的,如果由MAC提供CLK的话,R129就要接上,如果由PHY提供CLK的话,就是和上图一样直接NC就Ok

看得有点麻烦,其实如果是PHY由外部提供CLK的话,PHY_CLKOUT就相当于废了,就是这样理解。

 

DTS上的配置是根据硬件来配置的,比如一开始的接口是RGMII的接线,板子就是这样接的,一根根的线,那么就要配置

成为RGMII,改成GMII那不对了,除非改成GMii接线,还有就是CLK的配置,也是根据硬件接线来改,并不能下发指令让phy成为输入或者输出,要用配置引脚来配置,具体看datasheet。

以太网

 

1、看连线是否都连上

具体连线:

 

-----------------RTL8211-----------千兆网----------

PHY(左侧)    MAC(右侧)

xtal1或者clkout   mac_clk(一起连,外部不接自激电路就直接mac_clk给,dts上设置output直接给xtal1,百兆网是25M,千兆网是125M)

tx0 - tx0

tx1 - tx1

tx2 - tx2

tx3 - tx3

txen- txen

txclk-txclk

rx0 - rx0

rx1 - rx1

rx2 - rx2

rx3 - rx3

rxen-rxen

rxclk-rxclk

rxdv-rxdv

mdio-mdio

mdc-mdc

GPIO - phy rst

注意每根线都得连上,少连一根都会找不到phy设备,还有rst也要看看有没有使能,如果吞吐有问题再调tx rx delay

---------------lan8720A-------------百兆网--------

LED1_AD1 接下拉的时候 INTB才会输出CLK(接25M晶振,内部倍频 INTB输出50M)

DNP(do not populate)不焊接的意思,LED0_AD0接下拉是设置芯片地址为0

phy mac

xtal1 mac_clk

tx0 - tx0

tx1 - tx1

//tx2 - tx2

//tx3 - tx3

txen- txen

//txclk-txclk

rx0 - rx0

rx1 - rx1

//rx2 - rx2

//rx3 - rx3

//rxen-rxen

//rxclk-rxclk

rxdv-rxdv

rxer-rxer

mdio-mdio

mdc-mdc

gpio - phy rst

 

2、检查是否由MAC CLK或者 PHY CLK 出来

 

3、在看一下tx delay rx delay

https://github.com/Poco-Ye/rk-ethernet

 

4、引脚复用或者设置上拉