**这是本文档旧的修订版!**
支持树莓派和小脚丫FPGA的双通道高速数据采集系统
项目需求
功能要求
- 设计一个双通道的高速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板:完成模拟信号到数字信号的转换 基于项目要求,我们将此项目划分为三大功能板来实现,分别为ADC板,FPGA 板,树莓派板。首先是设计一个双通道的高速ADC采集卡能够通过Mini-PCIe连接器同小脚丫FPGA扩展板连接,其次是一个树莓派HAT板,通过其上的Mini-PCIe插座将高速ADC的数据传递到板子上的FPGA芯片,经过FPGA进行数据处理后,再通过树莓派上的SPI总线跟树莓派进行连接,由树莓派进行波形的显示。
1. ADC子板
整块ADCpcb板进行模拟到数字信号的转变,如图所示,一共由滤波电路、输入信号是否衰减选择模块、信号放大模块、外加偏置电压模块以及ADC模块组成。由于项目要求模拟宽带为DC-10MHz,因此前面的滤波电路要将10MHz频率以上的信号滤除。被采集模拟信号的范围要求为±5mV-±10V,ADC的共模输入电压范围为0.4A-1.4A,因此要对滤波后的模拟信号进行一个衰减处理,利用4通道单独控制的ADG611实现双路是否衰减控制。衰减处理后的信号在进行相关的放大,按照是否衰减将信号分为不同的区间,对不同的区间选择不同的放大倍数。因此在后面利用多路开关选择器TS3A5017实现不同区间的不同放大倍数。经过放大处理后的信号还有要提供一个外部直流偏置,该直流偏置将信号偏置到满足ADC处理范围的信号。最终经过ADC将模拟信号转变为数字信号。
- ADC芯片:选择美信公司 MAX19506的ADC芯片
- ADC的连接
- 信号调理模块
- 滤波器
- 衰减
- 电源设计
- 电源供电
- 直流偏置
- 放大器
- 滤波器
- 芯片选择
- PCIE接口槽
2. FPGA板:
3. 树莓派板
- 波形显示
- SPI接口
关键元器件
- AD8061 滤波器设计中的运放器
- CPC1017N 光耦
- TMUX1511 具有 1.8V 逻辑的低电容、1:1 (SPST) 4 通道断电保护开关
- ADC MAX19506
- TS3A5017 多路选择开关器,通过控制不同通路来选择信号的不同放大倍数,对信号进行放大
- ADA4940-1 用作驱动差分放大器 之后接入ADC芯片
- ADM8660
- LT3032EDE
- LMV721 运放
- 树莓派
实施计划:
项目日志
- 系统电源的设计
- FPGA与ADC之间的通信
- PCIe接口引脚定义
- FPGA内部数据处理
- FPGA与树莓派之间的数据传输
- 树莓派上波形显示
项目实施
- 第一周:查找相关资料,确定总体项目方案。
- 第二周:学习PCB,设计与制造PCB。完成信号调理模块的放大器与滤波的设计,设计ADC板。
- 第三周:学习FPGA与Verilog编程,设计FPGA板,确定电源的设计参数。
- 第四周:实现树莓派通过SPI与FPGA模块连接,焊制板卡,系统测试调连。
PCB设计
- PCB sheet
- ADC板子原理图PDF shiboqi.pdf
- FPGA板子原理图PDF fpga_project.pdf
PCB制造
ADC
FPGA板
LOGO设计
BOM表
PCB焊接、调试
FPGA连接和Verilog编程
- FPGA控制衰减放大电路 fpga_control_adc_tcr.dir.zip
- ADC采集
- UART串口 uart.zip
系统测试
项目报告
项目简要总结
- 完成FPGA板的焊接与调试,FPGA能够正常工作,烧录程序,实现与外部ADC之间的控制,以及与外部UART的通信。
- 完成ADC板中的ADC芯片的输出数据的调试,ADC芯片能够正常完成采集数据与量化。
- 未完成ADC板的模拟电路调试部分,最后得到的差分电压不能够达到项目需求。
项目出现的问题
在该项目中,我们所遇到的主要问题是在ADC板的模拟电路调试部分。调试过程当中:
- 已完成部分
- 光耦控制的交直流耦合部分正常工作
- 多路开关选择经调试后正常工作,实现交流电压输入之后选择是否衰减40倍的效果
- AD8061正常完成运放作用
- ADC芯片正常工作,能够输出0.9V的输出共模电压。
- 未完成的部分及出现的问题
项目改进及方案
基于对模拟电路的调试遇到了瓶颈,经过和老师的讨论之后,我们修改了项目的部分方案。 首先我们将信号发生器的信号电压加在ADC芯片所对应的管脚上,再将ADC板搭建在cyc10的开发板上,通过cyc10开发板上的8个LED指示灯的亮灭来观看ADC芯片是否正常完成采样。
测试视频如下:
这是加入正电压差的情况,可以得出加到0.7V时,LED灯的线性变化。
这是加入负电压差的情况,同样也可得出加到0.7V时,LED灯的线性变化。
上图中0代表LED灯亮,1代表LED灯灭。正电压差的高位始终为0,负电压差的高位始终为1。根据芯片手册,ADC芯片的输出数据格式为二进制补码,可表示的有效数据为7位。可得出,当正负压差都达到0.7V左右之后,达到饱和,由此可以推断出ADC的处理电压差在0.75V左右。
ADC正常完成采样之后,用UART串口配置后在计算机中的串口程序中查看接收到的ADC采样数据。
参考资料
- 示波器设计参考
- FPGA
- 来自FPGA4FUN上的FPGA代码参考
- ADC
- 扩展板
- scopefun
- 树莓派
- JTAG
- 滤波器运放的选择AD8651
- 4通道单独控制双路信号ADG611
- 多路开关选择器TS3A5017
- 高速缓冲器LMH6559
- 差分放大器LMH6559