Hantek 5000系列是Hantek(汉泰)2010年左右推出的入门型号示波器,最高采样率1GSa/s,带宽200M。2010年的时候,EEVblog论坛的大佬tinhead给出了该系列示波器的详细原理图(下载),图的可读性非常不错,是极好的学习材料。本文对这套原理图进行简要分析。水平有限,难免有错误,还请大佬们不吝赐教。

总体方案


示波器采用FPGA方案。使用4片AD9288(超频到125M)交错采样实现1G的采样率,数字部分采用Cyclone 3+CPLD+S3C2440,搞的相当复杂。从2023年的视角来看,这套方案的数字部分已经没有太大参考价值了,用ZYNQ来做会方便的多。不过这个示波器的模拟前端做的非常有意思,值得学习。

模拟部分

偏置生成

这部分电路为模拟前端提供可控的偏置信号,核心是LTC2601精密DAC,16bit。

为了节省成本,通过74HC4051模拟开关来做DAC通道复用。74HC4051的通道选择信号由SN74HC595N控制,这是一个移位寄存器,在这里当IO扩展芯片使用,非常巧妙。
电路的参考电压来自LT1790,4.096V,参考分两路,一路给到LTC2601,另一路分压到2.5V送到跟随器生成OFFSET4-TRG、OFFSET2-CH1、OFFSET2-CH2三路参考信号。
跟随器电路围绕TLC274搭建,外挂三极管扩流,最后驱动220uF的大电容。

图中R05_15和C05_17进行环路补偿,避免震荡,这是驱动大容性负载的经典电路,细节可见《新概念模拟电路》第四册section-125。借助220uF的大电容,这个驱动电路可以提供非常低的交流输出阻抗,用于模拟前端中AD8370的偏置。剩下的几路输出比较简单,均为运放跟随+保持电容,其中OFFSET1-CH1和OFFSET1-CH2通过反相放大电路,输出为负值。左上角的电路用于调节SELFCAL信号的直流偏置,产生SELF CAL SIGNAL CH2和SELF CAL SIGNAL CH1两个方波。

ADC


AD9288是经典的8bit并口ADC,很便宜,不过速度慢,只有100M。共使用四路AD9288,每片两个通道交叉采样,并超频到125M,因此单片就是250M的采样率,两片一组,每组500M采样率。通过继电器可将CH1信号分别送到两组ADC,实现1G采样率。AD9288的模拟带宽高达370M,因此这样做是没问题的。不过四片AD的时钟均直接来自FPGA,时钟抖动恐怕不会太好。

模拟前端

这是本电路最精彩的部分。

整体看,最左边是输入级,输入阻抗1M,继电器控制衰减倍数。中间是阻抗变换。最右侧是以AD8370和LMH6552为核心的程控增益。
具体来看,左上角RL01_2继电器控制衰减,闭合时提供额外25倍衰减,衰减电路中的可调电容用于匹配,保证衰减器在带宽内增益是平坦的,细节可见文章《高频大电压阻容分压网络的频率特性研究》。RL01_2继电器输出后开始进入阻抗变换部分。由于前级电路阻抗高达1M,故这部分电路的输入阻抗必须非常高,如果用运放,需要超高速的FET输入型运放才行,比如OPA659,成本比较高。这里使用分立JFET管配合运放实现。此类电路通常称双路径阻抗变换电路,常见于老式仪器或超高速示波器。核心器件是Q_01_1和Q_01_2,分别构成源级跟随器和射级跟随器,实现阻抗变换功能。两只BC846配置为恒流源提供偏置,约15mA。这四个管子构成的阻抗变换电路高频性能非常好,但为了不影响JFET的工作点,只能交流耦合,用330pF电容隔直。为了补上低频段,另用AD8510拉了一路反馈提供低频信号路径。AD8510是JFET运算放大器,虽然带宽只有8M,但足以满足低频路径的带宽需求。此外,AD8510还承担调偏置的工作,要借助OFFSET1-CH1将输入信号的参考电平上偏到2.5V,以便输入后级的AD8370。关于此电路更多细节可参考Jim Williams所写的《The Art and Science of Analog Circuit Design》一书的第七章,从书中这张图更容易理解这个电路的原理:

Jim Williams先生是Linear公司的一位天才工程师,对模拟电路有着纯粹的热爱,撰写了相当多的技术文章。可惜的是,大师已经于2011年去世。
低频路径上的AQY280S光耦用于控制交流/直流耦合。从阻抗变换电路出来后,信号经过R01_30接入到AD8370的输入端。

AD8370是一个750 MHz的数控可变增益全差分放大器,低频段也可正常工作。它的增益可从6 dB to 34 dB调节。这东西最是用在通信设备的中频部分的,出货量很大,所以虽然参数很顶,但却很便宜。图中的AD8370单电源供电,直流耦合,1脚接2.5V。
AD8370输出电阻(差分100欧)和变容二极管、C01_20、C01_21构成低通滤波器,然后接入LMH6552全差分放大器,将共模电平调到AD9288所需的1V。
此处变容二极管用来调整滤波器截止频率。当调变容二极管两侧控制信号使其正偏导通时,两个150p电容串联,正好和AD8370输出电阻(差分100欧)构成截止频率20M的低通滤波器,也就是实现示波器的20M带宽限制功能。当变容二极管反偏,则变容二极管的结电容和两个150p串联,结电容只有2pF~30pF,按电阻串联公式,三者串联值由结电容主导,这时候构成的低通滤波器的截止频率非常高,相当于关闭20M带宽限制。实际上,图中选的变容二极管电容太小了,没起到什么作用,用个普通二极管替换掉没有任何问题,就是常见的二极管做射频开关的用法。信号从LMH6552出来后,串了个33欧匹配电阻直接送到ADC。

触发


现代示波器大多已经是通过FPGA实现纯数字触发了,上图这种纯模拟触发方案已不大流行。最左侧是外部触发信号的缓冲电路,和模拟前端部分思路基本一样。中间是LMH6574MA 4:1 高速视频多路复用器,相当于一个四选一开关加一个输出运放,分别选择CH1 CH2 EXT和TG_AC50(50Hz市电,来自电源)。REF OUT TRIGGER信号是AD9288参考电压,通过运放馈入LMH6574MA的FB,看起来是给LMH6574MA的输出加了个直流偏置,随后进入ADCMP562BRQ,一个高速比较器,其输出电平是PECL规范。比较器底下还有一个LM1881N视频同步分离器来实现视频触发功能。

数字部分

如前所述,这套方案的数字部分已经没有太大参考价值了,略。

电源

隔离开关电源降压+线性稳压器。用的线性稳压器还是老旧的78xx和79xx系列,这些型号的PSRR不佳,噪声性也能一般,不过对8bit示波器来说也许也够用了。

总结

看得出来,这个示波器方案是做了很多成本优化的。如不考虑成本,用现在的器件来实现相同的性能要简单不少,比如Aleksa Bjelogrlic开源的ThunderScope,使用HMCAD1511+Kintex 7 FPGA做采样,模拟前端是BUF802做阻抗变换+LMH6518程控放大,十分简洁。

Hantek 5000系列示波器原理图研究相关推荐

  1. C# 通过NI-VISA操作Tektronix TBS 2000B系列示波器的实现步骤

    一.概述 本文描述采用C#语言访问控制Tektronix TBS 2000B 系列示波器.接口协议采用NI-VISA. 最近一个项目需要和一款示波器进行通信,需要对示波器进行一些简单控制并获取到波形数 ...

  2. C#多线程学习(四) 多线程的自动管理(线程池) (转载系列)——继续搜索引擎研究...

    在多线程的程序中,经常会出现两种情况: 一种情况:   应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应                   这一般使用ThreadPo ...

  3. AMD依然yes!官宣锐龙5000系列CPU,单核性能首次超越英特尔,苏妈:最好的游戏CPU!...

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI AMD,不挤牙膏. 10 ...

  4. SAP QM 稳定性研究功能研习系列1 - 稳定性研究总流程

    SAP QM 稳定性研究功能研习系列1 - 稳定性研究总流程 如下图是SAP系统里标准的Stability Study Processing. 2,QM01创建一个QS类型(StabilStudy w ...

  5. C#多线程学习(五) 多线程的自动管理(定时器) (转载系列)——继续搜索引擎研究...

    Timer类:设置一个定时器,定时执行用户指定的函数.               定时器启动后,系统将自动建立一个新的线程,执行用户指定的函数. 初始化一个Timer对象: Timer timer ...

  6. 1971旗舰cpu intel_AMD依然yes!官宣锐龙5000系列CPU,单核性能首次超越英特尔,苏妈:最好的游戏CPU!...

    贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI AMD,不挤牙膏. 10月9日凌晨,AMD如期举行发布会,带来了全新一代的Ryzen 5000系列处理器. 新处理器性能增幅显著,尤其是在 ...

  7. 疾速激爽,电竞玩家的心仪之选:AMD 锐龙 5000 系列登场!

    11月5日,AMD锐龙5000桌面系列处理器全网正式首发,开售后不过几分钟,便全数售罄,火热程度可见一斑. AMD 锐龙5000系列桌面处理器采用的ZEN 3架构,全新设计的单CCX结构内置了8个物理 ...

  8. C#多线程学习(三) 生产者和消费者 (转载系列)——继续搜索引擎研究

    前面说过,每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数.这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生. ...

  9. zData上新丨2000/5000系列数据库一体机带来三重提升

    随着业务的高速发展,数据量呈爆炸式增长,传统数据库系统开始面临诸多困境:集中式存储成为 I/O 的瓶颈:小型机+集中式存储制约了扩展能力:部署.操作.运维和管理的复杂性提高,使人力和资源成本居高不下- ...

最新文章

  1. R语言使用unzip函数解压压缩文件(Extract or List Zip Archives)
  2. if,elif,else的关系 input print int的用法
  3. 俄罗斯小方块游戏html,通过h5的canvas手写一个俄罗斯方块小游戏
  4. 重温WEB开发系列(二)HTML HEAD
  5. HTML5 移动页面自适应手机屏幕四类方法
  6. 蒙特卡洛粒子滤波定位算法_ROS -- 最简单的自主ACML定位
  7. hiredis源码分析与简单封装
  8. sccket服务器信息获取,websocket断线后重新new了地址,ws.onmessage没有数据
  9. android获取手机联系人信息(电话,邮箱,姓名,头像)
  10. 微型计算机原理 备课,微机原理备课教案要点.ppt
  11. Android 系统网络框架
  12. Safari浏览器显示网页不全问题解决方法
  13. c语言自定义函数乘方,C语言中的乘方函数是什么?怎么写?
  14. 腾讯产品策划运营类职位笔试题和参考答案
  15. ajax提交验证非空,5.验证用户名是否已经被注册:AJAXC请求
  16. 使用Raygun Pulse进行真实用户监控
  17. 1、Debian-Pi-Aarch64 系统安装
  18. 关于批量下载MODIS数据的坑
  19. 索尼发布新Bravia液晶电视 84英寸4K分辨率!
  20. 撰写营销邮件:避开10 种常见雷区

热门文章

  1. php 数组去重函数,【译】更快的方式实现PHP数组去重
  2. 中国新媒体产业应用创新及市场规模预测报告2021-2027年
  3. qrcodejs华为手机无法识别二维码解决方法
  4. [石进-夜的钢琴曲]
  5. qt data和setData
  6. python ocr 文字识别_python:使用 cnocr 进行文字识别
  7. 强化学习笔记:多臂老虎机问题(7)--Gradient Bandit Algorithm
  8. 冰雹猜想 c语言基础
  9. CFX 多工况计算的批处理方法
  10. 检测和解决Android应用的性能问题