#### 今日推荐:小脚丫FPGA系统便携式演示平台的制作 --- 这个项目是我们硬禾实战营为期一个月的实战项目,由3名在校学生完成,从方案制定到器件选型,从原理图库的绘制到最终板子调试成功,以下是整个项目的设计过程和学员在实际的项目中遇到的一些问题以及解决的方式。 项目参与人员及分工: * 来自复旦大学研一的[[page_shuping.wang|汪淑萍]] * 来自复旦大学研一的[[page_lingxiao.zeng|曾凌霄]] * 来自暑期后即将到南昌大学读研的[[page_jin.liu|刘锦]] {{ :ce2f4212-d38d-47a0-b5ed-7d6f9de4f2b7.jpeg?800 |}} ### 项目需求 --- #### 系统设计要求 设计小脚丫FPGA及其功能模块的演示系统,综合考虑各个功能模块演示效果,要求布局合理,设计美观。 - 能够放置在尺寸为310mm*270mm的便携箱子里 - 能演示小脚丫的各种扩展功能 - PCIE接口扩展模块 - 适配Arduino生态系统 - 适配树莓派生态系统 - 学习主板 - 面包板应用 #### 其它考虑 - 尺寸合适、布局合理 - 电源及PCB满足系统要求 - 能够通过触摸进行每一路的电源控制 - 能够通过充电宝供电,以便在没有外接电源的情况下能够演示 ### 项目方案 --- #### 方案综述: ##### 一、问题: - 如何摆放使演示平台具有美感,视觉上让人感觉舒适? - 打开演示箱第一眼想呈现给别人的是什么,怎样让别人印象深刻? - 怎么通过演示平台突出扩展板卡的功能优点,引起别人的兴趣? - 演示平台的尺寸设计,便于携带。 - 解决电源问题。 二、参考示例: - 模拟电路实验箱设计 - 来自[Mikroe Embedded Tools公司的Aslk-Pro-Kit](https://www.mikroe.com/aslk-pro-kit). {{ :aslk-development-board.jpg |}} {{ :aslkdevbrd.png |}} 三、解决方案: 1.各扩展功能模块的摆放(遵循整齐美的原则): 初始演示箱设计图:{{ :demo1.jpg?800 |}} 2.功能演示设计(程序控制): * 开箱时接电源 * LCD显示welcome * 开关控制(按下不同的开关展示不同扩展模块的功能,选择性展示各模块的独特优点) * [姿态传感器](https://en.wikipedia.org/wiki/Attitude_control&prev=search) * [环境光传感器](https://en.wikipedia.org/wiki/Ambient_light_sensor&prev=search). 3.初始演示箱的尺寸设计: {{ :平面尺寸设计.png?700 |}} 4.初始功能框图(各扩展块之间的逻辑关系): {{ :演示平台功能框图.png?700 |}} #### 关键元器件: * 小脚丫FPGA * 各扩展功能板 * 电容式触摸传感器:{{:ttp224.pdf|}}{{:tontek-design-tech-ttp224n-bsb_c90399.pdf|}} * 三极管 * MOS管 #### 实施计划: * week1:和老师沟通,确定演示箱的详细功能需求;根据需求制定初步的方案,并在本周内确定最终可执行方案。 * week2:PCB电路板设计的学习,根据确定的方案进行PCB的设计。 * week3:Verilog编程学习,Verilog编程展现扩展板初始功能。 * week4:系统联调,项目的终极答辩。 ### 项目实施 --- #### PCB设计 ##### PCB原理框图: {{ :pcb原理图.png?700 |}} ##### PCB原理图: {{:platform.pdf|}} #### PCB制造: * BOM表: {{:platform_bom.xlsx|}} * PCB板图: {{ :pcb板图.png?700 |}} * PCB样板:{{ :pcb样板图.jpg?700 |}} #### PCB焊接、调试 ##### 一、焊接完成的PCB板图: {{:正面.jpg?500 |}}{{ :背面.jpg?500 |}} ##### 二、PCB焊接及调试过程中出现的问题: ** 1.电源模块的电路到开关模块的电路不通** **原因**:在排查原理图时发现开关控制电路中的三极管由于是在库里面调用的,没有去检查三级管的极性,导致其基极b与发射极e与实际用到的封装相反,这样焊上去的三极管是反的,所以电路不通。 **解决办法**:在焊接时将三极管翻转过来焊接。 \\ ** 2.电源模块的电路中的发光二极管在通电时不亮** **原因**:原理图中这个发光二极管没有连接上,导致在PCB文件中没有生成NET,而在PCB布线时忽略了这个问题 **解决办法**:修改原理图 \\ **3.第二块TTP224芯片控制的四个开关无效** **原因**:焊接芯片时其贴片没有焊接好,有一些引脚焊在一起了,造成短路 **解决办法**:重新焊接好 \\ **4.MOS管误当三级管焊,三极管误当MOS管焊** **原因**:生成的BOM表中封装名称一样,所以没有注意到他们的区别 **解决办法**:重新焊 \\ **5.焊接后在测试时发现有的PCIE地与电源短路** **原因**:在焊接过程中有的锡掉落导致电源与地的引脚连在一起 **解决办法**:在给板子通电之前一定要先用万用表测试一下 \\ **6.有两个电容的丝印标注反了,导致电容焊接错误** **解决办法**:对调,重新焊接 \\ **7.有一路开关还没通** **原因**:目前估计是焊接的那块PCB板子在打板子的时候内部电路有问题(由于焊接时没有分块测试,因而无法百分百确认是PCB板子的问题) **解决办法**:重新焊接了一块新的板子,没有出现问题 > #### FPGA连接和Verilog编程 ##### FPGA连接图: {{ :fpga连接.jpg?700 |}} ##### 扩展板卡的Verilog编程控制: * 坦克游戏demo{{:dot_matrix_demo.rar|}} * 环境光采集和显示demo{{:environment.rar|}} * 电子琴演奏demo{{:pianoshield-altera-max02.rar|}} * 控制LCD(显示welcome)demo{{:display.rar|}} #### 系统测试 {{ :演示.mp4 |}} ### 项目报告 --- #### 项目简要总结 ##### 项目完成情况 * 实现了移动电源和外接电源的自由切换 * 各个扩展模块能够同时正常工作 * 开关模块能够正常控制各个扩展模块 ##### 项目存在的问题 * 没有考虑给面包板供电 * 丝印设置太小 * 开关按键的灵敏度不够高,科技感没有达到预期的程度 * 程序控制效果没有完全实现 * 设计美感有待提升 #### 项目改进及相应的方案 ##### 一、方案改进: - 增加移动电源,便于随时随地展示; - 充分利用演示箱的空间:增加模块收纳功能; - 改进VGA接口凹槽的设计:参考笔记本电脑的接口,避免接口突出容易损坏; 改进后的演示箱设计图:{{ :demo2.jpg?800 |}} 改进后的功能框图: {{ :演示平台框图.png?700 |}} 说明: * 电源控制模块:当外接电源时,由外接电源给演示箱供电;切断外接电源时,无缝切换到移动电源。默认以移动电源供电。 * 开关控制模块:使用电容式触摸开关、三极管和MOS管,触摸相应的按键控制相应的扩展板 ##### 二、PCB设计改进(待完善): - 改进PCB板的尺寸和供电部分的电路,使之适应现有的箱子; - 修改PCB原理图,重新连接三极管; - 调整丝印大小; - 设计给面包板供电的部分; - 调整电源指示LED灯的位置、大小和颜色; - 调整布线,确保走线不相互影响。 ### 学习心得与体会 --- #### 各阶段遇到的问题 - 刚开始接触时对项目的需求和目的不了解,没有方向 - PCB设计时对一些元器件的功能和电路的功能了解不透彻 - 没深刻体会PCB布局布线的次序,浪费了较多时间 - PCB板焊接时没有考虑到边焊边测试,出了问题后浪费大量时间排查出错的位置 - 时间安排不合理导致学习verilog的时间太短,编程部分很多没有亲自写代码去实现 #### 心得与体会 - 对需求不明确时要及时和老师们交流 - PCB板测试的时候尽量分模块,控制单个变量,以便检测故障点 - PCB布局布线之前需要再三确认原理图的电路、器件的封装等没有问题 - PCB设计时谨记先布好局再布线,注意细节(比如丝印大小,过孔大小等) - PCB焊接过程中要掌握基本的焊接技巧和焊接注意事项,要耐心细心,注意部分元器件的极性问题 - 合理分配时间,合理分配各组员的任务 - 加强交流 --- 关于硬禾实战营研究生技能培训更多的实战项目信息,参见[[handsontraining|硬禾实战营研究生技能培训项目第一期]]