0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

玩转树莓派!设计一个专属你的开源扩展板

454398 来源:网站整理 作者:秩名 2015-08-06 10:09 次阅读

Arduino的扩展板被称为Shield,而树莓派的扩展板则称作HAT(Hardware Attached on Top),意为附加在树莓派顶上的硬件板卡。下面就带着大家从零开始设计一块开源的树莓派扩展板,暂名为Raspberry Pi ICA HAT。

Raspberry Pi ICA HAT

1. 需求分析

设计HAT的初衷是为树莓派提供基本的显示和用户输入功能,并引出UARTI2C、SPI等硬件接口,方便连接其他模块,同时也能够做为用户学习树莓派硬件编程的入门板(Starter Board)。ICA HAT的配置如下:

1. 用户按键x5,可以作为上下左右和“确定”按键;

2. 用户LED x4,实现基本指示功能,另有一个电源指示LED;

3. 有源蜂鸣器x1,提供报警功能;

4. 红外发射管x2,红外接收头x1,实现红外收发遥控功能;

5. 七段数码管x2,实现8位数字显示,通过SPI接口的MAX7219芯片驱动;

6. I/O和电源扩展排针若干。

设定好需求后,首先需要考虑的是结构问题,本例的设计针对的是树莓派2B型号,同时也兼容一代的B+型号。下图为树莓派2B/B+的机械结构:

玩转树莓派!设计一个专属开源扩展板

针对树莓派的机械结构,可以设计全长和半长两种HAT。全长板与树莓派外框尺寸相同,但由于树莓的USBRJ45连接器较高,需要注意该区域底层的器件是否会与连接器接触。

半长板则只包含四个螺孔的区域。

两种板型都通过2.54mm间距排座与主板上的排针连接,并通过4个M2.5铜柱或螺钉与主板进行固定。如下图所示。

玩转树莓派!设计一个专属开源扩展板

玩转树莓派!设计一个专属开源扩展板

图 全长HAT和半长HAT

已将设计好的两种尺寸HAT存放在GitHub上,读者可以在此基础上进行设计。

电子发烧友六月《嵌入式技术特刊》,更多优质内容,马上下载阅览

分析完机械结构后,紧接着需要考虑的是I/O资源分配。树莓派2B/B+的I/O中包括两个SPI接口、两个I2C接口和一个UART接口。没有可用的硬件PWM和ADC。并且,I2C0被用作IDPROM接口,用于读取HAT板卡信息,用户无法使用。SPI1在CPU中又叫做SPI_AUX,目前 Linux驱动尚不完善,但可以通过pigpo库调用。如下图所示:

玩转树莓派!设计一个专属开源扩展板

本例将SPI0、I2C1和UART0引出至排针,MAX7219使用SPI1控制,并使用GPIO作为软片选。其他功能根据布线任意分配GPIO。

2. 硬件设计与制作

需求分析完成后开始进行硬件设计,兔子使用的是Cadence 16.6工具。原理图工具为OrCAD Capture CIS,PCB工具为Allegro PCB Editor。首先是IDPROM,将一片EEPROM与树莓派的I2C0相连。这部分电路为保留功能,实际生产时不安装(实际不焊接的器件用NC表示)。

玩转树莓派!设计一个专属开源扩展板

用户LED使用GPIO灌电流控制,当IO为低时LED点亮。

玩转树莓派!设计一个专属开源扩展板

按键部分通过GPIO检测按键左侧电平实现,按键松开时为高电平,按下为低电平。这里未添加硬件消抖,需要软件实现。

玩转树莓派!设计一个专属开源扩展板

红外发射管需要电流较大,因此通过一个GPIO控制NPN三极管来驱动红外LED,高电平时红外管导通。可以只焊接并使用一个LED,使用两个LED可以增强红外信号

玩转树莓派!设计一个专属开源扩展板

红外接收采用一体接收头HS0038,可以工作在3.3V电压下,使用一个GPIO来接收红外信号。

玩转树莓派!设计一个专属开源扩展板

有源蜂鸣器也需要较大电流,和红外管一样采用三极管驱动,GPIO高电平时蜂鸣器发声。

玩转树莓派!设计一个专属开源扩展板

数字显示采用两个4位7段数码管(共阴极,算上小数点其实是8段),并通过MAX7219芯片进行驱动。MAX7219最多提供8段8位显示,这里将 MAX7219的段码A~DP按顺序同时连接两片数码管,用于显示每一位的内容。而MAX7219的数位(Digital)选择信号则分别连至两片数码管各公共端。

MAX7219通过SPI与树莓派相连,由于只需要控制不需要读取信息,DOUT可不接。芯片采用5V供电,严格意义上SPI应使用5V电平,经过树莓派的3.3V电平也可以正常控制,但建议设置电平转换电路。

玩转树莓派!设计一个专属开源扩展板

玩转树莓派!设计一个专属开源扩展板

最后是接口扩展排针,串接的100ohm电阻起限流保护作用。每个接口分别提供了3.3V电源和GND。

玩转树莓派!设计一个专属开源扩展板玩转树莓派!设计一个专属开源扩展板

ICA HAT的PCB采用廉价的双面板(兔子生产10片PCB只需要50RMB),需要说明的是布局。

根据一般用户的使用习惯,数码管并排放置于板子的上部(最为醒目的位置),按键放在板子的右下角(惯用左手的朋友可放在左侧)。红外收发部分和IO接口整齐排列于四周板边以防止阻挡和方便接线。其他的如LED和蜂鸣器在板中间选择位置放置即可。

玩转树莓派!设计一个专属开源扩展板

玩转树莓派!设计一个专属开源扩展板

设计好的PCB文件可导出成光绘(Artwork)和钻孔(Drill)文件交予PCB厂商生产,国内的厂商一般也会接受Altium Designer和Protel格式的工程文件,但实际也是转成光绘来进行生产的。厂商同时会提供免费的测试,保证电路不出现短路等情况,下图为生产好的 PCB:

PCB生产后是器件贴片焊接,如果是机器焊接就需要提供生产钢网用的助焊层(Solder mask)文件,和用于机器贴片的装配层(Assembly)文件。

这里由于器件简单量少,兔子采用手工焊接的方式。焊接时可先焊接难度较大引脚密集的贴片IC,然后焊接高度较低的贴片器件,最后焊接较高的直插器件。连接器和数码管可于最后焊接。下图为手工焊接完成的电路板,我们称之为PCBA:

需要注意的是,焊接完成后需要测试电路是否短路,特别是电源的短路,然后再上电测试。否则不但可能烧坏HAT板子,还有可能损坏树莓派主板。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 树莓派
    +关注

    关注

    116

    文章

    1701

    浏览量

    105562
  • 智能硬件
    +关注

    关注

    205

    文章

    2340

    浏览量

    107470
  • 开源扩展板
    +关注

    关注

    0

    文章

    1

    浏览量

    1462
收藏 人收藏

    评论

    相关推荐

    DIY树莓扩展板

     Arduino的扩展板被称为Shield,而树莓扩展板则称作HAT(Hardware Attached on Top),意为附加在树莓
    发表于 08-04 14:37 7413次阅读

    LN香蕉扩展板使用教程

    /forum.php?LN_Hub_32IO扩展板使用:http://forum.lemaker.org/cn/forum.php?LeMaker、Banana Pi、Raspberry Pi、乐美客、香蕉树莓
    发表于 08-04 18:01

    广告贴 - 树莓UPS锂电源扩展板介绍

    本电源扩展板是专门为树莓B型板子而设计的,支持以下板子型号,采用全新的安装方式,安装简便,与树莓板子融为
    发表于 08-07 21:36

    硬件创客开源设计教程资料汇总,带你玩转树莓

    AD/DA,树莓派系列教程18:SPI 开源硬件创客15酷应用玩转树莓的PDF电子书:本书
    发表于 05-18 14:35

    从零开始设计开源树莓扩展板

    Arduino的扩展板被称为Shield,而树莓扩展板则称作HAT(Hardware]
    发表于 05-21 07:00

    基于具有Arduino Leonardo的树莓扩展板的介绍

    树莓的功能和Arduino的功能具有互补性,于是乎DFROBOT就推出了这样款具有Arduino Leonardo的树莓
    的头像 发表于 01-15 11:15 9981次阅读
    基于具有Arduino Leonardo的<b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>扩展板</b>的介绍

    如何玩转树莓

    技术大拿带你玩转树莓,聊聊树莓的那些事!
    的头像 发表于 05-30 15:03 3614次阅读
    如何<b class='flag-5'>玩转</b><b class='flag-5'>树莓</b><b class='flag-5'>派</b>

    微雪电子树莓3/3+计算模块扩展板介绍

    树莓3/3+ 计算模块扩展板 外设扩展板 兼容Compute Module IO Board V3 可接入各种树莓
    的头像 发表于 11-12 16:25 2890次阅读
    微雪电子<b class='flag-5'>树莓</b><b class='flag-5'>派</b>3/3+计算模块<b class='flag-5'>扩展板</b>介绍

    dfrobotArduino 树莓扩展板简介

    前段时间推出的树莓扩展板“Rapberry Pi meet Arduino”受到了广大爱好者的致好评,特此DFRobot又为大家带来了
    的头像 发表于 12-20 16:11 2204次阅读
    dfrobotArduino <b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>扩展板</b>简介

    dfrobot树莓4B/3B+ IO扩展板简介

    IO Expansion HAT是款专为Raspberry Pi 开发的IO扩展板扩展板树莓IO口均引出,包含数字端口、模拟端口、
    的头像 发表于 01-07 10:40 6520次阅读
    dfrobot<b class='flag-5'>树莓</b><b class='flag-5'>派</b>4B/3B+ IO<b class='flag-5'>扩展板</b>简介

    dfrobot树莓RGB LCD1602按键扩展板彩色底简介

    树莓RGB LCD1602按键扩展板, IIC通讯接口,可用于搭建树莓数据监控和小型操作平台。
    的头像 发表于 01-08 11:29 2213次阅读
    dfrobot<b class='flag-5'>树莓</b><b class='flag-5'>派</b>RGB LCD1602按键<b class='flag-5'>扩展板</b>彩色底简介

    树莓IO扩展板的技术规格 树莓扩展板该怎么用

    树莓IO扩展板是著名开源硬件商DFRobot专为树莓开发的IO
    的头像 发表于 05-17 15:18 3415次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>IO<b class='flag-5'>扩展板</b>的技术规格 <b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>扩展板</b>该怎么用

    树莓GPIO扩展板三组2×20排针接口 DIY板

    专为树莓设计的接口外扩板,可为树莓外扩出三组 2×20 的排针接口, 以便接入多个树莓
    的头像 发表于 07-02 11:40 2008次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>GPIO<b class='flag-5'>扩展板</b>三组2×20排针接口 DIY板

    clumsyMIDI树莓扩展板

    电子发烧友网站提供《clumsyMIDI树莓扩展板.zip》资料免费下载
    发表于 07-18 09:21 1次下载
    clumsyMIDI<b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>扩展板</b>

    开源硬件创客 15酷应用玩转树莓 (工业智能新技术系列)

    电子发烧友网站提供《开源硬件创客 15酷应用玩转树莓 (工业智能新技术系列).pdf》资料免费下载
    发表于 08-30 16:12 8次下载
    <b class='flag-5'>开源</b>硬件创客 15<b class='flag-5'>个</b>酷应用<b class='flag-5'>玩转</b><b class='flag-5'>树莓</b><b class='flag-5'>派</b> (工业智能新技术系列)