基于STM32的模数结合简易波形发生器.docx
《基于STM32的模数结合简易波形发生器.docx》由会员分享,可在线阅读,更多相关《基于STM32的模数结合简易波形发生器.docx(13页珍藏版)》请在冰豆网上搜索。
![基于STM32的模数结合简易波形发生器.docx](https://file1.bdocx.com/fileroot1/2023-4/24/60b6f925-fb53-41d9-82cf-564c9bb2cf2f/60b6f925-fb53-41d9-82cf-564c9bb2cf2f1.gif)
基于STM32的模数结合简易波形发生器
第33届电子设计大赛
作品设计报告说明书
作品名称:
基于STM32的模数结合简易波形发生器
参赛队名:
波形很稳队
参赛队员:
李智豪蒲小年
物理与电信工程学院
2016年12月
一、系统方案选择与比较:
(一)方案一:
利用模数结合实现,在模拟电路上产生函数信号波形,而用数字方式改变信号的频率和幅度。
如采用NE55多谐振荡器产生方波,利用数字电位器与数字电容改变波形信号频率,用数控运放对信号幅度进行增益或衰减。
(二)方案二:
模拟电路实现,全采用模拟电路,可用正弦波发生器产生正弦波信号,然后过零比较产生方波,再经积分电路产生三角波。
这种方法电路简单,并具有良好的正弦波和方波信号。
但要通过积分器电路产生同步的三角波信号,存在较大难度。
原因是积分电路的积分时间常数通常不变,而随着方波频率改变,积分器输出的三角波幅度将同时改变。
若要保持三角波幅度,就得同时改变积分时间长度的大小。
(三)方案三:
数字电路实现,采用DDS方法,任何频率的波形都可看做由一系列的取样点所组成,可事先将各波形的数据点存储在ROM中,再通过时钟的控制顺序从ROM中读出,再经D/A转化器进行逐点恢复。
这种方案的波形精度主要取决于函数信号波形的存储点数、D/A转换器的转换速度、以及整个电路的时序处理等。
(四)方案四:
数字电路与模拟电路结合,利用STM32产生频率可调的方波信号,通过外部硬件电路将方波信号进行积分,将依次得出三角波与正弦波信号。
信号幅度的增益通过调节同相放大器运放的反馈电阻来进行修改。
(五)方案选择:
为了利用所学的模电与数电的知识,我们期初选择了方案一进行作品的前期设计制作,即是用数字电位器与数字可变电容对整个系统的参数进行调节,后来发现此方法中数字电位器的阻值变化范围与阻值级数达不到我们需要的阻值范围,数字可变电容的变化范围与所需的容值相差三个数量级,于是放弃了此方案。
最终选择的则是方案四,即是数字电路产生稳定可调的方波信号,通过模拟电路对信号进行整形与幅度处理。
二、系统各模块的理论分析与计算
(一)方波产生电路:
用NE555构成多谐振荡器,通过数字电位器和数字可变电容,改变其产生的脉冲波的频率与占空比,方波产生电路如图:
(二)方波产生电路计算公式:
充电时间:
T1=R1*C2;
放电时间:
T2=R2*C2;
脉冲占空比:
q=R1/R1+R2;[当R1=R2时,方波的占空比为50%]
周期:
T=(R1+R2)*C
(三)仿真效果图:
由上述各计算公式可知,方波发生器的频率及占空比由R1与R2及C2决定,因此我们初步的想法则是使用程序控制的数字电位器与数字可变电容来获取不同频率及占空比的方波信号。
(四)相关资料:
(1)高精度数字电位器X9C104:
该集成电路由输入控制,计数器和译码器,非易失存储器及电阻阵列构成。
数字电位器集成芯片内部有100个左右的电阻阵列,通过逻辑电平的改变致使其内部的模拟电子开关按一定次序相连,最终使得其阻值变化呈阶梯式或增量式。
其电阻值变化范围为:
40欧姆—100K欧姆,变化级数为1010欧姆。
(2)数字可变电容max1474:
对于数字可变电容,我们发现国内很少有人在使用,并且多数是英文版的数据手册。
最终我们查询到一篇清华大学关于数字电容的汇报文档。
它的原理与数字电位器相似,也是通过模拟开关控制其内部的电容器阵列,最终产生不同的容值的电容接入电路中。
其变化范围为:
0.424pF—10.93Pf,变化级数为:
0.34PF。
但因数字电位器不能像普通电阻一样两端都接入工作电路,而是需要一端接地,另一端接入电路。
其阻值变化为阶梯式,不能够满足多谐振荡器的特殊电阻值的要求。
并且数字电容器的实际变化幅度比振荡器需要的幅度相差三个数量级。
正是因此,我们放弃了使用数字电位器与数字可变电容组成的程序控制、硬件电路搭建的频率可调得方波信号发生器。
(二)数字电路产生的可调方波:
利用STM32芯片内部的高精度定时器,通过程序控制延时时间,输出不同频率的脉冲信号,从而可获得不同频率的方波信号。
下为在PC上利用逻辑分析仪获取的方波时序信号:
(三)积分运算电路(方波转三角波):
(1)仿真电路:
(2)仿真效果:
(3)计算公式:
(4)误差分析原因:
1)集成运放不理想,由于运放的输入偏置电流,失调电流,输入失调电压影响,将使逐渐上升,形成输出误差电压。
另外如果通频带不宽,那么对快速变化的输入信号反应迟钝,将会出现滞后现象,所以应选择低漂移集成运放或场效应管运放。
2)积分电容同样也会造成误差。
由于电容存在泄露电阻,会使逐渐下降,同时又由于存在着电容的吸附效应,也会造成误差。
所以应选择泄漏电阻大的电容器,如薄膜电容,聚苯乙烯电容器等。
3)实际效果图:
(四)RC无源积分电路(三角波转正弦波):
(1)仿真电路图:
(2)仿真效果图:
(3)积分条件:
1)时间常数τ远大于输入矩形波的脉宽;
(4)实际效果:
(五)负电源的产生:
由于运放芯片需要双电源工作,故电路中应当有一可以将源电源电压镜像的模块,我们选取了ICL7660镜像电压产生芯片:
我们将源电源电压输入至芯片的八脚,即可在五脚获得一个与源电源电压镜像的电压。
其输入电压的幅值范围为:
0.4V—18.6V。
(六)稳压电路:
我们工作的主控芯片STM32与显示屏OLED需要稳定且波纹低的电压源供电,为了简化测试时候的接线,我们不使用两个外部电源给硬件电路供电。
而是采用将提供给运放的电源通过稳压后输给用电单元。
因此,我们使用了LM2940稳压芯片,其功耗小波纹抑制比且输入的电压幅值较宽。
(七)模拟开关:
为了便捷起见,我们选择只用一个BNC端口当成是信号输出端口,因此,则需要对输出信号进行选通,通过程序来控制不同的输出信号。
模拟开关传输门CD4066:
CD4066是四双向模拟开关,主要用作模拟或数字信号的多路传输。
CD4066的每个封装内部有4个独立的模拟开关,每个模拟开关有输入、输出、控制三个端子,其中输入端和输出端可互换。
当控制端加高电平时,开关导通;当控制端加低电平时开关截止。
模拟开关导通时,导通电阻为几十欧姆;模拟开关截止时,呈现很高的阻抗,可以看成为开路。
模拟开关可传输数字信号和模拟信号,可传输的模拟信号的上限频率为40MHz。
各开关间的串扰很小,典型值为-50dB。
因此,我们通过STM32的I/O口给出不同的高低电平来控制输出信号。
(八)键盘输入装置及OLED显示屏
(1)使用矩阵输入键盘,通过键盘扫描程序对按键进行编码,进而可以输入任意数值。
三、系统框图:
(一)系统工作简述:
(1)外部编码键盘给STM32最小系统输入编码值,按键扫描程序对编码值进行译码。
从而可以进行对波形频率的调节与波形的选择;
(2)双向模拟开关CD4066对输出的信号类型进行选通,从而对波形的输出进行相应的控制;
(3)LM324有源积分电路对输入的方波进行积分,得到相应频率的三角波与正弦波;
(4)LM324同相放大电路对信号的幅值进行增益,通过调节电位器的阻值实现峰峰值得可调性;
四、电路设计:
由于电路板需要对波形信号的处理,故选用PCB覆铜板来进行作品的制作,以提高稳定性。
注:
通过镀锡减小导线的阻抗与容抗;
五、程序设计:
六、测试方案与测试结果:
(一)测试方案:
(1)使用数字示波器进行测试,测量指标有:
波形频率、波形类型、波形幅度;
(2)人为制造对作品的意外断电,观察是否能够储存最后一次的操作;
(3)随机输入波形频率,观察示波器的读书是否一一对应;
(4)进行波形选择,观察其是否变化有效果;
(二)测试结果:
(1)方波:
(2)正弦波:
(3)三角波: