#### 支持树莓派和小脚丫FPGA的双通道高速数据采集系统 --- 项目参与人员: * 复旦大学硕士研究生[[page_jiahao.li|李佳豪]] * 即将就读南昌大学硕士研究生的[[page_yue.zhang|张玥]] * 中国矿业大学硕士研究生[[page_shuai.liu|刘帅]] {{ :pnqlu6rgqwmoh7sxfibwsq.jpg |}} --- ### 项目需求 --- #### 功能要求 * 设计一个双通道的高速ADC采集卡能够通过Mini-PCIe连接器同小脚丫FPGA扩展板、同Cyclone 10的SoC板进行连接 * 设计一个树莓派HAT板,通过其上的Mini-PCIe插座将高速ADC的数据传递到板子上的FPGA芯片(可以用XO2-1200 TQ100封装的FPGA),经过FPGA进行数据处理后,再通过树莓派上的SPI总线跟树莓派进行连接,由树莓派进行波形的显示 #### 性能要求 - 被采集的模拟信号的幅度范围±5mV ~ ±10V,模拟带宽DC - 10MHz - 双路并行ADC,位宽10bit,采样率50MSPS; - 树莓派接口,尺寸合适、布局合理; - 电源及PCB满足系统要求; --- ### 项目方案 --- #### 方案综述 ##### 项目分为三个部分: * 第1部分(ADC板):完成模拟信号到数字信号的转换 * 第2部分(FPGA板):控制ADC板的模拟信号处理,并对采集到的数字信号进行处理 * 第3部分(树莓派板):将FPGA处理完的数字信号显示出来 项目总体框图如下: {{ :项目系统框图.png |}} #### 一、各部分说明 ##### 1. ADC子板:完成模拟信号到数字信号的转变,如下图所示。 {{ :adc设计.jpg |}} ##### 2. FPGA板: FPGA板功能框图如下。 {{ :fpga板.png |}} ##### 3.树莓派板 * 波形显示 * SPI接口 #### 二、关键元器件选择 {{ :芯片采购清单.png |}} #### 三、实施计划 * 第1周:查找相关资料,确定总体项目方案。 * 第2周:学习PCB,设计与制造PCB。完成信号调理模块的放大器与滤波的设计,设计ADC板。 * 第3周:学习FPGA与Verilog编程,设计FPGA板,确定电源的设计参数。 * 第4周:实现树莓派通过SPI与FPGA模块连接,焊制板卡,系统测试调连。 --- ### 项目实施 --- #### PCB设计 * PCB原理图: * ADC子板{{:shiboqi.pdf|}} * FPGA子板{{:fpga_project.pdf|}} #### PCB制造 ##### BOM表 * ADC子板BOM表{{:adc_bom.xlsx|}} * FPGA子板BOM表{{:fpga_bom.xlsx|}} ##### PCB板图 * ADC子板: {{ :adc_pcb.png?600 |}} * FPGA子板:{{ :fpga_pcb.png?600 |}} ##### LOGO设计 * ADC子板: {{ :logo设计.png?600 |}} * FPGA子板: {{ :logo设计1.png?600 |}} #### PCB焊接、调试 * 焊接完成后的ADC板 {{ :adc焊接.jpg?400 |}} * 焊接完成后的FPGA {{ :fpga焊接.jpg?400 |}} #### FPGA连接和Verilog编程 * FPGA控制衰减放大电路 {{:fpga-control-adc.zip|}} * ADC采集 {{:fpga-adc.zip|}} * UART串口 {{:uart.zip|}} ### 项目报告 --- #### 项目简要总结 * 完成FPGA板的焊接与调试,FPGA能够正常工作,烧录程序,实现与外部ADC之间的控制,以及与外部UART的通信。 * 完成ADC板中的ADC芯片的输出数据的调试,ADC芯片能够正常完成采集数据与量化。 * 未完成ADC板的模拟电路调试部分,最后得到的差分电压不能够达到项目需求。 #### 项目出现的问题 在该项目中,我们所遇到的主要问题是在ADC板的模拟电路调试部分。调试过程当中: * 已完成部分 * 光耦控制的交直流耦合部分正常工作 * 多路开关选择经调试后正常工作,实现交流电压输入之后选择是否衰减40倍的效果 * AD8061正常完成运放作用 * ADC芯片正常工作,能够输出0.9V的输出共模电压。 * 未完成的部分及出现的问题 * 在下图所示的开关控制放大倍数的部分,在低电压幅度范围内能够正常完成放大倍数,而加大了电压幅度值之后,放大后的电压底部会出现失真变形的现象,未找到解决方案 {{ :问题1.png |}} * 在下图所示的实现转换差分信号输出的部分,得到的差分电压幅度值未能达到要求。不论我们给出的输入信号为多大,得出的差分信号电压差始终处于3.8V左右,未找到解决方案 {{ :问题2.png |}} #### 项目改进及方案 * step1:将信号发生器的信号电压加在ADC芯片所对应的管脚 * step2:将ADC板搭建在cyc10的开发板 * step3:通过cyc10开发板上的8个LED指示灯的亮灭来观看ADC芯片是否正常完成采样 {{:信号发生器.jpg?300 |}} {{ :cyc10.jpg?300|}} {{ :adc调试板.jpg?300 |}} #### 系统测试 * ADC芯片测试 {{ :led11.mp4 |}} {{ :led2.mp4 |}} {{ :led灯变化.png |}} 当正负压差都达到0.7V左右之后,达到饱和,由此可以推断出ADC的处理电压差在0.75V左右。 * FPGA串口通信测试: {{ :串口数据.png |}} --- ### 参考资料 --- * 示波器设计参考 * [[http://www.stepfpga.com/doc/%E7%AE%80%E6%98%93%E7%A4%BA%E6%B3%A2%E5%99%A8|基于小脚丫FPGA学习模块+串行ADC+LCD显示制作简易的数字示波器]] * [[https://ee.ofweek.com/2012-02/ART-8300-2817-28599243.html|基于FPGA的数字示波器设计]] * {{:fpga示波器的采样存储和显示设计.pdf|}} * {{:ds203_v2.72_schematic_20131106_.pdf|便携式示波器DS203的原理图}} {{ ::ds203scope.jpg?600 |}} {{ :dso203portatil.jpg?600 |}} * FPGA * [[http://www.stepfpga.com/doc/step-mxo2%E7%AC%AC%E4%BA%8C%E4%BB%A3|step-mxo2第二代]] * [[http://www.stepfpga.com/doc/_media/step-max10_%E7%A1%AC%E4%BB%B6%E6%89%8B%E5%86%8Cv1.2.pdf|STEP-MAX10 硬件手册]] * [[http://www.eetree.io/doc/_media/%E5%9F%BA%E4%BA%8Efpga%E7%9A%84%E5%A4%9A%E5%8A%9F%E8%83%BD%E6%95%B0%E6%8D%AE%E9%87%87%E9%9B%86%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1.pdf|基于fpga的多功能数据采集系统设计]] * 来自FPGA4FUN上的FPGA代码参考 * [基于FIFO的设计](https://www.fpga4fun.com/digitalscope_hdl1.html) * [基于双口RAM的设计](https://www.fpga4fun.com/digitalscope_hdl2.html) * [触发机制的实现](https://www.fpga4fun.com/digitalscope_hdl3.html) * [更多的功能](https://www.fpga4fun.com/digitalscope_hdl4.html) * ADC * ADC选型 *[[https://www.maximintegrated.com/en/products/analog/data-converters/analog-to-digital-converters/MAX1182.html|美信公司 MAX1182]] *[[https://www.maximintegrated.com/en/products/analog/data-converters/analog-to-digital-converters/MAX19516.html|美信公司 MAX19516]] *[[http://www.ti.com/cn/lit/ds/symlink/adc10dl065.pdf|TI公司 ADS5237]] *[[http://www.ti.com/cn/lit/ds/symlink/ads5237.pdf|TI公司 ADC10DL065]] *[[https://www.analog.com/media/en/technical-documentation/data-sheets/ad9204.pdf|ADI AD9204]] * [[https://www.analog.com/media/en/technical-documentation/data-sheets/AD9204.pdf|AD9204 Data Sheet]] * [[http://www.elecfans.com/p/870408.html|AD9204 10位、20 MSPS/40 MSPS/65 MSPS/80 MSPS、1.8 V、双通道模数转换器]] * 多路数据参考资料 [[http://www.eeeguide.com/multi-channel-data-acquisition-system/|]] * 扩展板 * [[http://www.stepfpga.com/doc/baseboard_rpi|支持树莓派接口的STEP FPGA扩展板]] * scopefun * [[https://www.scopefun.com/|]] * {{:scopefun功能结构.pdf|}} * 树莓派 * [[https://www.zybuluo.com/SiberiaBear/note/337874|树莓派的SPI]] * [[https://zh.wikipedia.org/wiki/%E5%BA%8F%E5%88%97%E5%91%A8%E9%82%8A%E4%BB%8B%E9%9D%A2|SPI]] * JTAG * [[http://www.stepfpga.com/doc/jtag|]] * [滤波器运放的选择AD8651](https://www.analog.com/cn/products/ad8651.html) * [4通道单独控制双路信号ADG611](https://www.analog.com/media/en/technical-documentation/data-sheets/ADG611_612_613.pdf) * [多路开关选择器TS3A5017](https://www.sparkfun.com/datasheets/BreakoutBoards/TS3A5017.pdf) * [高速缓冲器LMH6559](http://www.ti.com/lit/ds/symlink/lmh6559.pdf) * [差分放大器ADA4932](https://www.analog.com/media/en/technical-documentation/data-sheets/ADA4932-1_4932-2.pdf)