从BeagleBone谈AM335x硬件系统设计

从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》
从BeagleBone谈AM335x硬件系统设计_第1张图片 
    
也就这几颗料,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
从BeagleBone谈AM335x硬件系统设计_第2张图片 


在不同的模式下,系统的主频不一样,对VDD_MPU,VDD_CORE的电压需求也不一样。
从BeagleBone谈AM335x硬件系统设计_第3张图片 

为什么需要专门的电源芯片,估计是和它各个电源的上电顺序有关。普通的电源芯片能不能满足系统设计要求,目前还没看到成熟的方案,谁也不想自己去当个小白鼠,还是随大流的好。AM335x各个电压的上电顺序如下:
从BeagleBone谈AM335x硬件系统设计_第4张图片 

由于拿到的试用板子是A3版本的,而且芯片型号也是XAM3359,属于实验样品,没有标明芯片的速率等级,也不知道能跑多快。不过从Linux的系统打印来看,应该是在500MHz或者600MHz

IO的电压也有两种,1.8V或3.3V
从上面的图上可以看到这样的话,Supply voltage range for dual- voltage IO domain
BeagleBone上是直接接在3.3V上的
从BeagleBone谈AM335x硬件系统设计_第5张图片 

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外部时钟,原理图如下:
从BeagleBone谈AM335x硬件系统设计_第6张图片 

至于内部的主时钟和外部输入的时钟是啥关系,这个还需要进一步的研究,不过和硬件设计本身没有太大的关系。

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 + 这个料
从BeagleBone谈AM335x硬件系统设计_第7张图片 



关于系统的启动流程不在这个里面讨论了,有空单独说说

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。

你可能感兴趣的:(am335x)