1, 樹莓派CM4底板設計
?樹莓派CM4模塊集成了CPU, 存儲器,以太網, 無線模塊,電源等等, 大大降低了硬件設計的要求。對我們使用樹莓派提供了很好的便利性。
本人近期因為項目的需要設計了一款CM4的底板, 先上圖:?
該板子的特性主要包含:?
1, 提供2個USB接口,一個USB2.0 device, 一個USB3.0 host
2,板子集成有一個4口的百兆以太網交換芯片。其中對外提供一個RJ45連接器接口, 一個連接CM4, 另外兩個用來級聯設備。
3,板子左右兩端提供級聯板卡。多個板子可以通過串行的方式連接 。理論上只要電源功率足夠,可以無限個板卡連接。
4,板子提供UI接口, 可以外接MIPI DSI 顯示屏+觸摸屏。
2,參考設計
樹莓派官方提供了CM4模塊的底板參考設計
https://www.raspberrypi.com/products/compute-module-4-io-board/
其中大部分設計都可以直接拿來使用。
但是在獨特的個人項目設計時,難免會碰到各種各樣的問題,以下是本人總結的一些注意事項。
3, 原理圖設計的注意事項
3.1 原理圖設計中碰到第一個事情是如何對CM4連接器進行標示。 如圖, 在官方IO板子中,它是直接將CM4作為一個完整的個體來看待的,即CM4模塊相當于我們設計使用中的任何一款芯片。它有400個引腳,每一個引腳都有自己的信號名稱,例如102號管腳為PCIe_CLK_nREQ。如果我們直接制作一個CM4的原理圖符號庫,并在設計中使用它,那么在完成設計后導出的器件清單BOM中,將只有CM4模塊的信息,而丟失了連接器本身的信息。
感興趣的讀者可以自己試一下導出官方IO板的BOM。
下圖是本人導出官方IO板子的BOM表:它只包含了CM4,而沒有包含連接器DF40C-100DS-0.4V。
為了防止在BOM中遺失連接器的信息,本人采用的方法是在原理圖中使用連接器符號庫而不是CM4符號庫。
為了方便對比,我把兩個圖片并排顯示:?
在我的設計中, 我直接創建的是DF40C-100DS-0.4V的符號庫。請注意庫中的管腳名稱直接是數字,而不是功能名稱。如管腳2, 它的名字也是2, 而不是PCIe_CLK_nREQ。因為我創建的DF40C-100DS-0.4V的符號庫也可以使用在其他的項目原理圖中,所以名稱不能固定為CM4的信號名。你可能會注意到,在上圖中我使用了M1來代表CM4模塊本身。這樣在到導出的BOM中將同時包含CM4和連接器的信息。
可能有的讀者覺得上面的討論不是一個很大的問題。因為這個完全可以通過手動在BOM中添加連接器的信息。這是建立在BOM表不經常更新的前提下。如果BOM表還沒有固定的情形下, 漏掉連接器的信息的可能性是非常大的。
另外一個直接使用CM庫符號的缺點是,在焊接PCB的時候,PCB只有CM4的位置信息而沒有連接器的位置信息。
當然我的方法也有不好的方面,那就是在原理圖設計的時候,需要仔細比對每一個管腳的信號名稱,同時在PCB設計的時候,如果連接器的位置需要調整,則要非常小心,確保兩個連接器同時移動。
這個問題類似于硬件設計中如何在BOM中添加線纜, 端子插頭等等不在PCB上的器件。
對于這個問題,我在先前的博客中也有說明。 感興趣的讀者可以看看以下鏈接。
https://blog.csdn.net/dylanZheng/article/details/110304051
3.2 注意以太網信號的正負極, TRD1 和 TRD1信號對名稱是上 _P 下 _N,TRD0和TRD2信號對名稱是上_N下_P。雖然以太網信號線正負極能夠自適應,但是按照正常的順序總歸更符合設計要求。
3.3 CM4 IO官方板子中將所有的GPIO直接通過GPIO數來命名信號。在自己的設計中可以命名的時候更具體一點。 如GPIO5 UART3 RXD,讓原理圖更容易閱讀。
3.4 管腳78 GPIO_VRE 用來設定CM4 的GPIO電平,可以直接外接3.3V或者1.8V。但是最好串聯一個0歐電阻,方便萬一需要更改。
3.5 CM4 管腳84和86提供3.3V的電壓輸出,但是最大電流600mA, 使用它們給外部電路供電的時候,需要仔細計算功耗。
3.6 管腳57,61, 62, 63, 64, 67, 68, 69, 70,72, 75提供的SD卡信號在帶有emmc模塊的CM4上已經被使用(鏈接到了eMMC)。所以如果需要外接SD卡的話,需要另外選擇其他GPIO功能管腳。例如可以使用GPIO22~27
3.7 CM4模塊上自帶的ethernet Phy是BCM54210,沒有找到它是否支持capacitive coupling的連接方式。它和交換芯片的連接保持使用變壓器的方式。
4,PCB設計的注意事項
CM4模塊已經高度集成化,常見的DD接口,千兆以太網接口等已經不需要我們考慮。 CPU的電源,以及CPU上電順序等等比較耗費時間,需要仔細設計的部分也已經集成好,不需要我們再考慮。所以CM的底板的PCB設計其實是相當簡單的了。 需要注意的事項也不多,這里列舉幾個我個人決定比較重要的。
4.1 在設計PCB板之前,需要注意CM4模塊的高度。連接器DF40C-100DS-0.4V的Stacking Height 只有1.5mm。所以最好不要在CM4模塊底下放置任何的元器件。 電容電阻最好也不要放。一個標準的0603封裝的電阻高度大約0.45mm。 原則上是可以放置的,但是請注意CM4模塊本身底層也有焊接元器件。下圖是官方底板PCB,可以看到CM4模塊下除了一個電阻,沒有其他任何元器件。
如果PCB布局受限,則可以采用更高的連接器DF40HC(3.0)-100DS-0.4v. 它的Stacking Height 是3mm,所以此時在CM4模塊下面放置不高于1.5mm的元器件是安全的。
如果需要放置更高的器件,則需要導入CM4的3D模型,進行精確位置對比查看。這要求能用機械工程軟件或者請機械工程師幫忙查看
4.2 CM4上的無線模塊天線對應著的PCB區域,需要放置keep out區域。
如下圖的綠色方塊區域所示
4.3 阻抗設定.
CM4對于高速差分信號有阻抗的要求。攝像頭,DSI,以太網以及HDMI要求100 ohm差分阻抗,而PCIe,USB則需要90 ohm的差分阻抗。具體的阻抗與PCB厚度,材質,線寬,線距等等有很大關系。一般來講都是需要先聯系PCB制造商。根據阻抗要求,制造商一般都會提供推薦的疊層結構以及線寬線距的設定。
以下是我根據自己的需求,在某一個PCB制造商的網站上得到的設定:
網站上提供了好幾種PCB材質,一般我們選擇的原則是L1和L2層間距比較小的(L3和L4同樣間距比較小的),因為L1是信號走線層而L2是參考地層,他們的間距比較小,對EMC有好處。
4.4 信號線長度匹配.
除了阻抗匹配,上述信號線還需要進行長度匹配。 需要注意的是, 在計算上述信號長度的時候,需要考慮到CM4上信號長度的差異。
在CM4的手冊的4.1章節, 例舉了信號長度的差異:
為了使得最終的長度相等, 本人使用excel表格計算了底板上信號的走線長度:?
4.5 5V信號的寬度
CM4由5V供電, 它的功耗要求是7W,最高可能達到9W,因此,5V信號的最大電流可以達到1.8A. 所以5V信號的寬度至少要0.9mm(1oz的銅皮),最好能夠1.2mm以上。 作為參考,官方底板的5V信號寬度是3mm
…………………………………完……………………………………………………………