在過去大量從事微控制器項目時,我了解到計算機 USB 端口可能是脆弱的東西。簡單地在端口上短接幾十伏電壓只會殺死它們——還有很多其他創(chuàng)造性的方法可以破壞主板上的 USB 功能!
我在市場上看到過 USB 隔離設(shè)備,它們正好解決了這類問題(開發(fā)人員對他們的設(shè)備做得不好),但是,我從來沒有真正花時間購買。它總是看起來太貴了……直到下一個 USB 端口死了。最終,您會考慮必須購買新主板,并最終意識到從長遠來看這些設(shè)備可能物有所值。
話雖如此,在過去的兩年里,我一直有建立自己的 USB 隔離器的想法。您可以輕松購買處理 USB 2.0 全速的數(shù)字隔離器 IC,也可以購買輸出與運行電壓相同的隔離電源。因此,在本文中,我將實現(xiàn)我擁有 USB 端口隔離設(shè)備的夢想——這當然早該實現(xiàn)了。
這應該是一篇相當簡單的文章,討論了一個相當簡單的構(gòu)建,但如果你和我一樣,并且在處理項目時傾向于以新的和創(chuàng)造性的方式打破事物,我覺得你可能會發(fā)現(xiàn)這很有用。和我所有的其他項目一樣,這個項目當然會在GitHub上可用并且是開源的,所以你可以隨心所欲地使用它;制造一個,出售一個,或使用該設(shè)計為您自己的項目添加 USB 隔離。
對于這個項目,我又回到使用我的開源 Altium Library,所以在這個項目的 GitHub 存儲庫中沒有包含的庫文件,就像我以前的項目一樣。您可以在庫存儲庫中找到 SchLib 和 PcbLib 文件,或者如果您想在自己的項目中實現(xiàn)此設(shè)計,則可以獲得一個免費帳戶來訪問該庫。
我只關(guān)注 USB 2.0,因為我所有的 ARM 程序員和開發(fā)工具包都在 USB 2.0 上運行。目前,我擁有的任何東西都不能在 USB 3.0 上運行,而且 ARM JTAG/單線調(diào)試設(shè)備不需要比現(xiàn)有帶寬更多的帶寬。這在未來可能會改變,但就目前而言,USB 2.0 隔離器將提供我需要的所有隔離,希望能夠避免我的 USB 端口受到進一步的傷害。
隔離電源隔離 USB 端口將是一個兩個 IC/設(shè)備的過程,因為我們需要隔離電源線和數(shù)據(jù)線。開發(fā)板上燒壞的東西可能會使高電壓或瞬變返回計算機并導致問題。如果我們正在研究“尚未完全實現(xiàn)”的 RF 板或其他具有大量潛在電氣噪聲的電路板,噪聲也會降低電源連接并對計算機的其他外圍設(shè)備造成嚴重破壞。
由于這些問題,我正在尋找可以提供完全電氣隔離的東西,以使計算機免受我傾向于扔給它的壞東西(工程術(shù)語)的影響。在過去的項目中,我使用 Murata NXE 和 NXJ 系列電壓隔離模塊取得了巨大成功。它們是很好的小組件,包括完全隔離電源所需的一切。NXE2 系列特別令人感興趣,因為額定功率為 2 瓦,它幾乎能夠提供 USB 2.0 規(guī)范的全部 500mA。我之前沒有用開發(fā)板最大化 USB 端口,好吧,至少不是正常使用,所以我覺得這應該足夠了。它們的價格合適,并且它們的隔離規(guī)格非常好。
為了提供 5V 到 5V 的隔離,我將使用 Murata NXE2S0505MC。
手冊建議使用 15uH 電感和 4.7uF 電容器組合作為該穩(wěn)壓器型號的輸入濾波器,以確保電磁兼容性,這非常重要。輸出濾波器也是電壓隔離器手冊中推薦的,減少了我在基于 RF 的項目中重視的輸出電壓紋波。
為了知道什么時候出現(xiàn)了可怕的錯誤,我還在原理圖中添加了兩個 LED。輸入端的綠色會告訴我們有來自計算機的電源,并且我們沒有導致 USB 端口因過流限制而關(guān)閉。藍色的會告訴我們我們還沒有(還)殺死電壓隔離器。
我將這些 LED 的電流限制為 5mA,因為開發(fā)人員工具幾乎總是有令人眼花繚亂的 LED,我不希望我的電路板成為我視覺問題的一部分。這確實有一個缺點:我不能聲稱開發(fā)工具的 LED 太亮了,以至于我看不到我的示波器探頭已經(jīng)從我正在檢查的焊盤上漂移并短路了 USB 線!
隔離 USB 數(shù)據(jù)將電源線隔離后,我們需要一個可以隔離 USB 數(shù)據(jù)線并仍然允許全數(shù)據(jù)速率通過它們的 IC。ADI 公司生產(chǎn)了一些非常好的隔離器件,其中ADUM4160BRIZ是一款專為 12Mbps 雙向 USB 數(shù)據(jù)設(shè)計的器件。借助磁耦合和 5000Vrms 的隔離,即使是最有創(chuàng)造力的工程師也很難通過該設(shè)備破壞其 USB 端口。
我們通過 5V USB 電源為設(shè)備的兩側(cè)供電,因此 VDD 引腳需要有一個旁路/去耦電容器以穩(wěn)定運行。我還拉起速度設(shè)置引腳,以便以全 USB 速度運行。
由于我希望以全 USB 速度運行,因此我們也需要在設(shè)備兩側(cè)的兩條數(shù)據(jù)線上都有 24 歐姆的終端電阻。這就是隔離 USB 數(shù)據(jù)連接的全部內(nèi)容 — 如此簡單!
一點額外的保護將數(shù)據(jù)線和電源隔離開后,您可能會覺得是時候布置電路板了——但我們還沒有完成。還有一點保護要添加到電路板上,那就是來自 Nexperia 的 USB 專用 TVS 二極管。這應該有助于防止靜電放電引起問題。
我還使用 1uF 陶瓷電容器為電壓線增加了一點額外的電容。隔離器的輸入和輸出都具有相同的 TVS 二極管。
連接器對于連接器,我為計算機端添加了一個 USB Micro-B 連接器,因為盡管 USB-C 的興起,它可能是該設(shè)備用戶可能在辦公桌上使用的最常見的電纜。
對于輸出端,我覺得 USB 2.0 A 連接效果最好。這將允許我使用最常用的電纜來充分利用這個隔離器。
PCB由于構(gòu)建此板所需的組件很少,因此為大多數(shù)構(gòu)建布局非常快速且輕松。我可以把這個板子做得更小,但是我需要移動 TVS 二極管,這可能會降低它們的效率。在非常干燥的氣候中生活了幾年后,我開始非常欣賞 TVS 二極管保護電子設(shè)備免受傷害的作用,所以我更希望電路板加長10 毫米 ,并最大限度地發(fā)揮TVS 二極管的功能最好的。
USB 線應具有 90Ω 差分阻抗的差分對。我們可以在層堆棧管理器中設(shè)置阻抗配置文件,但首先,我們需要設(shè)置層堆棧。我將在 0.8mm FR-4 中制作這些板,因此我將層堆疊設(shè)置為這樣。
然后,我們可以使用底部的阻抗選項卡為 90Ω創(chuàng)建一個新的 USB 差分對。
對于像這樣只有一個差分對阻抗的電路板,我發(fā)現(xiàn)將濾波器用于差分對類而不是特定的差分對更容易。這允許我用一個規(guī)則匹配所有差分對。應用我們在層管理器中設(shè)置的阻抗配置文件就像單擊“使用阻抗配置文件”復選框一樣簡單。
為了保持隔離,我們還應該指定Altium Designer 20引入的新爬電距離規(guī)則。該規(guī)則將確保整個電路板上不同地平面之間的距離永遠不會小于 2.5 毫米。我特別使用 2.5 毫米,因為這是板上兩個隔離設(shè)備提供的最小爬電距離。
接下來,我們可以將間隙規(guī)則設(shè)置為相同的 2.5mm。新規(guī)則的優(yōu)先級需要增加才能生效。在下面的屏幕截圖中,您可以看到它位于列表的底部,這意味著它已被其他規(guī)則取代。
當我布置電路板時,出于美觀原因,我決定將連接器移到電路板的中心線上。該新蛇路由風格的作品與像USB軌道差分對真的很棒。不幸的是,我的 USB 走線不是很完美,因為我不得不將微控制器一側(cè)放到底層才能將其連接到隔離器引腳。這不應該影響隔離器的操作或 USB 性能,因為這是一個相當短的偏差。
USB 數(shù)據(jù)線采用蛇形布線
在這一點上,電路板看起來很完整,但是,它可以通過幾個安裝孔來完成。這將允許使用支架或未來的外殼來進一步防止 ESD。
在 3D 視圖中,我可以看到電感器可能離安裝孔太近了!
輕輕一推,一切看起來都有良好的間隙并且易于組裝。
盡管這個項目很簡單,但我覺得它會成為一個讓我真正頭疼的板子。如果您想構(gòu)建自己的開發(fā)板,您可以在GitHub上找到該開發(fā)板的Altium Designer文件。我將訂購一些板子,為那些傾向于使用正在開發(fā)的電子產(chǎn)品作為攻擊計算機的武器的朋友制作一些額外的圣誕禮物。