標籤:
連結:http://blog.chinaunix.net/uid-730738-id-3266690.html chenzhufly
從BeagleBone談AM335x硬體系統設計
日期:2012-04-25 如果不是要試用BeagleBone,也不會花著大把的時間去研究AM335X的硬體系統設計,這些天翻閱了TI好多的文檔資料,有一些小小的心得,和大家共用一下,全當做個記錄,時間久了可以回來翻翻。 關於AM335X的硬體系統介紹可以參考這個連結:http://processors.wiki.ti.com/index.php/AM335x_Hardware_Design_Guide
== Hardware Design Timeline → ==
| Constructing the Block Diagram |
→ |
Selecting the Boot Mode |
→ |
Confirming Pin Multiplexing Compatibility |
→ |
Confirming Electrical and Timing Compatibility |
→ |
Designing the Power Subsystem |
→ |
Designing the Clocking Subsystem |
→ |
Floorplanning the PCB |
→ |
Creating the Schematics |
→ |
Laying out the PCB |
→ |
Testing / Debugging |
我主要按以下的順序,談談我最近的一些收穫,僅供大家參考。 BeagleBone的參考手冊:《BeagleBone Rev A3 System Reference Manual》
1) 關於電源 TI總是宣傳AM335x只要5美元,你們在看看它配套使用的電源晶片,價格也不菲啊,都在4美元左右,真他媽的坑爹!而且電源晶片選擇的餘地也不大,這點對於系統設計來說倒是一件好事,不用過多的糾結,使用成熟的方案就行了。 常見的搭配:可以參考一下《AM335x power options》 也就這幾顆料,AM335X_EVM中使用的是TPS65910,在BeagleBone中使用的是TPS65217 有以下幾個文檔可以參考:《TPS65217 User’s Guide for AM335x Processors (SLVU551)》《TPS65910A User‘s Guide For AM335x Processors (SWCU093)》《Powering the AM335x With the TPS650250 (SLVA487)》
《Power Management Units for Embedded Processors》
這個連結寫的比較詳細:http://processors.wiki.ti.com/index.php/Device:AM335x:Device_Evaluation BeagleBone上用的TPS65217也是挺有意思的,看到了吧,有A,B,C三種,有啥區別呢?看看下面的圖可能就有啟發了。 很明顯我們用的是TPS65217B,為啥呢?AM3359隻有ZCZ封裝,板載memory是DDR2的。 那麼AM3359有幾種電源呢?《在AM335x ARM® Cortex™-A8 Microprocessors (MPUs)》第77頁有詳細的介紹,主要有1.1V,1.8V,3.3V 在不同的模式下,系統的主頻不一樣,對VDD_MPU,VDD_CORE的電壓需求也不一樣。 為什麼需要專門的電源晶片,估計是和它各個電源的上電順序有關。普通的電源晶片能不能滿足系統設計要求,目前還沒看到成熟的方案,誰也不想自己去當個小白鼠,還是隨大流的好。AM335x各個電壓的上電順序如下:
由於拿到的試用板子是A3版本的,而且晶片型號也是XAM3359,屬於實驗樣品,沒有標明晶片的速率等級,也不知道能跑多快。
不過從Linux的系統列印來看,應該是在500MHz或者600MHz
IO的電壓也有兩種,1.8V或3.3V從上面的圖上可以看到這樣的話,Supply voltage range for dual- voltage IO domainBeagleBone上是直接接在3.3V上的 BeagleBone Rev3的原理圖可以從這個地址得到:https://github.com/CircuitCo/BeagleBone-RevA3 關於電源功耗的評估在這個地址可以看到:http://processors.wiki.ti.com/index.php/AM335x_Power_Consumption_Summary,還是挺詳細的
2) 關於時鐘
詳細的細節參考datasheet吧,主要的就下面兩句話:
- The device operation requires a 32k optional crystal and HF crystal with either 19.2,24,25,26 MHz reference clock for operation.
- A 32.768-kHz clock input is an optional for the RTC.
BeagleBone採用的是24MHz外部時鐘,原理圖如下: 至於內部的主時鐘和外部輸入的時鐘是啥關係,這個還需要進一步的研究,不過和硬體設計本身沒有太大的關係。
3) 關於啟動模式The following boot modes are supported:
- NOR Flash boot
- NAND Flash boot
- SPI boot
- SD/MMC boot
- EMAC boot
- UART boot
- USB boot (like an ethernet card, not as mass storage)
前面4個應該是目前比較流行的啟動模式,NorFlash目前隨著檔案系統和應用的不斷擴大,已經漸漸的沒落了。現在比較如日中天的應該是從NandFlash啟動BeagleBone目前只是的是從SD卡啟動,這個在調試階段還是挺方便的,做生產的話就有些牽強了,最起碼我是不推薦使用的 在這裡不得不提美光的一顆memory晶片,型號:MT29CxGxxMAxxxJA有什麼特色呢:137-Ball NAND Flash with LP-DRAM MCP,也就是memory裡面既有nand也有LP-DRAM恰好這個AM335X都支援,這樣的memory我很喜歡。可以把系統設計的更加的小巧,而且不用SD卡啟動了,適合產品開發。同時我也見過成功的案例,DM3730 + 這個料
關於系統的啟動流程不在這個裡面討論了,有空單獨說說
4) 關於網口
尼瑪,不是都標榜有千兆網口嗎,我翻遍所有的和AM335X相關的demo板,都是百兆網口,這是為什嗎??這是為什嗎???貌似BeagleBone的介面的接法是MII介面,只有和手冊上的RGMII介面類似,但是時鐘又是25MHz的,速率只能到100M啊,是不是換成125M的就能到1000M?不過LAN8710也不支援千兆網,哈哈。好奇怪的哦 科普一下:RGMII(Reduced Gigabit Media Independent Interface)是Reduced GMII(吉位元介質獨立介面)。GMII和RGMII均採用8位元據介面,工作時鐘125MHz,因此傳輸速率可達1000Mbps。同時相容MII所規定的10/100 Mbps工作方式,支援傳輸速率:10M/100M/1000Mb/s ,其對應clk 訊號分別為:2.5MHz/25MHz/125MHz。RGMII資料結構符合IEEE乙太網路標準,介面定義見IEEE 802.3-2000。
轉:從BeagleBone談AM335x硬體系統設計