显示页面讨论修订记录反向链接回到顶部 本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。 # 树莓派高速ADC采集模块 ## 背景 ### 项目来源 - 52Pi - 市面上还没有基于树莓派的高速ADC采集卡/示波器 - 基于树莓派做一款开源示波器会是一个比较好的平台,DIY示波器是很多硬件工程师都感兴趣的技术点 - 树莓派HAT的大小能够支持双通道高速示波器 - 已经有开源的、运行在浏览器里的示波器软件运行在浏览器里 - 也可以用Python编写示波器的界面 ### 大致需求分析: - 功能 - 通用双通道、高速采集的数字示波器 - 采用2通道、50-100Msps的ADC - 模拟带宽限定在20MHz,对于一个原型的HAT够用了 - 如果实际的场景要求采集更高模拟带宽的信号,可以使用100Msps的ADC,通过FPGA内部的逻辑变换不同的采样时钟相位采集,来达到更高的等效采样,比如FPGA内部的时钟频率能够工作在400MHz,则可以产生2.5ns间隔的相位时钟,达到400Msps的采样,在这种情况下模拟带宽可以到100MHz - 但越高的采样率和分辨率,对采样时钟的抖动要求越高,需要非常低抖动的时钟源,并且在布线的时候要高度注意电源的去偶等,否则用了高性能的ADC器件,实现不了高性能。 - 分辨率?8、10、12、14bit? - 分辨率高 - 前面的模拟链路简单,但成本高 - 分辨率低 - 前面的模拟链路需要处理比较宽的动态范围,ADC的成本低 - 接口方式? - CMOS vs LVDS ?基于器件的价格、封装进行考虑 - 功耗: - 越低越好,与供电电压有关 - 电压? - 3.3V vs 3.3V&1.2V?最好只用3.3V的供电,简化电源的设计,尤其是模拟电压部分 - 可以选用以下厂商的器件 - TI: - ADS4225/ADS4245:http://www.ti.com/product/ADS4225 - ADS5204: 具有 PGA 的汽车类 双路 10 位 40MSPS 低功耗 ADC http://www.ti.com.cn/cn/lit/ds/symlink/ads5204-q1.pdf - ADI: - AD9635:双通道、12位、80 MSPS/125 MSPS串行LVDS 1.8 V模数转换器 https://www.analog.com/media/en/technical-documentation/data-sheets/AD9635.pdf - AD9645: 双通道、14位、80 MSPS/125 MSPS串行LVDS 1.8 V模数转换器 https://www.analog.com/media/en/technical-documentation/data-sheets/AD9645.pdf - Maxim Integrated: - 折中一下,基于性能、价格等因素考虑,可以选用双通道、12bits、125Msps的ADC - ADS4225 @TI http://www.ti.com/product/ADS4225,使用这个器件有很大的灵活性,用同样的封装可以支持4种不同的选择,分不同档次的产品,根据实际的应用场景使用相应的ADC器件。 - 采样率可以是低速的65Msps,便宜 - 分辨率可以是14bits的ADS4245 - 接口方式 - 40Pin的GPIO接口 - 高速数据传输,只能用其中的SPI接口信号 - 50Mbps? - 必须采用FPGA进行缓存,将2* 12bits * 100Msps的数据流存入FPGA内部的SRAM,然后树莓派通过SPI总线读取出来。那么对FPGA的要求是什么? - 存储的需求 - 如果内部的BLOCK RAM够用,可以通过将其配置成FIFO、双口SRAM、环形SRAM等用于采集数据的缓存,如果内部的SRAM不够,可以外接一个SRAM芯片 - RAM的大小取决于需要存储下来的一次采集的采样点的个数,比如16KB的RAM可以存储16K*8/12位/2 ~ 5K个采样点 - 其实12位的精度是为了实现更宽的动态范围,8bit的显示已经足够了,也就是说FPGA通过SPI总线送到树莓派的用8bit的数据就能满足系统的要求了,可以在FPGA内部根据模拟信号的输入幅度进行动态调整,对输入的12位处理成8位,送出来,在FPGA内的数字动态范围达到2^4 ~ 24dB - 12bit ~ 8bit的选取可以在进入到RAM之前,因此16KB的RAM可以存储8K个采样点 - 接口的要求: - 考虑到选取的ADC的接口有并行接口(封装大)、串行LVDS接口(封装小),LVDS还有抗干扰能力强的有点,因此最好FPGA芯片能够支持LVDS接口 - 速度:100Msps的时钟,现在的FPGA都能搞定 - 封装 - 4层板要比2层板价贵费用多出很多,且BGA封装的器件加工成本高,调试困难,因此QFP的器件较好 - 供电 - 如果单一路的3.3V能够搞定,就免去1路低压供电了,但如果ADC需要的低压数字供电与FPGA的内核电压一致,也可以选择带低压供电的FPGA器件 - FPGA配置的PROM - HAT板上上电配置 - 简单,有可能增加EPROM的成本 - 每次上电由树莓派通过GPIO来配置FPGA - 慢,且开发麻烦 - 动态范围 - 最小5mVpp,最大50Vpp - 动态范围为80dB - 12bits的ADC能够提供的动态范围为70dB(等效) - 模拟链路需要10dB以上的动态范围调节 - 在探头的输入端需要加一个20dB的衰减,将50Vpp降为5Vpp - 后续的模拟电路需要提供20dB ~ 30dB的增益 - 在模拟链路中还会有LPF,导致信号的衰减,这些因素都要考虑在内 - 如果采用10bits的ADC,模拟链路需要增加12dB,也就是总体上模拟链路至少要22dB的变化范围 - 如果采用8bits的ADC,模拟链路需要增加24dB,也就是总体上模拟链路至少需要34dB的变化范围 - 供电 - 数字供电 - 3.3V/1.8V或1.2V - 模拟链路供电 - +5V/-5V或+3.3V/-3.3V,模拟链路的供电电源需要通过开关变换以后再经过LDO得到 - 时钟部分 - FPGA内部的锁相环?ADC部分需要单独给时钟供电?看所选器件的数据手册 - 模拟接口 - SMA? - SMB? - BNC? - 板卡物理要求 - 大小 - HAT标准尺寸 - 层数 - 2层 - 成本低,但性能未必能够保证 - 4层 - 加工成本较高,性能较好 - 接插件 - - 定位孔 - ## 方案设计 ### 选用PCB工具软件 - Altium Designer:www.altium.com - Eagle: - KiCad:www.kicad-pcb.org ### 选用器件: - FPGA - ADC - - 模拟运放 - 模拟开关 - 电源 - 模拟信号接口 ### 方案框图 ### ### 指标分配 - 模拟动态范围 - 数字动态范围 ### 数据接口协议定义 ## 详细的设计 ### 元器件库 ### 原理图设计 ### PCB设计 ### Gerber文件 ### BOM清单 ## 参考资料 ### 现有的数据采集方案 - Arrow的BeScope: - 技术资料: - 购买渠道: - NI/Digilent的Analog Discovery II - 技术资料: - 购买渠道: - MiniDSO DS213: - 技术资料:http://minidso.com,连同其它几个型号的技术资料和讨论社区 - 购买:https://www.seeedstudio.com/MiniDSO-DS213-Nano-4-Channel-100MSa-s-p-2891.html