|
本帖最后由 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 ... vr_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、固件程序
固件程序.rar
(5.47 KB, 下载次数: 3406)
熔丝位设置:SPIEN取0,其余均取1。 |
评分
-
7
查看全部评分
-
|