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.

求助:AM3358连接DP83848

现在遇到的问题是,可以识别网卡,插拔网线也有反映,但是ping不通,通过示波器观察MII1_TXEN引脚一直处于低电平,并没有使能发送
硬件原理图是参考官网上提供的dp83848 with sh7710的原理图设计的,工作在mii模式,原理图暂时无法上传
以下是通过串口读出各寄存器信息,请帮忙看一下是什么问题
0:3100
1:7849
2:2000
3:5c90
4:1e1
5:0
6:4
7:2001
8:0
9:0
10:0
11:0
12:0
13:0
14:0
15:0
16:0
17:0
18:0
19:0
20:0
21:0
22:100
23:1
24:0
25:8021
26:804
27:0
28:0
29:6011
30:3f
 31:0
  • http://www.deyisupport.com/question_answer/dsp_arm/davinci_digital_media_processors/f/39/t/52243.aspx

  • 王工:

    参考电路原理图我发给eric了,他应该转给你了。

    建议先在u-boot下调试,对应要修改的驱动在:

    \board\ti\am335x\board.c和\board\ti\am335x\mux.c

    检查下:

    static struct cpsw_slave_data cpsw_slaves[] 结构体;

    board_eth_init()函数;

    enable_board_pin_mux()函数;

  • 周工:

        感谢您的回复,目前已经解决问题,硬件电路没有问题,问题出在软件的配置上

    问题就出在static struct cpsw_slave_data cpsw_slaves[] 结构体,结构体原来的初始化如下

    static struct cpsw_slave_data cpsw_slaves[] = {                                         
            {                                                                               
                    .slave_reg_ofs  = 0x208,                                                
                    .sliver_reg_ofs = 0xd80,                                                
                    .phy_id         = 0,                                                    
            },                                                                              
            {                                                                               
                    .slave_reg_ofs  = 0x308,                                                
                    .sliver_reg_ofs = 0xdc0,                                                
                    .phy_id         = 1,                                                    
            },                                                                              
    };    

    将其改为

    static struct cpsw_slave_data cpsw_slaves[] = {                                         
            {                                                                               
                    .slave_reg_ofs  = 0x208,                                                
                    .sliver_reg_ofs = 0xd80,                                                
                    .phy_id         = 1,                                                    
            },                                                                              
            {                                                                               
                    .slave_reg_ofs  = 0x308,                                                
                    .sliver_reg_ofs = 0xdc0,                                                
                    .phy_id         = 0,                                                    
            },                                                                              
    };  

    问题解决,网口可以正常工作,是因为DP83848这颗芯片id为0时工作于隔离模式的问题吗?          

  • 周工:

        感谢您的帮助,目前网口已经调试通过,硬件没有问题,问题在软件的配置上

    就是static struct cpsw_slave_data cpsw_slaves[] 结构体的问题

    该结构体默认配置为

    static struct cpsw_slave_data cpsw_slaves[] = {                                         
            {                                                                               
                    .slave_reg_ofs  = 0x208,                                                
                    .sliver_reg_ofs = 0xd80,                                                
                    .phy_id         = 0,                                                    
            },                                                                              
            {                                                                               
                    .slave_reg_ofs  = 0x308,                                                
                    .sliver_reg_ofs = 0xdc0,                                                
                    .phy_id         = 1,                                                    
            },                                                                              
    };  

    将其改为

    static struct cpsw_slave_data cpsw_slaves[] = {                                         
            {                                                                               
                    .slave_reg_ofs  = 0x208,                                                
                    .sliver_reg_ofs = 0xd80,                                                
                    .phy_id         = 1,                                                    
            },                                                                              
            {                                                                               
                    .slave_reg_ofs  = 0x308,                                                
                    .sliver_reg_ofs = 0xdc0,                                                
                    .phy_id         = 0,                                                    
            },                                                                              
    };  

    修改后,网口可以正常通信,问题是不是ID 0对于DP83848工作于隔离模式,所以不能正常工作?

  • 在U-boot下和kernel下网络都可以正常工作了么?

  • 周工你好

    我用的也是DP83848,我这边在uboot阶段的话,将MDIO、MDC等各个引脚地址已经配置完成了,PHYID也是OK的,现在是Uboot能够识别PHY芯片,但是不能ping通,麻烦问您一下uboot引脚配置后的PIN_INPUT_PULLUP这些值是如何根据实际情况进行配置呢,谢谢