本培训为期2个月(8周),重点入门PCB设计 + FPGA应用 + Python编程 + 基于MicroPython的嵌入式系统,强调PCB设计的流程和规范、FPGA编程的数字逻辑设计思路、嵌入式系统的软硬件系统协同应用,也强调英文文档的阅读和项目总结、报告的能力。

  • 学员摸底调查问卷:
    • 已经具备的基础、掌握的技术、参加过的电赛活动
    • 自己感兴趣或希望要加强的技术
    • 研究生要做的研发课题
  • 构建Wiki项目页面,学员每天在这个页面进行项目的状态更新,养成写文档的习惯、培养向外展示自己的能力
    • 一个项目组一个页面
    • 每个人一个页面,轮流进行发布
    • 用于平日资料查询的归纳、总结、对项目阶段性进程的记录
  • 学员分组、3个人1组合作负责1个项目的完成
    • 基于技术能力的互补
    • 基于每个学员将来论文研发的方向
  1. 第1周:资料查找及方案设计(前2天)、PCB设计(后三天)
  2. 第2周:FPGA基础知识及编程, PCB焊接,并用FPGA编程驱动焊接好的PCB板
  3. 第3周:FPGA数字系统编程 - PWM、DDS、SPI、OLED、ADC
  4. 第4周:Python编程及应用 - 科学计算、数据分析、可视化
  5. 第5周:基于MicroPython的嵌入式系统学习(Pico学习板)
  6. 第6周:设计一个FPGA + MCU + 模拟输入/输出 + WiFi + 电源的小系统板
  7. 第7周:Verilog编程 + MicroPython编程 + 上位机编程 + 焊接调试
  8. 第8周:系统调试、测试及项目报告
  1. 苏公雨(PCB、综合)
  2. Daniel(FPGA基础)
  3. 吴志军(FPGA系统)
  4. 齐伟(Python)
  5. 陈强(MicroPython嵌入式)

项目1 - 驱动64个LED:

  • 熟悉矩阵式驱动控制电路设计及控制方式
  • 熟悉PCB的设计流程以及操作技巧
  • 用于焊接训练用
  • 用于FPGA编程控制
  • 用于RP2040编程控制

2monthstrainingproject1.png

实战培训项目: 点亮64个LED

项目2 - 高速数据采集

  • 技术指标分析及方案设计
  • 模拟电路设计方法、要点及仿真(增益调整、频带控制)
  • 电源设计 - 几种不同的变换方式比较以及在工程中的实际应用
  • MCU + FPGA + ADC + 模拟信号链路 + Matlab的分工协调
  • 上位机工具,尤其是开源工具的使用,比如Matlab、LabView、SerialPlot、QT编程等

2monthstrainingproject2.png

实战培训项目: 高速数据采集

时间上午(9:30-11:30)下午(2:00 - 5:00)
第1周(PCB设计)星期一 开营及实战训练介绍 学员查找资料(英文阅读),写综述报告(现场布置题目,基于Wiki系统,用Markdown的格式)
星期二 电子产业链的介绍及电子产品的基本构成 资料查找(英文阅读)、项目方案确定 - 第一个项目设计
星期三 PCB设计及KiCad6介绍 用KiCad6设计原理图
星期四 用KiCad6进行PCB布局自己完成项目的元器件布局
星期五 用KiCad6进行PCB布线自己完成项目的PCB布线,并提交Gerber文件去制板
第2周(FPGA基础)星期一 什么是FPGA、能做什么、如何设计 小脚丫FPGA设计流程体验/WebIDE介绍
星期二 Verilog语法规范及在FPGA上实现组合逻辑学员自己完成数码管显示操作
星期三 在FPGA上实现时序逻辑学员自己完成呼吸灯、流水灯、计数器等操作
星期四 在FPGA上实现状态机学员自己实现交通灯的功能
星期五 焊接基本技巧 学员完成自绘电路板的焊接,并用小脚丫FPGA编程测试
第3周(FPGA系统)星期一 PWM原理、设计及应用学员设计PWM信号,并用硬件助手进行观察波形
星期二 DDS生成任意波形学员自己根据教程实现方波、三角波、正弦波,并使用硬件助手进行观察
星期三 常用的串行总线及比较 - SPI、I2C、UARTUART总线的逻辑编程及应用、用硬件助手观察波形
星期四 通过UART同PC连接进行数据传输学员通过UART向PC传输数据,并通过PC控制FPGA内部逻辑
星期五 模拟/数字转换的方式学员自己编程将电位计的电压信号采集下来并用LED显示出来,同时发给上位机通过串口助手显示采集到的信息或波形
第4周(Python编程)星期一 Python语言特点、应用及开发环境Python的数据类型和控制流程
星期二 Python的数据结构和I/O操作学员实例完成
星期三 基于对象的编程和线程学员实例完成
星期四 Python在科学计算中的应用 学员实例完成
星期五 Python在数据分析中的应用学员实例完成
第5周(嵌入式系统)星期一嵌入式系统基本概念以及RP2040的开发使用环境 学员根据网上例程完成LED等的显示、蜂鸣器的音乐播放等
星期二嵌入式系统中的线程和中断的使用学员根据网上教程完成交通灯的控制
星期三SPI总线驱动OLED显示 学员根据网上资料实现OLED上的图形化编程
星期四嵌入式系统中的数据采集及ADC的应用学员在OLED上显示采集到的波形 - 音频
星期五WiFi的连接及物联网应用学员根据网上资料实现Web Server功能
第6周(综合项目电路设计) 星期一 综合性项目的任务布置 - 功能、性能等要求学员自己查阅资料设计一个简易的数据采集系统 - 基于给定的器件
星期二 原理图符号库和封装库的构建学员自己绘制系统的原理图
星期三 原理图点评学员修正原理图并开始PCB布局
星期四 学员的PCB布局点评学员修正PCB布局并开始布线
星期五 学员的PCB布线点评学员修正好PCB布线并提交制板
第7周(综合项目编程设计)星期一 Verilog或MicroPython编程 Verilog或MicroPython编程
星期二 Verilog或MicroPython编程Verilog或MicroPython编程
星期三 Verilog或MicroPython编程Verilog或MicroPython编程
星期四 焊接调试系统调试 - 答疑
星期五 上位机波形显示、控制程序的编写系统调试 - 答疑
第八周(系统调试、报告、综合测试)星期一 论文撰写要求及方法系统测试/论文撰写
星期二 系统测试/论文撰写系统测试/论文撰写
星期三 系统测试/论文撰写系统测试/论文撰写
星期四 系统测试/论文撰写系统测试/论文撰写
星期五 综合知识测试项目总结