計(jì)實(shí)戰(zhàn):從原理圖到PCB布局全流程)
做硬件這些年網(wǎng)口設(shè)計(jì)是繞不開的活。前陣子有個(gè)板子要用千兆以太網(wǎng)主控芯片帶RGMII接口PHY芯片我選了Realtek的RTL8211F(I)。這顆料在國產(chǎn)方案和消費(fèi)級產(chǎn)品里用得非常多文檔友好、供貨穩(wěn)定而且RGMII電平支持1.8V/2.5V/3.3V能直接匹配不同主控省掉電平轉(zhuǎn)換的麻煩。不過越常見的芯片越容易踩坑——管腳細(xì)、電源域多、高速信號(hào)對又密一點(diǎn)都不比FPGA那邊省心。這篇文章我就按實(shí)際項(xiàng)目的推進(jìn)順序從數(shù)據(jù)手冊怎么讀、原理圖怎么畫到Cadence環(huán)境下高密度器件的封裝怎么做、PCB布局布線的關(guān)鍵點(diǎn)以及最后調(diào)試時(shí)容易翻車的地方完整梳理一遍。無論你是剛接觸以太網(wǎng)PHY的硬件工程師還是想復(fù)刻一套千兆網(wǎng)口參考設(shè)計(jì)的老手都可以把這套流程當(dāng)模板用。1. 項(xiàng)目整體設(shè)計(jì)思路與芯片選型背景1.1 為什么選RTL8211F(I)這顆PHY以太網(wǎng)PHY篩選時(shí)我主要看三點(diǎn)接口類型、電平兼容性、信號(hào)完整性是否容易處理。RTL8211F(I)是Realtek單端口10/100/1000M自適應(yīng)以太網(wǎng)PHY后綴帶I代表工業(yè)級溫度范圍工作溫度能到-40℃到85℃對嵌入式設(shè)備比較友好。它支持RGMII和MII接口主控那邊只要有標(biāo)準(zhǔn)GMAC基本可以直接對接。RTL8211F(I)的封裝是QFN480.5mm引腳間距不算最密的但是引腳數(shù)量不少功能分組很細(xì)。它內(nèi)部集成了物理層編碼、DSP均衡、線路驅(qū)動(dòng)等功能外部只需要配合一顆25MHz晶振和網(wǎng)絡(luò)變壓器就能工作。相比老款的RTL8211E它在功耗和EMI表現(xiàn)上更好一些電源域也簡化了一般在1.0V核心電源下工作I/O電源可以單獨(dú)選擇。實(shí)際項(xiàng)目里我比較看重它的配置靈活度MDI引腳支持自動(dòng)交叉檢測PHY地址可以通過外部電阻設(shè)置調(diào)試時(shí)不用改板就能換地址這對多網(wǎng)口設(shè)計(jì)特別有用。選型完成后不要急著畫原理圖先把手冊里的功能框圖吃透。RTL8211F(I)內(nèi)部大致可以分成四個(gè)功能區(qū)塊MAC接口邏輯、物理編碼子層PCS、模擬前端AFE、電源管理。畫原理圖之前我先在紙上把這幾塊對應(yīng)的外部引腳列出來尤其是哪些引腳是輸入、哪些是輸出、哪些需要外部電阻配置心里有數(shù)之后再看數(shù)據(jù)手冊才不會(huì)亂。1.2 數(shù)據(jù)手冊到底該先讀哪里很多新工程師拿到幾百頁的數(shù)據(jù)手冊習(xí)慣從頭翻到尾往往看到一半就忘了重點(diǎn)。我推薦先看下面的路徑基本半小時(shí)就能抓到核心信息先看第1頁的Feature和Applications確認(rèn)芯片能干什么、適合什么場景。然后跳到芯片框圖理解內(nèi)部組成和主要信號(hào)流向。再翻到Pin Function Description把每一類引腳單獨(dú)抄到Excel或者紙上。接著看Recommended Application Circuit把參考電路和自己選的主控接口對應(yīng)上。最后看DC Characteristics和AC Timing確認(rèn)電壓、電流和時(shí)序裕量。RTL8211F(I)數(shù)據(jù)手冊里有一個(gè)比較隱蔽的部分是寄存器映射剛開始不用細(xì)看等調(diào)試時(shí)再查。但是電源引腳和配置引腳必須一開始就盯清楚這些地方錯(cuò)了原理圖基本要重畫。比如PHYAD[4:0]地址配置引腳手冊里會(huì)給出不同上下拉組合對應(yīng)的地址很多工程師偷懶用默認(rèn)值結(jié)果板子做回來發(fā)現(xiàn)MDIO訪問不到PHY最后查半天才發(fā)現(xiàn)是地址沖突。1.3 管腳分類與電源域梳理我習(xí)慣把RTL8211F(I)的引腳先按功能分組每組單獨(dú)對照手冊填表格。實(shí)際用到的引腳大約可以分成八類功能組典型引腳方向設(shè)計(jì)要點(diǎn)RGMII接口TXD[3:0]、RXD[3:0]、TX_CTL、RX_CTL、TXC、RXC輸入/輸出VDDIO決定I/O電平注意等長MDI接口MDI0P/MDI0N至MDI3P/MDI3N模擬差分需要變壓器100Ω差分阻抗電源DVDD10、AVDD10、PLL、VDDIO輸入多路電源必須各自濾波時(shí)鐘XI、XO輸入/輸出25MHz無源晶振或外部時(shí)鐘復(fù)位與配置NRST、PHYAD[4:0]、MODE[2:0]、ANEG等輸入/輸出上下拉電阻決定工作模式管理接口MDC、MDIO輸入/雙向MDIO需要上拉電阻LED指示LED0、LED1、LED2、LED3輸出可配置為速率/活動(dòng)指示其他TESTEN、SELRGV等輸入測試腳必須按手冊接固定電平電源引腳是最容易漏的。RTL8211F(I)的DVDD10是數(shù)字核心電源AVDD10是模擬核心電源PLL電源對紋波最敏感VDDIO則是RGMII和MDIO接口的電平參考。有些工程師習(xí)慣把同一個(gè)電壓域的幾個(gè)引腳直接連在一起然后只放一顆去耦電容這會(huì)導(dǎo)致電源噪聲耦合到模擬部分會(huì)出現(xiàn)高低溫下鏈路不穩(wěn)定或者速率掉到百兆的問題。2. 原理圖設(shè)計(jì)關(guān)鍵環(huán)節(jié)拆解2.1 電源樹設(shè)計(jì)與去耦電容配置RTL8211F(I)建議的供電結(jié)構(gòu)通常是這樣的系統(tǒng)先提供一個(gè)3.3V主電源然后通過一顆LDO或者小功率DC-DC降壓到1.0V給DVDD10和AVDD10供電VDDIO根據(jù)主控的接口電平接1.8V、2.5V或者3.3V。如果主控的RGMII電平是1.8VVDDIO就接1.8V如果主控是3.3V電平VDDIO就接3.3V。這個(gè)關(guān)系不能搞錯(cuò)否則輕則握手失敗重則燒壞PHY或主控引腳。去耦電容的配置要分三個(gè)層次來看。第一層是每顆電源引腳旁邊的100nF小電容必須盡量靠近引腳過孔到電容再到引腳的回路要短。第二層是每個(gè)電源域旁邊放一顆1uF到10uF的鉭電容或者M(jìn)LCC用于吸收低頻紋波。第三層是整個(gè)PHY供電入口處做一個(gè)小型π型濾波比如磁珠加兩級電容特別建議在模擬電源和PLL電源前面加磁珠把數(shù)字開關(guān)噪聲隔離開。實(shí)際畫板時(shí)DVDD10的引腳和AVDD10的引腳雖然都來自1.0V但布線要走星型拓?fù)洳荒芟葏R到一個(gè)點(diǎn)再分出去。我在工程中習(xí)慣給PLL電源單獨(dú)布置一個(gè)小平面面積大概和晶振區(qū)域相當(dāng)用一顆4.7uF和一顆100nF做去耦。這樣做的原因很簡單PLL對外部噪聲非常敏感RGMII接口頻繁翻轉(zhuǎn)時(shí)數(shù)字電源上產(chǎn)生的毛刺如果直接干擾到PLL會(huì)直接影響125MHz參考時(shí)鐘的抖動(dòng)進(jìn)而影響千兆鏈路穩(wěn)定性。2.2 時(shí)鐘電路與參考時(shí)鐘選擇RTL8211F(I)需要一個(gè)25MHz的參考時(shí)鐘。這里有兩種常用做法一種是直接用25MHz無源晶振接在XI和XO之間配合兩個(gè)負(fù)載電容另一種是用有源晶振輸出的25MHz或50MHz時(shí)鐘信號(hào)接到XIXO懸空。我一般偏向用無源晶振成本低而且在低抖動(dòng)場合完全夠用。無源晶振電路有兩點(diǎn)要注意。第一負(fù)載電容的取值必須按照晶振廠家推薦的CL值來計(jì)算不是隨手放兩個(gè)22pF就完事。如果手冊里給出的CL是18pF兩個(gè)電容串聯(lián)后的等效電容大約9pF還需要考慮芯片引腳雜散電容約2到3pF所以每個(gè)電容實(shí)際可以選33pF左右。具體可以根據(jù)晶振廠家規(guī)格微調(diào)但方向是讓晶振工作在并聯(lián)諧振點(diǎn)。第二晶振下面盡量不要走其他高速信號(hào)線晶振區(qū)域的地平面要完整外殼如果能接地最好接地減少對外輻射。如果項(xiàng)目里已經(jīng)有系統(tǒng)級的25MHz時(shí)鐘也可以從主控芯片直接引一個(gè)時(shí)鐘過來。這種情況下XO腳懸空XI腳接外部時(shí)鐘一般還需要加一顆端接電阻靠近PHY引腳。要注意外部時(shí)鐘的幅值必須滿足VIH/VIL要求不能直接用1.8V電平去驅(qū)動(dòng)一個(gè)需要2.5V高電平的時(shí)鐘輸入。2.3 RGMII接口連接與電平匹配RGMII是PHY和MAC之間最常用的千兆接口之一信號(hào)包括TXD[3:0]、TX_CTL、TXC以及RXD[3:0]、RX_CTL、RXC。這里的方向要特別注意從MAC視角來看TXD是發(fā)送數(shù)據(jù)連接到PHY的RGMII接收側(cè)從PHY來看這些引腳是輸入。畫原理圖時(shí)很容易被TXD這個(gè)名字帶偏以為PHY的TXD也是輸出。實(shí)際PHY的TXD[3:0]是接收MAC發(fā)送來的數(shù)據(jù)所以方向是輸入。反過來PHY的RXD[3:0]是PHY發(fā)送給MAC的數(shù)據(jù)方向是輸出。RGMII電平由VDDIO決定所以不需要加額外的電平轉(zhuǎn)換芯片。但是為了抑制振鈴和過沖我一般會(huì)在RGMII信號(hào)線上靠近源端串聯(lián)22Ω到33Ω的電阻。比如MAC輸出的TXD信號(hào)串聯(lián)電阻放在靠近MAC一側(cè)PHY輸出的RXD信號(hào)串聯(lián)電阻放在靠近PHY一側(cè)。串阻不一定要加但對信號(hào)完整性有幫助特別是在走線較長、拓?fù)浜唵蔚囊粚σ粓鼍跋录哟枘苡行p少反射。RGMII的時(shí)序在千兆模式下是DDR采樣TXC和RXD并行變化。數(shù)據(jù)手冊里通常會(huì)給出TXC到RXD的建立保持時(shí)間要求PCB設(shè)計(jì)時(shí)盡量讓同組信號(hào)長度一致。經(jīng)驗(yàn)做法是TXC和數(shù)據(jù)線之間的長度差控制在50mil以內(nèi)每根數(shù)據(jù)線之間差控制在100mil以內(nèi)。如果主控端支持RGMII內(nèi)部延遲模式PCB等長要求可以稍微放松但不要因此放棄等長設(shè)計(jì)。2.4 復(fù)位、配置引腳與MDIO管理接口復(fù)位引腳NRST在原理圖上看起來很簡單接一個(gè)RC復(fù)位到芯片即可。但RTL8211F(I)對上電時(shí)序有要求建議等到VDDIO電壓穩(wěn)定且時(shí)鐘穩(wěn)定后再釋放復(fù)位。如果直接用簡單的RC電路在電源上升時(shí)間很慢的系統(tǒng)里容易導(dǎo)致PHY復(fù)位不徹底。我一般傾向用專門的復(fù)位芯片或者用主控GPIO控制復(fù)位軟件可以在初始化時(shí)先拉低再拉高這樣最可靠。復(fù)位釋放后PHY還要延時(shí)一段時(shí)間才能訪問MDIO驅(qū)動(dòng)里加一個(gè)10ms左右的延時(shí)比較穩(wěn)。配置引腳包括PHYAD[4:0]地址、MODE[2:0]接口模式、ANEG自協(xié)商使能、SELRGV電平選擇等。這些引腳通常在復(fù)位釋放時(shí)被鎖存所以外部上下拉電阻必須在復(fù)位之前就穩(wěn)定。很多參考設(shè)計(jì)會(huì)把PHYAD[4:0]用排阻統(tǒng)一上拉到高電平或者下拉到低電平但不同板子最好根據(jù)實(shí)際地址分配來配置。比如系統(tǒng)里有兩個(gè)PHY一個(gè)地址設(shè)0x04另一個(gè)設(shè)0x05就必須分別設(shè)計(jì)上下拉網(wǎng)絡(luò)不能偷懶。MDIO管理接口是MDC和MDIO兩根線MDC是時(shí)鐘輸出由MAC側(cè)提供MDIO是雙向數(shù)據(jù)線需要外接上拉電阻。上拉電阻的阻值我一般取1kΩ到4.7kΩ根據(jù)MDIO總線上掛幾個(gè)PHY來決定。如果總線上只有一個(gè)PHY4.7kΩ沒問題如果掛多個(gè)PHY總線負(fù)載變大阻值可以取小一些但要注意MDC速率。MDC速度越高上拉電阻越小否則上升沿太緩會(huì)導(dǎo)致讀寫不穩(wěn)定。2.5 網(wǎng)絡(luò)變壓器與RJ45連接器選擇PHY的MDI引腳是四對差分線不能直接接RJ45必須經(jīng)網(wǎng)絡(luò)變壓器隔離。千兆以太網(wǎng)一般用1G Base-T變壓器常見型號(hào)有HALO、Pulse、Broadcom等內(nèi)部包含四對差分變壓器和共模電感。如果板子空間緊張也可以選用帶變壓器的RJ45座比如RJ45集成磁性模塊這種座子能省掉獨(dú)立的變壓器占板面積但成本會(huì)高一些。變壓器中心抽頭的接法要嚴(yán)格按照RTL8211F(I)參考電路來。不同廠商的PHY對中心抽頭接電源還是接地、接電容還是直接接要求都不一樣。RTL8211F(I)的參考設(shè)計(jì)通常是MDI側(cè)中心抽頭通過RC到地或者根據(jù)內(nèi)部Bias要求接一個(gè)特定電壓。這里千萬不能想當(dāng)然照搬其他PHY的電路否則會(huì)造成共模電壓不對Link不穩(wěn)定甚至不連。RJ45連接器選型時(shí)注意帶不帶屏蔽。帶屏蔽的連接器外殼要接到機(jī)箱地或者防護(hù)地通過高壓電容和數(shù)字地單點(diǎn)連接避免地環(huán)路噪聲干擾信號(hào)。不帶屏蔽的連接器省成本但EMI性能弱一些產(chǎn)品需要過認(rèn)證時(shí)盡量選帶屏蔽的RJ45。3. 高密度管腳器件的原理圖符號(hào)與PCB封裝設(shè)計(jì)3.1 Cadence Capture中快速創(chuàng)建高效原理圖符號(hào)RTL8211F(I)有48個(gè)引腳在Cadence Capture里如果做成一個(gè)方塊所有引腳擠在一起連線時(shí)眼睛容易花也容易漏線。我的做法是把原理圖符號(hào)拆成多個(gè)Part也就是用Capture里的Heterogeneous方式把一個(gè)芯片拆成三個(gè)部分?jǐn)?shù)字接口Part、模擬MDI Part、電源與配置Part。這樣每張?jiān)韴D里的符號(hào)都清爽很多模塊之間的連接關(guān)系也更清晰。具體操作是在新建Part時(shí)在Properties里把Package Type設(shè)置為Heterogeneous然后定義Number of Parts per Package為3。分別編輯Part A放RGMII和MDIO相關(guān)引腳Part B放MDI差分對和LEDPart C放電源、晶振、復(fù)位和配置引腳。每個(gè)Part都關(guān)聯(lián)同一個(gè)PCB Footprint引腳編號(hào)保持和封裝完全一致并且不能重復(fù)。拆Part時(shí)要注意引腳類型不能亂填。Capture里Pin Type有Input、Output、Bidirectional、Passive、Power等。如果引腳是電源腳但沒有填Power類型后續(xù)做DRC檢查時(shí)會(huì)報(bào)很多莫名其妙的錯(cuò)誤。我一般會(huì)把VDDIO、DVDD10這類電源引腳標(biāo)注為Power并且用不同顏色區(qū)分這樣原理圖看起來非常直觀審查時(shí)也更容易發(fā)現(xiàn)電源連接問題。3.2 Allegro PCB封裝設(shè)計(jì)與引腳間距檢查在Allegro里做QFN48封裝最關(guān)鍵的是焊盤尺寸和中心散熱焊盤。0.5mm pitch的QFN引腳焊盤寬度通常取0.25mm到0.30mm長度取0.70mm到0.85mm。具體數(shù)值要看芯片數(shù)據(jù)手冊末尾的Package Recommendations芯片本體引腳尺寸是固定的PCB焊盤會(huì)稍大一些方便焊接和檢查。我習(xí)慣把每個(gè)引腳焊盤相對于引腳中心向外延伸0.1mm左右這樣能避免焊接時(shí)橋連。中心散熱焊盤也不能照抄芯片底部的裸焊盤尺寸。芯片底部Exposed Pad是散熱和接地路徑PCB上的焊盤可以稍微比芯片底部大0.1到0.2mm但要均勻擴(kuò)展。為了防止大面積焊盤焊接時(shí)產(chǎn)生空洞我通常會(huì)在中心焊盤上開九宮格形狀的阻焊窗口而不是開一個(gè)完整的大窗口。鋼網(wǎng)層也對應(yīng)開幾個(gè)小方孔能有效控制錫膏量。封裝做完之后必須做幾何檢查重點(diǎn)是焊盤間距是否滿足制造規(guī)則。一般0.5mm pitch的QFN最小間距0.2mm左右如果焊盤長度過長相鄰焊盤之間的間隙就太小貼片廠會(huì)抗議??梢杂肁llegro的Report功能檢查每個(gè)焊盤之間的間距超過最小設(shè)計(jì)規(guī)則就要修改焊盤尺寸。3.3 封裝設(shè)計(jì)中的常見坑第一個(gè)坑是引腳編號(hào)錯(cuò)位。原理圖符號(hào)里的引腳編號(hào)和PCB封裝里的焊盤序號(hào)必須嚴(yán)格一一對應(yīng)哪怕只差一個(gè)腳芯片焊上去之后功能全亂。出網(wǎng)表之前我會(huì)用Capture的Annotate和DRC檢查一遍Pin Number是否關(guān)聯(lián)正確。第二個(gè)坑是中心焊盤和引腳焊盤的間距。有些工程師為了散熱把中心焊盤擴(kuò)大太多結(jié)果和周邊引腳間距小于0.2mm過回流焊時(shí)容易連錫。中心焊盤和引腳之間一般要留0.25mm以上的間隙同時(shí)用阻焊橋隔開。第三個(gè)坑是絲印和Assembly層。QFN封裝很小絲印線如果畫得太寬會(huì)把引腳區(qū)域蓋住影響焊接后AOI檢測。我通常把絲印線寬設(shè)為0.15mm并且放在封裝外框1腳標(biāo)識(shí)用一個(gè)小圓點(diǎn)加一條斜線這樣貼片機(jī)方向識(shí)別也方便。4. PCB布局與布線實(shí)操點(diǎn)4.1 布局原則從芯片到變壓器的信號(hào)流向布局決定了整板信號(hào)質(zhì)量特別是高速PHY這種混合信號(hào)器件。我常用的布局順序是先定PHY芯片位置讓RGMII接口到主控的距離盡量短MDI接口到變壓器的距離也盡量短。PHY放在主控和RJ45之間形成一條直線信號(hào)流MAC - RGMII - PHY - MDI - Transformer - RJ45。理想情況下變壓器放在靠近RJ45的一側(cè)距離RJ45引腳不要超過15mm這樣MDI差分對從變壓器出來到連接器的部分最短減少天線效應(yīng)。實(shí)際板子布局受限時(shí)至少保證RGMII走線不要繞太遠(yuǎn)MDI走線優(yōu)先保證差分質(zhì)量。如果RJ45和主控分別在板子兩側(cè)PHY位置要盡可能居中讓RGMII和MDI兩段信號(hào)都不要太長。電源電路也要統(tǒng)一安排。1.0V電源芯片放在PHY附近但不能放在MDI差分走線正下方否則開關(guān)電源的噪聲會(huì)通過空間耦合到差分信號(hào)上導(dǎo)致EMI測試超標(biāo)。去耦電容一定放在PHY電源引腳的背面或者同側(cè)非??拷奈恢眠@就是為什么布局階段就要把每個(gè)電容的位置先放好而不是布線時(shí)再隨手塞。4.2 RGMII信號(hào)布線要求RGMII是單端信號(hào)但在千兆DDR模式下速率并不低TXC頻率是125MHz數(shù)據(jù)線在上升下降沿都采樣。所以布線時(shí)不能按普通低速信號(hào)對待至少要保證以下幾點(diǎn)每根RGMII信號(hào)線盡量走完整的地平面參考層不要跨分割。組內(nèi)信號(hào)線間保持3W間距減少串?dāng)_。TXC和TXD、RXC和RXD分別做等長控制誤差盡量控制在50mil以內(nèi)。如果加了串聯(lián)電阻電阻擺放位置要靠近源端并且等長計(jì)算要包含電阻兩側(cè)的走線。遇到過不少板子原理圖沒問題但是RGMII等長沒做導(dǎo)致1000M模式下丟包嚴(yán)重。千兆R(shí)GMII對時(shí)鐘和數(shù)據(jù)之間的相對延遲很敏感雖然有些MAC和PHY支持Delay調(diào)整但先做好PCB等長能從源頭減少問題。如果走線比較長建議在PHY的RGMII接口附近放置一組過孔換層時(shí)在周邊放地過孔給信號(hào)提供回流路徑。4.3 MDI差分對與阻抗控制MDI是PHY和變壓器之間的高速差分信號(hào)走線必須按差分阻抗100Ω來設(shè)計(jì)。四對MDI線的對內(nèi)長度差要盡量小經(jīng)驗(yàn)范圍在5mil以內(nèi)對間長度差也不要超過50mil。如果板子是四層板差分線通常走頂層以第二層做完整地平面。兩層板也能做但要保證差分線下方的地平面盡量完整避免走線跨過電源分割區(qū)。差分線的線寬和間距要根據(jù)板廠提供的疊層來計(jì)算不同材質(zhì)、不同層厚的100Ω線寬差異很大。我打樣前會(huì)把PCB疊層參數(shù)發(fā)給板廠讓板廠幫忙確認(rèn)線寬間距是否符合100Ω阻抗如果板廠反饋有偏差及時(shí)調(diào)整規(guī)則。MDI走線在靠近PHY引腳位置最好不打折利用引腳扇出短距離進(jìn)入差分走線區(qū)。在靠近變壓器側(cè)同樣如此。如果必須在MDI上打孔換層一定要在過孔旁邊加地回流過孔否則差分信號(hào)的返回電流路徑斷裂共模輻射會(huì)增加。另外MDI差分對之間不要走其他信號(hào)線特別不要走晶振時(shí)鐘和電源開關(guān)節(jié)點(diǎn)。4.4 電源完整性與EMI處理PHY電源設(shè)計(jì)做得好EMI問題能少一半。我的經(jīng)驗(yàn)是RGMII數(shù)據(jù)翻轉(zhuǎn)時(shí)芯片內(nèi)部開關(guān)電流變化很快供電走線如果沒有足夠?qū)挼你~皮電源噪聲會(huì)直接耦合到MDI模擬前端。所以1.0V電源走線盡量寬至少能承載芯片峰值電流最好直接鋪一片銅皮給PHY的DVDD10和AVDD10區(qū)域再用磁珠把模擬AVDD10單獨(dú)從數(shù)字電源中隔離出來。PLL電源要作為一個(gè)獨(dú)立小島晶振周圍的地平面要完整。晶振不要放在板邊更不要離RJ45接口太近否則晶振諧波會(huì)串到網(wǎng)口線纜上EMI測試很容易不過。晶振下方可以鋪地銅皮并打幾個(gè)地過孔給晶振提供良好回流路徑。變壓器下方的地平面處理是個(gè)爭議點(diǎn)。有些參考設(shè)計(jì)建議在變壓器下方把數(shù)字地挖掉只保留連接器機(jī)殼地用來隔離共模噪聲。但這種做法如果處理不好反而會(huì)割裂信號(hào)回流路徑。我更推薦的做法是變壓器下方的數(shù)字地平面保留完整變壓器初級和次級之間有隔離帶和磁珠RJ45外殼連接到機(jī)殼地機(jī)殼地和數(shù)字地之間通過高壓電容連接。這樣做既能兼顧ESD又不容易出現(xiàn)地彈問題。4.5 從自動(dòng)規(guī)劃到人工修正的思路現(xiàn)在很多EDA工具也出了AI輔助布局布線功能我也試過。對于電源板或者低速電路AI自動(dòng)布局能節(jié)省不少時(shí)間。但RTL8211F(I)這種帶高速RGMII接口和模擬MDI前端的PHY芯片我會(huì)先用自動(dòng)布局工具做一次預(yù)擺放然后按照上面幾點(diǎn)人工調(diào)整至少三輪。第一輪調(diào)整芯片和變壓器、連接器的相對位置第二輪調(diào)整電源、晶振、去耦電容第三輪檢查差分對和時(shí)鐘走線的障礙最后再進(jìn)入布線階段。自動(dòng)布線也不是完全不能用但必須提前把約束規(guī)則設(shè)置好比如差分阻抗線寬間距、等長組、最大過孔數(shù)、禁止區(qū)域等。設(shè)置得好自動(dòng)布線時(shí)RGMII和MDI區(qū)域可以一次通過然后我再手工優(yōu)化細(xì)節(jié)。完全沒有規(guī)則限制的自動(dòng)布線在PHY這種電路上基本要返工重畫。5. 常見問題與調(diào)試實(shí)錄5.1 千兆Link不起來的排查順序板子貼回來上電后最常見的問題就是網(wǎng)口Link燈不亮或者只有百兆。我的排查順序基本是下面這張表現(xiàn)象優(yōu)先排查項(xiàng)驗(yàn)證方法完全沒有Link供電、晶振、復(fù)位量DVDD10、AVDD10、VDDIO電壓示波器看25MHz晶振Link在百兆上不了千兆MDI線對極性、變壓器中心抽頭、差分阻抗檢查MDI四對是否接對用網(wǎng)線測試儀和示波器看波形眼圖時(shí)通時(shí)斷配置引腳上下拉、PHY地址沖突讀MDIO寄存器檢查MODE配置是否按手冊設(shè)置RGMII通信丟包RGMII等長、串阻、時(shí)序用示波器測量TXC/RXC到數(shù)據(jù)線的建立保持關(guān)系或用邏輯分析儀抓數(shù)據(jù)有一個(gè)坑我印象很深有一版板子兩個(gè)PHY掛在同一條MDIO總線上地址分別設(shè)成0x04和0x05。但原理圖上其中一顆的PHYAD[1]引腳懸空了手冊寫這個(gè)引腳內(nèi)部有下拉實(shí)際上PCB寄生導(dǎo)致電平不確定結(jié)果兩顆芯片讀出來的地址一樣總線上兩個(gè)從機(jī)同時(shí)響應(yīng)MDIO讀寫全是亂碼。從那以后所有配置引腳我都不允許懸空要么上下拉到確定的電平要么在PCB上預(yù)留0Ω電阻位方便改。5.2 RGMII時(shí)序調(diào)不對怎么辦如果RGMII接口本身電平?jīng)]問題但系統(tǒng)丟包或者長時(shí)間跑流掛死十有八九是時(shí)序裕量不夠。RGMII在千兆模式下發(fā)送數(shù)據(jù)由MAC產(chǎn)生PHY使用TXC的上升沿和下降沿分別采樣TXD和TX_CTL。如果PCB走線長度不一致數(shù)據(jù)比時(shí)鐘晚到建立時(shí)間可能不滿足。處理手段有幾種。第一優(yōu)化PCB走線縮短同組信號(hào)長度差。第二利用PHY或者M(jìn)AC內(nèi)置的延遲寄存器。RTL8211F(I)的寄存器里通常有RGMII TX/RX delay配置可以調(diào)整內(nèi)部延遲讓數(shù)據(jù)對準(zhǔn)時(shí)鐘省去飛線割板的痛苦。調(diào)寄存器時(shí)可以先用示波器觀察TXC和TXD的相對相位目標(biāo)是把數(shù)據(jù)穩(wěn)定在時(shí)鐘的中央窗口。第三檢查串阻阻值是否過大比如用了100Ω串聯(lián)電阻導(dǎo)致信號(hào)上升沿過緩也會(huì)壓縮時(shí)序窗口。調(diào)試時(shí)我習(xí)慣先做回環(huán)測試。MDI接口用短網(wǎng)線直連兩個(gè)PHY或者RGMII端用主控自發(fā)自收先排除物理層問題再確認(rèn)寄存器讀寫正常。如果回環(huán)通了再接對端設(shè)備測試不同速率這樣能把問題限定在單板內(nèi)部還是互聯(lián)問題。5.3 散熱、ESD與量產(chǎn)可靠性問題RTL8211F(I)是QFN封裝底部散熱焊盤必須焊接良好。PCB布局時(shí)散熱焊盤下面要放一排過孔孔徑0.3mm左右焊盤中心區(qū)域均勻分布不能太密導(dǎo)致漏錫。過孔可以連接到地平面既幫助散熱也提供接地回路。量產(chǎn)環(huán)境里網(wǎng)口最容易掛的是ESD。RJ45連接器的外殼要接到防護(hù)地防護(hù)地和數(shù)字地之間用1kV/2kV的陶瓷電容跨接。如果成本允許在MDI差分對靠近RJ45的位置加TVS管陣列選擇結(jié)電容盡量小、適合千兆以太網(wǎng)的型號(hào)避免電容過大影響信號(hào)質(zhì)量。TVS管的地腳要短而粗否則泄放路徑阻抗過大保護(hù)效果打折扣。另外要注意RTL8211F(I)的工業(yè)級版本雖然解決了溫度范圍問題但高溫下電源紋波會(huì)變大。如果板子是密閉殼體PHY靠近DC-DC大功率電感高低溫箱里跑百兆和千兆速率時(shí)要做充分的老化測試尤其關(guān)注長時(shí)間跑流后MDIO是否還能正常訪問這往往是電源熱漂移導(dǎo)致芯片進(jìn)入異常狀態(tài)的信號(hào)。最后分享一個(gè)我個(gè)人的習(xí)慣原理圖做完之后不管多忙一定把每一顆PHY的引腳對應(yīng)到數(shù)據(jù)手冊的Pin表格重新檢查一遍重點(diǎn)是電源腳、配置腳和測試腳。很多看似不起眼的小問題比如TESTEN引腳忘了接固定電平、SELRGV電阻用錯(cuò)都會(huì)在量產(chǎn)階段以不良率的方式暴露出來。RTL8211F(I)是一顆成熟芯片只要從數(shù)據(jù)手冊到PCB布局的每一步都按規(guī)范走網(wǎng)口這部分基本可以一次通過剩下的事情就是安心調(diào)軟件了。