链接: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
   我主要按以下的顺序,谈谈我最近的一些收获,仅供大家参考。
 
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》

 
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 domain
BeagleBone上是直接接在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硬件系统设计的更多相关文章

  1. 浅谈STM32L071硬件I2C挂死

    STM32的IIC问题一直存在,在网上也被很多人吐槽,然而FAE告诉我,硬件IIC的问题在F1,F3,F4系列单片机存在,而在L0上已经解决了,然而这几天调试加密芯片和显示芯片,都是IIC芯片,却再一 ...

  2. 浅谈 STM32 硬件I2C的使用 (中断方式 无DMA 无最高优先级)(转)

    引子 STM32的硬件I2C很多人都对它望而却步.因为很多电工都说,STM32 硬件 I2C有BUG.不稳定.死机等等……最后都使用GPIO模拟I2C. 的确,模拟I2C好用.但是在我看来在一个72M ...

  3. ti processor sdk linux am335x evm /bin/setup-minicom.sh hacking

    #!/bin/sh # # ti processor sdk linux am335x evm /bin/setup-minicom.sh hacking # 说明: # 本文主要对TI的sdk中的s ...

  4. BeagleBone Black 从零到一 (2 MLO、U-Boot) 转

    文章原址:jexbat.com/categories/BeagleBone/ 什么是 U-Boot 熟悉嵌入式开发的应该都听过它,U-boot 就是启动系统前的一段引导程序,虽然是引导程序,但是功能非 ...

  5. (转)iOS Wow体验 - 第二章 - iOS用户体验解析(1)

    本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第二章译文精选的第一部分,其余章节将陆续放出.上一 ...

  6. TurnipBit—MicroPython开发板:妥妥拽拽零基础也能玩编程

    可视化编程网站入口:www.turnipbit.com 说到编程.谈到硬件,你也许会想到屌丝逆袭女神的"传奇"故事,也许会浮现出带着眼镜.头发稀少.无精打采的程序猿形象." ...

  7. 利用ZYNQ SOC快速打开算法验证通路(6)——利用AXI总线实时配置sysGen子系统

    利用ZYNQ验证算法的一大优势在于,可以在上位机发送指令借助CPU的控制能力和C语言易开发特点,实时配置算法模块的工作模式.参数等对来对其算法模块性能进行全面的评估.最重要的是无需重新综合硬件模块. ...

  8. ROS零门槛学渣教程系列前言

    为什么选择ROS: 1.ROS是开放源码的,在该平台上可以找到非常很多免费开源的代码包,并且这些例程还带wiki说明文档: 2.机器人领域最新的算法直接支持ROS,简单几个步骤就能运行: 3.ROS工 ...

  9. BSP

    1       BSP概述 BSP即Board Support Package,板级支持包.它来源于嵌入式操作系统与硬件无关的设计思想,操作系统被设计为运行在虚拟的硬件平台上.对于具体的硬件平台,与硬 ...

随机推荐

  1. C# 注销掉事件,解决多播委托链表的问题

    c#的事件是多播委托.当绑定多个事件时,事件会依次触发,清除掉注册的委托链表:方法1  C# Code  12345678910111213141516171819202122232425262728 ...

  2. ViewConfiguration滑动参数设置类

    /** * 包含了方法和标准的常量用来设置UI的超时.大小和距离 */ public class ViewConfiguration { // 设定水平滚动条的宽度和垂直滚动条的高度,单位是像素px ...

  3. 【HDOJ】2722 Here We Go(relians) Again

    根据矩阵建图,然后求最短路径. #include <cstdio> #include <cstring> #include <cstdlib> #define L ...

  4. 关于NAT穿透的一些理解

    前些天在知乎回答了一个智能家居远程控制方面的问题,感觉自己对无公网IP地址环境下的穿透问题有些了解.昨天同事拿来一个网络摄像头,安装在ADSL路由器上网的环境下,可以远程查看视频,效果还挺不错,问我厂 ...

  5. HDOJ(HDU) 1563 Find your present!(异或)

    Problem Description In the new year party, everybody will get a "special present".Now it's ...

  6. android调用系统自带的的浏览器搜索关键字

    //调用系统的浏览器搜索详情 public void jumpBrowser(String value) { /* 取得网页搜寻的intent */ Intent search = new Inten ...

  7. 带’*’号字符串的匹配

    目标: 判断源字符串中是否含有指定子串,子串可能会有*号通配符. 初步测试没问题.记录下来.后面要是有问题再来纠正. #include <string> using namespace s ...

  8. Wix - 教程

    1. 不错的教程 http://www.merlinia.com/mdt/WiXTutorial4.msl 2.

  9. 禁止浏览器发送referer

    有时候我们需要把其他网站的链接爬取到自己网站,比如各种信息集成网站. 有些网站会有防盗链的措施,我们无法“引用”他人链接(这种情况暂时不考虑),如果网站没有防盗链措施,那就恭喜了! 但是,为了不让“被 ...

  10. Android学习笔记(二)之异步加载图片

    最近在android开发中碰到比较棘手的问题,就是加载图片内存溢出.我开发的是一个新闻应用,应用中用到大量的图片,一个界面中可能会有上百张图片.开发android应用的朋友可能或多或少碰到加载图片内存 ...