AM335x+AR8031网口可link但是ping不通是为什么

问题:

参考ti AM335x SSK开发板先做了一版实验板,做了四块(机器贴的)四块网口都能用,后来做核心板,原理图和开发板和实验板是一样的,手焊了两块核心板网口都ping不通,
打印信息如下:
U-Boot# ping 192.168.1.100
link up on port 0, speed 1000, full duplex
Using cpsw device
ping faiLED; host 192.168.1.100 is not alive
U-Boot# 
原理图是RGMII 千兆模式,原理图见附件
测试发现AM335X_RGMII1_TXCLK这个引脚启动时是10MHz,ping一下然后就变成50MHz 了,这个是不正常的,
实验板这个引脚启动时是25MHz,ping一下就变成125MHz,这是对的,
用的uboot代码是一模一样的。
现在就是不知道这个问题是那引起的?

分析:

软件没改过,一模一样的,
25M-->>10M    125M-->>50M,目前的时钟是正常的0.4倍,所以我怀疑是Core PLL输出频率的问题,这个CORE_CLKOUTM5正常应该是250M,可能是我的板子这个值是100M,但是CORE_CLKOUTM5这个值是由谁决定的那?我搞不明白了

解决:

是因为AM335x和PMIC  I2C没通讯上导致的,SCL 和SDA没加上拉电阻,而u-boot中这两个管脚设置又是下拉模式,加上上拉电阻或者把引脚改成上拉模式就行了。

因為PMU沒配置好MPU在代碼內會進入OPP50, ethernet會有問題.

正常应该进入OPP100,结果没有跟PMU通讯上所以进入OPP50,导致网口时钟不对

如果没有使用电源管理芯片,可以在MLO中将时钟配置,即可

__weak void am33xx_spl_board_init(void)
{
    do_setup_dpll(&dpll_core_regs, &dpll_core_opp100);
    do_setup_dpll(&dpll_mpu_regs, &dpll_mpu_opp100);
}

 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值