【参赛】简易微型数字示波器
本帖最后由 ntwhq 于 2011-12-29 15:54 编辑今年初我曾经做过一个数字示波器,(见我的新浪博客:http://blog.sina.com.cn/ntwhq ),有不少网友进行了仿制,其中有好几位做得很好,但在大家做的过程中发现两个问题,一是对有些基础相对薄弱的网友来说制作比较困难;二是有些元器件很难买全,就是上淘宝买也要找好多家才能买齐。因此增加了制作难度。
看到这次比赛的消息后,我就想做一个更简单的数字示波器,降低制作难度,使得大部分人都能制作,于是就开始了近两个月的制作,先是确定电路形式,然后是程序设计,程序经过反复调试修改,现在总算完成了。
这个数字示波器除了能显示输入信号波形外,还能测量信号频率,并能作简易脉冲信号发生器使用,同时输出脉冲可用作自测信号。
主要性能指标:
最高采样率:3.43MS/s
模拟带宽:686kHz(实际使用中发现观察300kHz以下的信号可以取得比较好的效果)
垂直灵敏度:0.2V/div、1V/div 由S1进行调节。
水平扫描速度:2.62us/div、5.6us/div、10us/div、20us/div、50us/div、100us/div、200us/div、500us/div、1ms/div、2ms/div、5ms/div 由SB1、SB2进行调节。
显示屏:LCD12864(驱动芯片ST7565)
同步方式:触发扫描
频率测量范围:10Hz-2MHz(理论上最高可达到12MHz,但受到CD4069频响的限制),分辨率10Hz
输出脉冲频率:100kHz 50kHz 25kHz 10kHz 4kHz(3.989kHz) 2.5kHz
1kHz(997.3Hz) 400Hz (404.1Hz) 250Hz (249.3Hz) 100Hz(100.2Hz)
50Hz (50.10Hz)
单片机编程有时无法得到我们所需要的输出频率的精确值,用括号内为近似替代值。输出频率和水平扫描速度速度同步变化,因此调节SB1、SB2即可改输出频率,和水平扫描速度的对应关系见面板。
电源:5V(4节7号镍氢充电电池)
工作电流:45mA
重量:200g(含充电电池)
体积:118mm×72mm×25mm
1、硬件电路简介
在介绍我的电路之前先请大家看一下一个国外网友制作的低速AVR数字示波器(网址见:
http://www.serasidis.gr/circuits/AVR_oscilloscope/avr_oscilloscope.htm),本坛也有网友进行过仿制。介绍一下这个电路有助于我们理解数字示波器的基本原理。
简单的说数字示波器的原理是:将输入的模拟信号进行AD转换,转换成数字信号,然后再用单片机进行数据处理,驱动液晶屏显示波形和相关参数。国外网友制作的这个数字示波器是用AVR单片机内部的AD转换器作AD转换的,由于AVR单片机内部的AD转换器采样率比较低,最高只能达到100k左右,因此只能用于观察小于10kHz的输入信号的波形。
要解决这一问题可以使用外部的AD转换芯片,这样可将采样率大大提高,比如我这次用的TLC5510采样率可达到20M,现在反而是单片机来不及处理它输出的数据信号,所以往往要在它们之间加一个先进先出(FIFO)存储器作缓冲,先把数据快速读入这个存储器再让单片机慢慢处理,这就是我博客上介绍的数字示波器的模式,但这样一来电路就复杂一些了。我这次做的数字示波器就是省去了FIFO存储器,尽量提高单片机的处理速度使外接AD芯片采用尽可能大的采样率。这里TLC5510可用到3.43M的采样率,这样就使能测试信号的频率提高了很多。
电路见下图:
我只用了三块集成电路,其中CD4069的作用有两个:F1作线性放大用,其输入端接场效应管2SK168等组成的电压跟随器,输出信号供TLC5510作AD转换,为了简化电路和方便调试,这里采用了交流偶合方式;F2进一步对信号进行放大,放大的信号再由F3、F4等组成的施密特触发电路进行整形,整形后的脉冲供单片机ATmega8作频率计数用。
TLC5510输出AD转换数据只要取高6位输送给单片机就可以了(因为采用的是LCD12864的液晶屏,垂直分辨率只要6位即可),LCD12864采用ST7565驱动芯片的液晶屏,因为这种驱动芯片除了并行通讯也可选用串行通讯的方式,这样可节省单片机的引脚,只要用4根线就可以向LCD12864传递数据,使我可以选择28脚的单片机(现在还多出5个引脚),既节约了成本又减小了示波器的体积。
为了提高单片机的工作速度,ATmega8进行了超频,采用24MHz的晶振。
ATmega8的PB3输出的脉冲信号作测试用。
2、固件程序
熔丝位设置:SPIEN取0,其余均取1。 本帖最后由 ntwhq 于 2011-12-29 07:46 编辑
3、装配
元器件清单
TLC5510是PSOP封装,脚的距离是1.27mm,要使用SMT24-1.27mm的转接板转换成DIP封装,这样才能在PCB万用板上装配,我没有SMT24-1.27mm的转接板,是用SMT28-1.27mm代替的(我焊接时忘了把TLC5510的1脚和转接板的1脚相对应,往电路板上安装时是以TLC5510的1脚为基准的,大家焊接时注意这一问题)。
装配前先用洞洞板软件LochMaster30进行排版,排好的装配图如下:
LCD12864买回来时数据传输均为并行模式,使用前必需改变为串行模式,改制方法见下图(把原来的并行接法的0欧电阻改接到串行接法处):
电路板装配图:
外壳用有机玻璃制作
这是面板图,夹在两层有机玻璃之间:
做好的外壳:
本帖最后由 ntwhq 于 2011-12-28 15:30 编辑
4、调试
调试很简单。
开机LOGO画面:
调试分两步:
第一步:不接输入信号,调节RP2使水平扫描线和水平中心线重合。
第二步:输入一已知电压峰峰值的测试信号,调节RP1使其峰峰值读数准确,也可用本机输出的脉冲信号作测试信号,在电池电压略高于5V时其电压峰峰值约为5V。
调试结束后即可将电路板装入机壳中。
本帖最后由 ntwhq 于 2011-12-27 22:09 编辑
5、使用
测试示波器本身输出的脉冲信号:
1kHz脉冲信号
10kHz脉冲信号
100kHz脉冲信号
测试信号发生器输出的正弦波:
100kHz正弦波
200kHz正弦波
用频率计测量输出脉冲频率结果:
真的很不错。
stan10 发表于 2011-12-27 21:27 http://www.crystalradio.cn/bbs/images/common/back.gif
:handshake 谢谢鼓励! 精心制作的好作品!:victory: 精心制作的好作品!
L.D.XIONG 发表于 2011-12-28 09:02 http://www.crystalradio.cn/bbs/images/common/back.gif
:handshake 谢谢梁老师鼓励加分! 谢谢坛友Julie 加分。 很好,不错。出套件吧 这个好,携带方便!:victory::handshake 很好,不错。出套件吧
abcymda 发表于 2011-12-28 09:19 http://www.crystalradio.cn/bbs/images/common/back.gif
这东西不复杂,可以自己做,真要出套件还要设计一下PCB,就是机壳难找到现成的。 :handshake谢谢qg2007老师加分鼓励! 这真的不错, 这东西不复杂,可以自己做,真要出套件还要设计一下PCB,就是机壳难找到现成的。
ntwhq 发表于 2011-12-28 10:14 http://www.crystalradio.cn/bbs/images/common/back.gif
做的不错,有实用性了,楼主可以到淘宝上找合适的外壳,然后根据外壳设计PCB,就OK了:lol