初次体验过Analog Discovery模拟设计套件后,兔子已经体验到了这块小黑盒子的强大功能,将示波器、信号发生器、逻辑分析仪3种功能整合在一起。但只是使用是不够过瘾的,何不学习借鉴一下自己来进行设计虚拟仪器?就一般的DIY示波器而言,无外乎MCU+FIFO和FPGA+RAM的结构, USB示波器可以不需要显示和处理,采集到的数据可以由PC软件进行显示和处理,但同时要求有较高的数据带宽和实时性。Analog Discovery有着怎样的硬件结构来实现这些功能和性能呢?那么这次兔子就将拆开Analog Discovery,对内部设计一探究竟。
Analog Discovery的机械结构非常简单,背面仅有四颗螺丝固定外壳,两下搞定。从设备背面的照片中还可以看到Digilent是由ADI和Xilinx赞助来完成该设计的,当然赞助可以指提供芯片和设计技术。
拆开黑盒子,里面只有一块PCB,目测至少为6层板。上面的主要器件一目了然:主控芯片是Xilinx的Spartan6系列FPGA XC6SLX16,16通道的数字I/O都由FGPA直接提供。另外FPGA还连接了一片AD9648,用来实现示波器的两路差分输入。USB通信采用了FTDI的USB-to-Serial/FIFO芯片FT232HQ。整个系统通过USB单电源供电,板上需要的各种电压主要由ADI的DC/DC来提供。
背面的器件密度较高,主要器件是两颗DA芯片,包括用以实现信号发生器双路输出的AD9717和一片起辅助作用的AD5645R,剩下又是大量的模拟电路和供电电路。
台湾代工的XC6SLX16,采用8x8mm的CPG196封装,具有14,579逻辑单元、576Kbits RAM和106个可用I/O。整个PCB上并没有找到配套的RAM和用于配置FPGA的Flash,因此FPGA应该不承担主要的存储工作(其实也不需要,PC有那么大的内存呢),同时FPGA也应当是通过USB在线配置的。这样整个系统的灵活性就大大提高了,除了基本的示波器、逻辑分析仪等功能,Analog Discovery还能通过软件重配置成任何你需要的自定义设备(只要软件支持)。
FT232HQ支持USB 2.0 Hi-Speed (480Mbps)和Full Speed (12Mbps)协议,与FPGA接口可配置为UART、SPI、I2C、JTAG和245 FIFO。当配置为同步245FIFO模式时,最高速率可达40MB/s,可以满足USB虚拟仪器的高上行数据带宽需求。
下图为整个设备中最为昂贵的IC——价值51美金的AD9648。Analog Discovery标称AD的采样率为105MSPS,实际采用的芯片可支持125MSPS采样率,支持两路差分输入和1.8V CMOS/LVDS输出(就PCB来看应该采用了CMOS接口),14-Bit的分辨率提供了较高的纵轴性能。其输入带宽可达650MHz,并支持通过SPI接口配置时钟、偏移等多种参数。其应用领域中赫然写着GSM、CDMA、雷达等无线电系统。
如果按照$199的商业版来算,该芯片占销售价格的25%,若考虑到US学生的$99特供版,单此一颗IC就达到了销售价格的50%以上,实在令人唏嘘。不过Digilent从ADI拿到的芯片肯定不会是这个价格,不然就要赔本了:)。
DA芯片AD9719位于PCB背面,同样是125MSPS,同样的14-Bit分辨率,支持差分耦合或单端输出,价格相对AD来说也要便宜不少。图片的左下角应当是数字I/O的ESD保护二极管。
其实整个系统含金量最高的还是模拟前端部分,估计是由ADI的工程师操刀设计的。下面是示波器两路全差分输入的其中一路,看起来很有些眼晕。红色的目测为高频补偿电容,紧接着是由ADG612模拟开关控制的衰减电路,再往后就是运放构成的放大电路,兔子猜测可能会有阻抗变换的部分(纯属猜测,需要测量电路来验证)。最后由AD Buffer芯片ADA4940进行缓冲,并送入ADC中。
然后兔子对各个部分做了简要的分析(一半测量一半瞎猜),绘制出假想框图一幅:
需要提到的是,Analog Discovery上使用的芯片很多都是10-Pin或者8-Pin的小封装IC,并没有写明芯片型号,只有三个字母构成的简单丝印。兔子也是尽己所能在ADI网站上进行查找,最终列出了主要芯片的BOM和成本(电源IC和个别查不到的IC不在其中)。
Part Name | Description | Price ($) |
XC6SLX16-CPG196 | Spartan-6 FPGA, 14,579LCs, 106I/Os | 21 |
AD9648BCPZ-125 | 14-bit, 125MSPS, 1.8V Dual ADC | 51 |
AD9717BCPZ | 14-bit, 125MSPS, Dual DAC | 10 |
FT232HQ | Hi-Speed USB to Multipurpose UART/FIFO IC | 2.2 |
ADA4051-2 x2 | 1.8V, μPOWER, ZERO-DRIFT, RRIO DUAL AMPLIFIER | 3 |
AD5645R | QUAD, 14-BIT I2C nanoDAC WITH ON-CHIP REFERENCE | 6 |
ADA4940-2 x2 | ULTRALOW POWER, LOW DISTORTION ADC DRIVER | 5.2 |
ADF4360-9 | CLOCK GENERATOR PLL WITH INTEGRATED VCO | 3 |
ADG612 x2 | QUAD SPST SWITCHES | 3 |
AD8592 | CMOS SINGLE SUPPLY RRIO DUAL OP AMP | 0.4 |
AD5623R | DUAL 12-BIT nanoDAC WITH ON-CHIP REFERENCE | 2.1 |
AD8066 x2 | HIGH PERFORMANCE, 145 MHz FASTFET OP AMP | 4.6 |
AD8058 | LOW COST, DUAL, HIGH PERFORMANCE VOLTAGE FEEDBACK, 325 MHZ AMPLIFIER | 1.6 |
AD8067 | HIGH GAIN BANDWIDTH PRECISION FASTFET OP AMP | 1.9 |
Total | 115 |
看完BOM之后,兔子发现其实Digilent的设备售价已经很白菜了,DIY起来能节省的也不多。当然这只是不了解内部价格行情时看到的假象,另外自己做的话当然也不会拿来照抄,而是会根据需求选用性价比合理的方案。
最后不得不提的是Analog Discovery存在的问题,那就是高采样率和超低的模拟输入带宽之间的严重不协调。其实AD和模拟前端中采用的运放都具有很高的带宽,如果排除阻抗变换,那么影响带宽的最大因素就是采用普通排针作为模拟输入连接器(更别提杜邦线了)。
有国外的朋友通过测试发现9MHz以下的信号可以保持很好的完整性,比标称的要高不少,但依然引起了许多争议。如果兔子真的要DIY,必然会选取BNC这样高带宽的连接器,并配上一根示波器探头,虽然增加了一些成本,但性能上也会有不小的提升。