This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

am335x RMII LAN8720 丢包



各位好,最近在调网卡驱动,使用LAN8720,RMII接口,现在是可以自动分配到IP地址,也能ping通,但是ping的过程中会有30%左右的丢包现象,很是头疼,一直找不到问题点在哪里。不知各位有没有什么好的建议。期望任何回复。

其中软件上试了下sdk8.0和sdk0406的现象都一样。,硬件部分原理图如下:

  • 看看晶振是否稳定干净

  • Yaoming Qin

    感谢回复!晶振使用的是25MHz的,20ppm的,用示波器看了下没感觉有什么比较明显的不稳定。跟硬件工程师商量了下换个10ppm的晶振试试看。有结果再回复。但愿能好。

    另外我软件中,sdk4.6中只改了三处,如下所示,不知道还有没有其它需要设置的?比如说时钟什么的、或者是需要自己实现一些函数??

    1.引脚配置:

    static struct pinmux_config rmii1_pin_mux[] = {
    	{"mii1_crs.rmii1_crs_dv", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT},
    	{"mii1_rxerr.mii1_rxerr", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT},
    	{"mii1_txen.mii1_txen", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
    	{"mii1_txd1.mii1_txd1", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
    	{"mii1_txd0.mii1_txd0", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
    	{"mii1_rxd1.mii1_rxd1", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT},
    	{"mii1_rxd0.mii1_rxd0", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT},
    	{"rmii1_refclk.rmii1_refclk", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
    	{"mdio_data.mdio_data", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
    	{"mdio_clk.mdio_clk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT_PULLUP},
    	{NULL, 0},
    };

    2.设定evmid

    am33xx_evmid_fillup(BEAGLE_BONE_OLD);

    3.初始化设备

    am33xx_cpsw_init(0);

     

  • 另外将速度降到10M后,丢包率会下降到10%以下,但还是有丢包。不知道这种情况能不能帮助确定问题在哪里??

  • 如果能够ping通,说明软件配置是好的。

    丢包率高,最好能检查下硬件,我们的demo板用的是8710,和这个差不多,你可以对照下PCB部分,看看走线并且检查下电容电阻

  • 感谢回复!

    今天换了10ppm的晶振,效果基本没有变化。

    之前的板子也是用的8710,同一个硬件工程师设计并且画图,他查了一下,也没查到哪里有问题。之前的8710是没有丢包问题的。所以很是无奈。

    下面我再贴几张清晰点的大图吧,希望能帮忙看看!不胜感激!

     

    盼复!

  • 您好,请问您的问题解决了吗?我也在调Lan8720。问题跟您的一样。能够ping,100M的情况下是30%左右的丢包率。10M的时候是5%左右的丢包率。请问您那个检查出问题了没?

  • 检查PHY芯片的外围电容电阻的值是否合适,以及硬件设计。
  • 还有没有其他解决思路。因为外围电路都检查过了,layout也检查过,就没有找到解决方法。下面是LAN8720的电路图,能不能帮我看一下。