基于STM32G031的有信号发生功能的简易示波器
基于STM32G031实现的简易示波器,具备波形显示、正弦波三角波等的产生和FFT变换等一些基础功能。
标签
STM32
王家豪
更新2021-03-01
1622

本项目主要是实现基于STM32开发的具有一些基础功能的简易示波器,由于是初次接触相关的内容,水平有限,在项目的实现过程中主要参照了网络上相关的视频课程及其他人编写的能够正常运行的代码,最后实现的示波器也有一些瑕疵。

 

根据项目要求,本项目中需要实现的功能:

  1. 完成对板上音频信号的采集和波形显示,可以通过手机播放音乐或App产生音频信号的方式提供声音信号源,通过板上电路的放大、MCU中ADC的采集以后将波形显示在OLED屏幕上,可以通过板上按键的操作在两个方向(横轴 - 时间;纵轴 - 幅度)来扩展、压缩波形的显示,按键的功能可自行定义;
  2. 实现信号发生器的功能,能够产生2KHz以内的正弦波、三角波、方波三种常用波形,通过按键的操作能够实现频率可调、幅度可调,通过调整板上的R、C的值,可以最高生成200KHz的模拟信号;
  3. 能够通过Ain管脚测量外部模拟信号(0-3.3V,DC-200KHz),并能够对外部的周期性波形测量其周期和峰峰值;
  4. 能够对采集到的信号进行FFT变换,并在屏幕上显示其基频及低次谐波(比如2、3、4、5次)的分量。

 

实现思路与已实现功能:

本次简易示波器的设计一定程度上参考了项目中其他同学的案例来完成,最终实现的功能包括对外界音频信号的输入进行采集并显示波形及峰峰值,同时可以实现采样间隔和电压显示范围的改变,信号发生器可以生成固定频率的正弦波、方波和三角波,并且可以对输入的声信号进行32点FFT变换,结果较为准确。

示波器的主要实现过程:通过ADC端口对数据进行采样,然后将数据量化后存储,通过比较函数得到电压的最大值和最小值,从而得到峰峰值,峰峰值可以实时显示在屏幕上。通过手机上下载的信号发生器APP进行了正弦波的测量,波形显示比较清晰(由于没有找到好用的免费软件所以没能对其它波形诸如方波和三角波等进行测试)。通过预先设置几组不同的采样间隔,可以调整横轴的扩展和压缩,但是由于设置的可供选择采样间隔为极小数,所以不能做到对于任意输入信号都可以显示对应的波形。纵轴的调节通过预先设置电压的显示范围来实现。有关于FFT的部分,这里实现的是32点的FFT,由于在这里采样频率是由程序决定的,且被采样信号的最高频率不能超过采样频率的二分之一,因此无法实现对任意输入信号的FFT转换。

信号发生器主要是参照了https://zhuanlan.zhihu.com/p/72687667 这篇文章实现的。这里使用的是SPWM法。由于冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同,主要原理是通过用脉冲宽度按正弦规律变化而和正弦波等效的PWM波形即SPWM波形,使其输出的脉冲电压的面积与所希望输出的正弦波在相应区间内的面积相等。这里通过设置SPWM不同的占空比即可控制得到输出的正弦波、方波及三角波等波形,并且可以设置其频率、幅值等信息。

 

未能实现有待完善的功能:

1.信号发生器只能产生预先设置的固定频率的信号,未能实现通过按键调节其频率,想要调节频率需要通过更改程序中SPWM波的数组的值。

2.未能实现对外界输入的周期性信号测量并显示其周期。

3.理论上可以实现停止扫频以将显示波形静止,从而观察到更清晰的波形,有关这一功能可以再进行完善。

 

通过本次项目设计的感触:

首先这是我第一次接触STM32,需要完成的示波器设计项目在之前也没有深入接触过,因此在初期还是遇到了很多困难和问题的,包括对IDE使用的不熟练、对示波器原理的不了解、在编写代码的时候没有思路等,再加上很大程度上只能自学,所以只能通过反复观看相关教学视频,通过读其他同学的代码体会他们的编程思路等方法来解决问题。这加强了我通过查找相关资料解决对应问题的能力。

 

以下是示波器的几张结果图:

FtiRpqfWHvA4hwSSIOWUkdtcayF2

通电后示波器待机状态

FlamrYtyDl75Umh5Iex1EXZHV_f4

纵轴刻度可调节

FjXaig0TlXmbUF5tdfiLOFO-MGcJ

FFT显示界面

Fr6R3GFIl65M_AMI16LmsK7DKAsx

信号发生器产生的正弦信号波

百度网盘:https://pan.baidu.com/s/1x3eGEeVFH2ANzI0fA5kKAw

提取码:1790

团队介绍
北京理工大学
团队成员
王家豪
北京理工大学电子信息工程。
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号