查看: 7712|回复: 9

【懒兔子玩树莓】DIY一个树莓派扩展板

  [复制链接]
  • TA的每日心情
    无聊
    2015-8-17 09:38
  • 签到天数: 361 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2015-7-28 13:09:26 | 显示全部楼层 |阅读模式
    分享到:

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

    所有设计资料均已开源,可以在懒兔子的GitHub上获取:

    http://github.com/nightseas/pi_mods



    Raspberry Pi ICA HAT

    1.       需求分析

    兔子设计HAT的初衷是为树莓派提供基本的显示和用户输入功能,并引出UART、I2C、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。全长板与树莓派外框尺寸相同,但由于树莓的USB和RJ45连接器较高,需要注意该区域底层的器件是否会与连接器接触。

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

    两种板型都通过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板子,还有可能损坏树莓派主板。


    评分

    参与人数 1与非币 +5 收起 理由
    loveeeboard + 5 三周年铜板双倍!

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2022-4-7 16:37
  • 签到天数: 736 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2015-7-28 13:16:06 | 显示全部楼层
    cadence画的,挺漂亮的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-8-4 16:50:17 | 显示全部楼层
    这个板子你在卖吗
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2018-5-7 18:25
  • 签到天数: 15 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2015-8-6 14:27:34 | 显示全部楼层
    给github来个star
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2015-8-17 09:38
  • 签到天数: 361 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2015-8-7 09:10:31 | 显示全部楼层
    噗噗熊 发表于 2015-8-4 16:50
    这个板子你在卖吗

    没有啊,我也没时间焊板子,只是焊了一块调通了。
    后续还会做小车和四轴的HAT
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2018-3-28 17:24
  • 签到天数: 276 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2015-8-10 13:21:55 | 显示全部楼层
    焊的很漂亮                  
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-7-11 15:08
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2015-8-10 13:36:02 | 显示全部楼层
    【送福利】知识问答,有奖:1KW无刷直流电机解决方案,英飞凌造!https://www.cirmall.com/1kw_bldc?invite_id=MTk0MTY%3D  答案DCDBC
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-12-19 09:44
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2015-8-12 20:11:11 | 显示全部楼层
    懒兔子,不错,继续加油
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-3-23 12:01
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2015-11-20 15:19:45 | 显示全部楼层
    很好  有些线推挤下好看点
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-6-22 13:28
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2021-6-22 13:23:49 | 显示全部楼层
    你好  EEPROM里的内容怎么定义 是由一个标准吗还是自己随便定义
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /5 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-12-24 07:37 , Processed in 0.217060 second(s), 37 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.