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);
}

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章