注:* 为必填项
请在报名阶段填写 ↓
在一些简单的电子电路设计中,无需使用到高性能且体积庞大的台式示波器。因此,本项目为体积小巧的USB虚拟示波器。在设计过程中,在考虑了成本问题的基础上,尽量实现标准示波器的各项功能,充分发挥芯片性能。该虚拟示波器的参数和特点如下。
•采样率2MSa/S
•测量范围±10V
•交流耦合和直流耦合模式
•输入阻抗约为1MΩ/100pF
•最大100倍程控增益
•电压测量精度2%
•支持一键自动功能
•支持FFT模式
•在快速模式下屏幕刷新率可达20FPS
•元器件成本小于30元(基于立创商城价格计算)
硬件部分、单片机程序和上位机程序均为原创设计,没有参加其他比赛,也没有在校参加答辩。
GPL3.0开源协议
请在竞赛阶段填写 ↓
•实物图
PCB大小为6×4厘米,双层板设计,元器件只在顶层。模拟信号从左端SMA接口输入,由Micro-USB接口连接至上位机,并引出程序调试端口。
为了便于手工焊接,阻容器件选用了0805封装,在进行设计时也加大了间距,故在PCB布局和布线上仍有优化空间。值得一提的是,这次的丝印莫名比以往都要清楚,可以清晰的看到元件值和嘉立创的logo。
•总体说明
硬件主要包括将测量信号转换至单片机AD可以采集的模拟信号转换部分、单片机电路USB串口数字电路部分和±3.3V电源部分。下面将依次进行说明。
•芯片和方案选择
由于不需要驱动OLED,主控芯片的性能可以较低,只需要实现AD转换和串口发送功能。选用了STM32G030F6单片机,TSSOP20封装,8KRAM,12位AD最大转换速率为2.5M,更关键的是,在立创商城的价格仅为8元,符合设计需求。
为了测量小信号,信号转换部分的运放需要双极性供电。考虑到整体的电流较小,负电源选用了极性反转电荷泵方案。在立创商城中有并没有找到价格合适的,最终选用了SGM3204(本项目用到的唯一在立创商城没有现货的芯片),具有200mA输出电流的电荷泵,只要三个电容就可以将+5V电源转换成-5V电源信号。
该-5V电源的纹波较大,需经过LDO稳压芯片才能给运放电路供电。选用了XC6902N331稳压芯片,价格接近3元。同样,+5V电源也需要经过稳压芯片,给运放和单片机供电,选用了常见的1117线性稳压芯片。
运放芯片选用了NCS20072,具有3.2MHz带宽、2.4V/us压摆率,极高的输入阻抗,具有单位稳定增益,在±3.3V供电下有着±3V的输入输出范围,价格仅为1.6元。完全符合设计要求。
除此之外,还选用了模拟开关CD4053,串口转USB芯片CH340,通用比较器LM393,不再赘述。
•信号转换电路
信号首先经过680KΩ和220KΩ电阻电容构成的衰减电路,使得±10V的信号转化至运放可以处理的±2.5V范围,后一级电压跟随器使得示波器的输入阻抗为900KΩ/90pF。
由单刀双掷开关控制是否经过RC高通滤波器,以实现交直流耦合切换。此处使用继电器是一个更好的方案,但模拟开关CD4053的价格显然更为合适。
两个同相比例放大器构成类似于级联的形式,由模拟开关控制是否进行放大。第一级放大倍数为5倍,第二级放大倍数接近于20倍。从而可以实现放大倍数为1倍、5倍、20倍、100倍的不同增益。相比较由一个运放构成的改变反馈电阻的程控放大电路,该电路对于频率较高的小信号有更好的放大能力。
后续经过电压抬升电路,将正负电压信号转换成单片机AD可以采集的信号,最终的信号将叠加在1.5V直流量上。比较器的正比较端也接入1.5V直流信号,比较器输出端即为同频率的脉冲信号。加入比较器的主要作用是获取波形的频率值,以更快的实现一键自动功能。
此外,图中所用的LM358通用运放在实际调试中改成了性能更好的NCS20072运放。可能由于LM358的压摆率太低,导致在频率超过10KHz时就会出现奇怪的失真波形。
•电源电路
电脑USB的5V电源信号质量较差,含有大量的高频脉冲噪声,故首先经过简单的LC滤波电路。之后的SGM3204电荷泵可以将+5V电源信号转换至-5V电源,XC6902N331稳压器和ZLDO1117稳压器用于输出稳定的±3.3V信号。该电路均参考各自的芯片手册。
•数字电路
简单的单片机外围电路,用于注意程序调试的PA14引脚和BOOT0引脚为同一个,需要接入下拉电阻。20引脚的STM32G030F6P6TR的没有将模拟电源和数字电源分开,这可能会使得单片机AD有更大的噪声。在实际测试过程中,在2M采样率,256个采样点中,单片机AD的测量结果会产生最大15LSB的偏差(即0.3%的偏差)。
STM32G030F6没有USB接口,需要接入串口转USB芯片以实现串口数据传输的功能。CH340N内置晶振,只需要一个去耦电容即可。
•调试图片
软件包括STM32单片机部分和LabVIEW上位机部分。下面将分别说明。
•单片机程序总体说明
单片机主要实现串口接收指令、AD采集、波形数据转换和串口发送波形数据的功能。采用STM32Cube预先配置各项参数,在Keil中进一步编程。
•单片机参数配置
配置ADC触发方式为定时器触发,这样可以更精准的控制采样间隔。由DMA控制器将波形数据保存至数组,并设置DMA为非循环模式。
配置串口波特率为256000(没有采用常用的115200,因为只有在该波特率下才能够实现20FPS的刷新率)。开启接收中断。由DMA控制串口发送数据,这样在发送串口数据时,不会影响主程序的运行,从而可以提高刷新速度。
在频率测量中,配置定时器为输入捕获模式,将定时器从模式设置为复位,触发源为TI1FP1。由DMA控制器将每次脉冲信号来临时,将定时器的计数值保存至数组。另外,比较器的输出端含有高频脉冲噪声,需要配置定时器输入通道滤波器。
•单片机波形采集程序
串口波形数据格式为< Time00640+Fre00100+Amp0+DC+波形数据点>的形式。其中AD触发定时器的计数值Time,最大65535;输入捕获定时器的计数值Fre,最大65535;程控放大器的放大倍数Amp,最大值3;耦合方式用DC和AC表示。
波形采集过程如下。
•上位机程序
上位机的主要工作是解析来自串口的字符串,处理波形、计算相关参数并显示。在单片机中不进行浮点运算,所有的波形数据均为AD采集的原始数据,为整数形式。而在上位机中,需要将这些整数转换成电压值。很显然,单片机AD值和输入电压值之间理论上成完全的线性关系,在上位机中需要跟据此线性关系求得实际电压值。在本作品中,有着4种程控增益,也就对应着4个函数关系。
上位机示意图如下。
•总结
本作品可以实现基本的示波器测量功能,对于电压测量有着较好的精度。其2M的采样率,对于音频范围内的信号,即20KHz的信号可以充分测量。由于示波器的带宽较小,使得其本身的底噪也不大。在下面的视频中,对于20mV的正弦波进行了测试。另外,该虚拟示波器可以测量具有5V直流偏置、频率为50KHz、幅度仅为50mV的小信号,该测量在下面的视频中也有所展示。
当然,一般的手持示波器都采用的是FPGA+高速AD的方案来实现高采样率,这是单片机内置AD远不能达到的。但是在价格方面,本作品的成本约为35元,也算是本作品的最大特点。在电路设计和选型过程中,也是尽量精简电路,减小成本。
请输入内容…
分为常规功能展示和功能展示两个视频。
!注意:请使用浏览器自带下载,迅雷等下载软件可能无法下载到有效资源。
欢迎加入EEWorld参考设计群,也许能碰到搞同一个设计的小伙伴,群聊设计经验和难点。 入群方式:微信搜索“helloeeworld”或者扫描二维码,备注:参考设计,即可被拉入群。 另外,如您在下载此设计遇到问题,也可以微信添加“helloeeworld”及时沟通。
EEWorld Datasheet 技术支持