树莓派硬件分析

玩转树莓派

树莓派硬件分析

众里寻他千百度,青天白夜荡谷歌,纵观整个网络,没有找到一篇详细介绍树莓派硬件设计的文章,不免唏嘘。树莓派作为一款开源卡片式电脑,基于Broadcom商业策略的考虑,硬件没有完全开源,可以理解,但是对于硬件已经开源的部分,很少人来分析、研究和扩展,我理解树莓派的生态在硬件层面上是有一定残缺的。
Anyway,树莓派作为一款“开源硬件”,其价值并不在于硬件的扩展性,而在于软件设计,Geek们利用树莓派开放的GPIO的硬件能力,构建起了庞大的软件生态,可以说,树莓派其实是一个基于硬件的软件开源平台。
下面,我简单分析下树莓派的硬件设计。

原理图及datasheet下载

树莓派的第一手资料,当然要去github raspberry官方镜像获取

  • 树莓派2B+原理图下载
    https://github.com/raspberrypi/documentation/blob/master/hardware/raspberrypi/schematics/README.md
  • 主芯片SOC BCM2836及ARM A7 datasheet下载
    BCM2836 ARM-local peripherals
    https://github.com/raspberrypi/documentation/blob/master/hardware/raspberrypi/bcm2836/QA7_rev3.4.pdf
    ARM A7核心
    Cortex-A7 MPcore Processor Reference Manual
    https://developer.arm.com/docs/ddi0464/latest/preface
    需要注册ARM官网的账号才能下载
  • 网卡及串口芯片 LAN9514
    http://pdf1.alldatasheet.com/datasheet-pdf/view/347291/SMSC/LAN9514.html

    简单电路分析

    本人不是做硬件开发的,这里只是简单分析下树莓派2B+的电路,一切以够用为原则

    实物图简单标注

  • 树莓派正面

    核心芯片为BCM2836,右边LAN9514为网卡及串口,Microchip公司生产的 LAN951x 是第一款工业的全集成、高速2.0 USB、高性能10/100M网络控制器,网卡接口及USB接口设计在了 LAN9154 的右边。USB供电系统旁边有三个转压芯片,这一部分区域是给系统提供4种电压。HDMI和音频是系统芯片内部的功能,主要按照数据手册里方式的进行连接。树莓派为双层板,正面布满系统需要的绝大部分元器件。
  • 树莓派反面

    PCB 板反面右边是SD卡接口,中心是一个19.2MHZ的晶振,对应正面中心的 BCM2836芯片

    树莓派硬件整体分析

    整体架构


    主要部件包括:

    ARMv7(主CPU,即Application Processor或AP)
    博通独有的VideoCore IV(图像处理单元,即GPU)
    只读ROM
    一次性写入的OTP
    512M SDRAM
    控制核心secure core
    集成的其它部件,如各种外设的controller等

其上电之初的整个过程完全由secure core控制
USB和ETH由BCM2836外接LAN9514驱动

电源电路分析

在raspberryPi 2B+电路中有多种电压,5V,3V3,1V8,5V_CORE,VDD_CORE,PLL_VDD,RUN,H5V(HDMI用),AUD_3V3(audio用),电源电路很复杂,我这里只是在整体上作大致的分析

  • 从输入到稳压5V

    从供电的输入端MicoUSB可以看出,该接口只有1和5号引脚起到供电作用,其他引脚悬空,没有USB串口功能,后边接到F1(MF-MSMF250/X),是自恢复保险丝,MSMF250/16具体参数如下图所示:

    可以看到该保险丝最大耐压16V,持续通过电流高达2.5A,峰值电流为5A
    Q3是续流二极管,有防反接作用
    BCM857BS是NXP的一款PNP型三极管,其基本功能是作差分放大,这里与D5瞬态抑制二极管(TVS管)SMJ5.0a实现5V稳压,BCM857BS引脚图如下:
  • 从5V稳压中分解出3V3和1V8

    稳压后的5V电源接入PAM2306AYPKE芯片,PAM2306AYPKE为DC-DC开关稳压芯片,为树莓派CPU及外设提供1.8V和3.3V电压
    PAM2306 datasheet中的典型设计如下

    可见这里树莓派也是参考的典型设计
  • 从5V分解出5V_Core、RUN和SDRAM_LDO_Enable

    可以看出,这里电路是通过5V和DMG2305 PMOS管得到5V_CORE、SDRAM的LDO使能信号和CPU的RUN信号
    1V8电压通过Q8(PNP管)与5V电压一起为DMG2305提供栅源电压,使得PMOS导通
    以下是DMG2305 datasheet中关于芯片的功能描述

    可以看出,这里主要是为了减小DS漏源阻抗以及提高电源转换效率,目的是为了匹配高速的SDRAM和CPU的对Power的需求
  • 5V_CORE通过NCP6343为SOC的I2C控制器提供初始化电平

    NC6343是降压芯片,datasheet中关于芯片的描述为

    可见,NCP6343是为ARM7 SMPCore中的I2C Memory提供动态电压

    BCM2836起振与供电


    可以看出,BCM2836的供电电压是1V8并且要提供RUN电平,后面是19.2MHZ的晶振

    复位与指示灯电路


    APX803在系统上电的时候RST,这时候2号线输出低电平,3v3通过R5和R8分压到PWR_LOW_N,随后RST置位成高电平,从而在PWR_LOW_N产生一个电平跳变,为SOC提供复位
    由于SOC启动后,PWR_LOW_N保持低电平,从而开启Q1(P-FET)点亮RED led

    Camera电路


    引脚直接接到SOC的相应引脚上

    DSI接口LCD电路


    同样,引脚直接接到SOC相应引脚上

    音频电路


    这里核心的器件是NC7WZ16,是个高速双向缓冲器,主要是为了提高PWM信号的转换速度,当PWM为高电平时,信号高速通过,当为低电平时,输入输出为高阻态,既有效传输了音频信号,由做到了信号的隔离
    其他大量的电阻和电容,都是为了滤波,为输出提供高质量的数字信号

    HDMI接口电路


    HDMI接口的引脚也是直接接到SOC的相应引脚上,值得一提的是左边的供电电路
    RT9741CGV为显示器高压驱动芯片,HDMI转VGA显示器的VGA转换线就是从这部分获取电能,也就是从BCM857BS 5V稳压这里汲取电流,因为供电电源最高能提供2.5A的电流,最高也就是12.5W的功率,单CPU、GPU和WiFi蓝牙以及DISPLAY接口的功率都已经很高了,如果HDMI转接器仍通过该板卡供电的话,板子估计会吃不消,这也是为什么一些童鞋使用HDMI转VGA转接板显示花屏或者根本不显示的原因,建议使用VGA显示器的童鞋们,最好使用自带供电的HDMI转接板。

    GPIO电路


    这里没什么好说的,BCM2836的GPIO直接接到板卡的GPIO引脚上,这里有个需要注意的地方,板卡上是没有GPIO0和GPIO1的,具体见原理图的tips说明

    意思是说GPIO0和GPIO1被设置成ID_SD和ID_SC模式,在SOC上电时读取EEPROM的ID号,然后驱动GPIO的automagic 安装,具体要干嘛我也不知道,反正这两个GPIO不要使用就可以了
    GPIO的电路虽然简单,但后续我们玩树莓派,主要就是利用这些GPIO的硬件能力,作为GPIO、I2C、SPI和UART等,了解下这些GPIO还是有必要的,这里附上一张树莓派GPIO的引脚对照图以备参考

到这里,树莓派2B+的整个电路原理图已经基本分析完了,还是很简单的,但需要说明的是,官方提供的原理图不完整,还有许多细节没给出来,想要抄板仿制出来一个树莓派基本不可能了
有个关键性器件LAN9514 USB与网卡芯片电路图没有给出来,这里补上一张LAN9514 的系统框图供参考

官方文档上指出,USB接口供电源与板卡的供电源电路做了相应的隔离设计,防止像以前版本的树莓派在接带有外置电源的USB HUB时可能会出现倒灌电流的现象,但是你为什么不给出原理图呢,是不是还有别的坑没填呢。
到此,树莓派的硬件分析完毕

题外话

许多人一看到稍微大一点电路的原理图时就犯怵,这是很正常的,一开始我拿到树莓派的原理图时也很懵,一看里面的许多器件都没见过,这时候就需要耐下心来,一个一个模块来分析
我总结看懂电路图原理的四个要点是

  • 识别元件
  • 看清走线
  • 模块划分
  • 分析原理
    然后按部就班地分解电路图
    电路一定是按模块设计出来的,所以分析也要一个一个模块来分析

我分析电路原理图的一般步骤正如上文所描述的那样

  • 分析电源电路
    一般一个板子的电源电路是最复杂也是最有意思的,分析清楚电源电路,接下来的模块电路分析就简单了
  • 分析主芯片供电、复位和起振电路
    这个比较简单,也就是最小系统能跑起来的基本条件
  • 模块电路分析
    模块电路分析要抓住核心器件,查看核心器件的datasheet,围绕这个核心器件来分析会事半功倍

不是题外话的题外话

随着物联网的兴起,现在开源硬件的热潮一波又一波,在这些浪潮之中的开源板卡有很多,比如Arduino、Raspberry、BeagleBlack、Intel Galileo、Intel MinNowBoard,Intel UpBoard,还有国产的香蕉派、香橙派、CubieBoard和96 Board等等,这么多板卡,能够处在浪潮之巅并且蜂拥前进的屈指可数,也就是Arduino、Raspberry和BeagleBlack了
其实板卡的做工、功能都差不多,为什么大多开源硬件都逃不出一波热,开锅熟,继而无人问津了呢
我理解主要有两点

  • 软件生态的完备程度
    Arduino和其他板卡不同,是一块单片机,把单片机玩出生态,所以热度一直不减
    树莓派受RS社区的推动,并且在全世界有一堆的传道者,其生态可以说是最完备的,虽然硬件没有完全开源,但依然阻止不了Geek们蠢蠢欲动的心
    BeagleBlack虽然热度没有Raspberry那么热,但是由于其硬件全开源,社区也很活跃,投入的玩家也越来越多
    反观Intel的系列板卡,采用的不是ARM核心,在众多玩家心里,ARM就意味着开源,X86、Atom想来搭开源硬件的顺风车,路漫漫其修远兮
    而国产板卡的受众主要是国人,众多周知,国人在这一块的玩法较欧美国家还是要差一些的,最主要的是在国内,要建立起一个良好的社区氛围不容易,都有一颗Geek心,奈何完不成Geek的梦
  • 服务质量的良莠程度
    这里不得不说的是,国产各种派的服务简直是不能人语,资料没法找,技术支持永远不在服务区,板卡上电启动冒烟无人理,你说这样的服务能把开源板卡做起来
    在这里默默祭奠下我英年早逝的香橙派,我才上电啊,你怎么就冒烟了。。。
文章目录
  1. 1. 玩转树莓派
    1. 1.1. 树莓派硬件分析
    2. 1.2. 原理图及datasheet下载
    3. 1.3. 简单电路分析
      1. 1.3.1. 实物图简单标注
      2. 1.3.2. 树莓派硬件整体分析
        1. 1.3.2.1. 整体架构
        2. 1.3.2.2. 电源电路分析
        3. 1.3.2.3. BCM2836起振与供电
        4. 1.3.2.4. 复位与指示灯电路
        5. 1.3.2.5. Camera电路
        6. 1.3.2.6. DSI接口LCD电路
        7. 1.3.2.7. 音频电路
        8. 1.3.2.8. HDMI接口电路
        9. 1.3.2.9. GPIO电路
      3. 1.3.3. 题外话
      4. 1.3.4. 不是题外话的题外话