在使用飛凌嵌入式RK3568核心板搭配自制底板時(shí),由于PCB走線與參考設(shè)計(jì)存在差異,常導(dǎo)致RGMII接口時(shí)序異常,進(jìn)而出現(xiàn)網(wǎng)口不通或頻繁丟包的情況。本文將為大家提供一套簡單高效的調(diào)試方案,通過三步操作即可解決此類問題。
1、測試條件
① 硬件:飛凌嵌入式RK3568核心板;
② 系統(tǒng):Linux4.19.206;
③ 底板:用戶自制底板,且底板設(shè)計(jì)基本遵循飛凌提供的RK3568核心板參考原理圖,但PCB走線存在差異;
④ 問題:網(wǎng)口無法連接或網(wǎng)絡(luò)丟包現(xiàn)象嚴(yán)重。

2、調(diào)試步驟
① 確認(rèn)系統(tǒng)節(jié)點(diǎn)(以RK3568為例)
?進(jìn)入目錄:/sys/devices/platform/fe300000.ethernet
?確認(rèn)存在以下關(guān)鍵節(jié)點(diǎn):
phy_lb_scan rgmii_delayline phy_lb
② 掃描Delayline窗口(獲取中間值)
重要提示:如果使用RTL8211E PHY 芯片,測試前務(wù)必拔掉網(wǎng)線!
?使用1000M (千兆)速率進(jìn)行掃描:
echo1000> phy_lb_scan
?命令執(zhí)行完成后,終端會(huì)輸出掃描結(jié)果,包含兩個(gè)關(guān)鍵參數(shù):tx_delay 和 rx_delay(例如:tx_delay=0x2e rx_delay=0x0f)。
?記錄這兩個(gè)值。
③ 測試掃描得到的Delayline值
?將步驟2中掃描得到的tx_delay和rx_delay值寫入rgmii_delayline節(jié)點(diǎn)進(jìn)行臨時(shí)配置:
echo > rgmii_delayline #例如:echo0x2e0x0f > rgmii_delayline
?驗(yàn)證配置是否生效:
catrgmii_delayline #應(yīng)顯示剛寫入的值
?使用phy_lb節(jié)點(diǎn)進(jìn)行回環(huán)測試 (Loopback Test),驗(yàn)證TX/RX數(shù)據(jù)傳輸是否正常:
echo1000 > phy_lb #使用千兆速率測試
?關(guān)鍵要求:
必須 確保phy_lb回環(huán)測試通過 (pass)。這是后續(xù)操作的基礎(chǔ)。如果測試失敗,可能需要重新掃描或檢查硬件。
④ 固化配置到設(shè)備樹(DTS)并燒寫固件
?在 phy_lb 測試通過后,將測試有效的 tx_delay 和 rx_delay 值寫入設(shè)備樹源文件(DTS)中的GMAC節(jié)點(diǎn)。
?找到RK3568的DTS文件中定義gmac的部分(通常在rk3568.dtsi或板級(jí)DTS文件中)。
?修改tx_delay和rx_delay屬性值為測試通過的值:
&gmac { assigned-clocks = <&cru SCLK_RMII_SRC>; assigned-clock-parents = <&clkin_gmac>; clock_in_out ="input"; phy-supply = <&vcc_lan>; phy-mode ="rgmii"; pinctrl-names ="default"; pinctrl-0= <&rgmii_pins>; snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; snps,reset-active-low; snps,reset-delays-us = <0?10000?50000>; tx_delay = <0x2e>; //替換為掃描測試得到的有效tx_delay值(十六進(jìn)制) rx_delay = <0x0f>;//替換為掃描測試得到的有效rx_delay值(十六進(jìn)制) status ="okay"; };
?重新編譯包含修改后DTS的內(nèi)核或完整固件。
?將新固件燒錄到 RK3568核心板。
⑤ 最終驗(yàn)證
?設(shè)備啟動(dòng)后,進(jìn)行網(wǎng)絡(luò)連接測試:
使用ping命令測試網(wǎng)絡(luò)連通性和穩(wěn)定性。
使用iperf3等工具進(jìn)行網(wǎng)絡(luò)帶寬和性能測試,檢查是否還存在丟包。
?一般情況下,完成以上步驟并驗(yàn)證通過后,網(wǎng)口不通或丟包問題應(yīng)得到解決。
3、重要提示
① 操作風(fēng)險(xiǎn):
修改RGMII delayline 參數(shù)是底層硬件調(diào)優(yōu)。錯(cuò)誤的參數(shù)可能導(dǎo)致網(wǎng)口完全失效。強(qiáng)烈建議在操作前備份原始固件和DTS文件。
② 測試必要性:
步驟3 (phy_lb回環(huán)測試)必須通過才能將參數(shù)寫入 DTS。跳過此測試直接固化參數(shù)風(fēng)險(xiǎn)極高。
③ 硬件差異:
此方法主要解決因PCB走線差異引起的時(shí)序問題。如果自制底板與參考設(shè)計(jì)差異很大,或者存在其他硬件故障,此方法可能無效。
④參數(shù)值:
示例中的0x2e和0x0f僅為說明格式,必須使用phy_lb_scan掃描并結(jié)合phy_lb測試驗(yàn)證得到的實(shí)際有效值。
4、總結(jié)
當(dāng)用RK3568自制底板遇到因PCB走線差異導(dǎo)致的RGMII時(shí)序跑偏問題時(shí),使用“掃描-驗(yàn)證-固化”三步急救:echo掃描最佳tx/rx_delay → phy_lb回環(huán)驗(yàn)證 → DTS一鍵寫入,即可讓崩潰的網(wǎng)口原地復(fù)活。
飛凌嵌入式FET3568-C核心板基于Rockchip RK3568處理器開發(fā)設(shè)計(jì),該處理器是Rockchip面向于AIoT和工業(yè)市場打造的一款高性能、低功耗、功能豐富的國產(chǎn)化應(yīng)用處理器。四核64位Cortex-A55架構(gòu),主頻高達(dá)2.0GHz,且內(nèi)置1TOPS算力NPU,而且經(jīng)過了嚴(yán)苛的環(huán)境溫度測試、壓力測試、長期穩(wěn)定性運(yùn)行測試,確保其工作的穩(wěn)定可靠。
-
嵌入式
+關(guān)注
關(guān)注
5186文章
20131瀏覽量
328264 -
AI
+關(guān)注
關(guān)注
89文章
37974瀏覽量
295805 -
VLMx234
+關(guān)注
關(guān)注
0文章
2瀏覽量
5725 -
大模型
+關(guān)注
關(guān)注
2文章
3434瀏覽量
4953 -
LLM
+關(guān)注
關(guān)注
1文章
340瀏覽量
1256
發(fā)布評(píng)論請(qǐng)先 登錄
鴻蒙OpenHarmony【標(biāo)準(zhǔn)系統(tǒng)編譯】 (基于RK3568開發(fā)板)
用RK3568自制底板狂丟包?5分鐘教你用Delayline一鍵復(fù)活網(wǎng)口
【HZ-RK3568開發(fā)板免費(fèi)體驗(yàn)】合眾HZ-RK3568開發(fā)板初次使用
RK3568掃描千兆網(wǎng)口延時(shí)TX RX出錯(cuò)請(qǐng)問該怎么解決這個(gè)問題
一文解析RK3568編譯OpenHarmony
RK3568系統(tǒng)手動(dòng)/自動(dòng)調(diào)整千兆網(wǎng)口延時(shí)TX RX的步驟簡析
HD-RK3568-IOT板千兆網(wǎng)性能測試
迅為RK3568開發(fā)板 OpenHarmony v3.2-Beta4 版本測試
RK3568底板PCB設(shè)計(jì)總結(jié)
ROC RK3568 PC源代碼RK3568/RK3588 RKNN SDK

RK3568自制底板狂丟包?教你5分鐘用Delayline一鍵復(fù)活網(wǎng)口
評(píng)論