单片机论坛

 找回密码
 立即注册

QQ登录

只需一步快速开始

搜索
查看: 44|回复: 0
打印 上一主题 下一主题
收起左侧

100Hz200kHz波形发生器设计 MCU控制

[复制链接]
跳转到指定楼层
楼主
1470183839 发表于 2019-9-10 16:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

1.1基本要求
1具有产生正弦波方波三角波三种周期性波形的功能
2用键盘输入编辑生成上述三种波形同周期的线性组合波形以及由基波及其谐波5次以下线性组合的波形
3具有波形存储功能
4输出波形的频率范围为100Hz20kHz非正弦波频率按10次谐波计算重复频率可调频率步进间隔100Hz
5输出波形幅度范围05V峰-峰值可按步进0.1V峰-峰值调整
6具有显示输出波形的类型重复频率和幅度的功能

1.2发挥部分
1输出波形频率范围扩展至100Hz200kHz
2用键盘或其他输入装置产生任意波形
3增加稳幅输出功能当负载变化时输出电压幅度变化不大于3%负载电阻变化范围100ޣ
4具有掉电存储功能可存储掉电前编辑的波形和设置
5可产生单次或多次1000次以下特定波形如产生1个半周期三角波输出
6其它如增加频谱分析频率扩展>200kHz失真度分析扫频输出等功能


2.设计方案

方案一:模数结合实现一般是在模拟电路上产生函数信号波形而用数址式改变信号的频率和幅度如采用D/A装换器与压控电路改变信号频率用数控放大器或数控衰减器改变信号幅度等

方案二:模拟电路实现全采用模拟电路可用正弦波发生器产生正弦波信号然后过零比较产生方波再经积分电路产生三角波这址法电路简单并具有良好的正弦波和方波信号但要通过积分器电路产生同步的三角波信号存在较大难度原因是积分电返积分时间常数通常不变而随着方波频率改变积分器输出的三角波幅度将同时改变若要保持三角波幅度,就得同时改变积分时间长度的大小要实现这点会很难

方案三:数字电路实现采用DDS方法任何频率的波形都可看做由一系列的取样点所组成可事先将各波形的数据点存储在ROM中再通过时钟的控制顺序从ROM中读出再经D/A转化器进行逐点恢复这址案的波形精度主要取决于函数信号波形的存储点数D/A转换器的转换速度以及整个电返时序处理等

其信号频率的高低是通过改变D/A转换器输入数至的速率或是取点数量来实现的这址案在信号频式系时具有较好的波形质量随着信号频率提高需要提高输入数至的速率或减少波形点数波形点数的减少将直接影响函数型号波形的质量而数至的输入速率的提高也是有限

方案选择经上各方案比较为切合本次课题故采用方案三

数字电路实现采用DDS方法任何频率的波形都可看做由一系列的取样点所组成可事先将各波形的数据点存储在ROM中再通过时钟的控制顺序从ROM中读出再经D/A转化器进行逐点恢复这址案的波形精度主要取决于函数信号波形的存储点数D/A转换器的转换速度以及整个电返时序处理等总体方案设计框图如下


3.设计实现
3.1实验器材

STM32F407ZGT6单片机2.8寸TFTLCD显示屏,配置有Keil uVision5工程环境的PC机一台外部硬件放大电路和负载电路

3.2设计框图

本设计由四个模块组成MCU控制模块按键模块信号输出模块和LCD显示模块

3.2系统框图
3.2.1 MCU控制模块

    系统的MCU采用STM32F407ZGT6作为控制模块主要完成按键扫描信号输出LCD显示等STM32系列单片机具有内置DAC转换器和DMA控制器并有最高72MHz的主频可完成细频率信号的稳定输出

3.2.2 按键控制模块

     系统采用一个键盘来控制输出波形的特征Hz按键调节频率且单位为HzkHZ 按键调节频率且单位为kHz10mv按键调节幅度且单位为10mvduty按键调节占空比ChangeWave按键调节输出波形数字0-9调节频率幅度占空比的数值X清除当前已输入的数字串-清除数字串最后输入的一个数址

3.2.3 信号输出模块

单片机的DAC外设DMA控制器和定时器共同协作完成信号波形的输出信号输出采用定时器触发DMA传输数据到DAC寄存器的方式可大大降低信号输出对CPU的占用率并提高波形的精准性

3.2.4 LCD显示模块

本设计通过TFTLCD显示料示波形信息MCU与TFTLCD显示料示屏通过串行方式传输数据当波形发生变化时立即更新LCD显示信息实至人机界面的换

3.3程序流程图

程序流程图主要完成的任务有按键扫描LCD显示和D/A转换在主程序中对各个模块进谐始化

3.2程序流程图框图


3.3.1 外部中断流程图和定时器中断流程图
            
3.3.1 外部中断流程图                        3.3.1 定时器中断流程图


3.3.2 D/A转换流程图
                  
                        3.3.2 D/A转换流程图

4.硬件电路
4.1设计方案

方案一:使用晶体三极管多级放大电路设计

将stm32f4开发板DAC输出端接入放大电返一级射极输出器共集电极电路射极输出器作为第一级使得多级放大电返输入电阻增加减少电范输入信号的影响

三极管多级放大电返二级采用基极分压式采极放大电路主要为放大输入信号优点为通过电阻Re的反馈使得静态工作点稳定

三极管多级放大电返三极再次采用射极输出器使得输出电阻变小增加电返带负载能力输出电压受负载改变变化小以达到题目要求

该方案优点电访个部分可控调试清晰明了元件易替换

该方案缺点电路很复印

方案:使用LM324运算放大器搭建放大电路

LM324内部中集成四个运算放大器使用一个LM324即可设计出与方案一功能相同的多级放大电路运放多级放大电返一级采用电压跟随器增大输入电阻第二级采用反相比例放大电路对输入信号进行放大第三极再次采用电压跟随器减少输出电阻增加带负载能力

该方案优点电路设计简单且相比方案一更稳定

该方案缺点只能通过外接元器件调试电路芯片内部出现问题不易诊断及调试

方案确定经过对内商讨出于电路稳定性及简洁性采用方案二设计硬件放大电路在电路输出到地间接入串联的开关和10k负载当开关断开时即负载无穷大

4.2Multisim仿真图
4.2 Multisim仿真图
4.3PCB原理图
4.3 PCB原理图
4.4PCB板布线图
4.4 PCB板布线图
4.5电返试
4.5.1 问题一

在放大电访通电的情况下DAC输出信号一接入放大电路输入端口测试电路输入端口信号信号衰减了一半通上电后电路输入端信号基本衰减消失

原因查看电路后发现输入信号直接接入运放的反相比例放大电路币存在串联负反馈使得输入信号被抑制在放大电路通上电压工作后这指反馈更大使得输入信号完全被抑制

调试解决在信号输入反相比例放大电分前先经过电压跟随器增加电路输入电阻使得输入信号在输入端受负反馈影响小

4.5.2 问题二

电返整完后输出信号达到要求但依然存在交越失真以频率增大时交越失真更严重

原因LM324芯片本身存在的问题

调试解决在第一级电压跟随器和第二级放大电返各输出引脚到地采用单电源供电即接到11引脚接入1k负载交越失真完全消失

5.设计验证
在Keil uVision5工程环境编写程序连接好电脑STM32开发板仿真器示波器还有硬件电路代码编译无误后下载到开发板用示波器观察D/A输出波形通过相关的键盘操作改变波形的各项问并观察示波器对应的波形问是否与操作一致
5.1测试数据及波形截图
5.1.1 默认问(500Hz2.00V50%)正弦波三角波锯齿波方波
图1 500Hz2.00V 正弦波
图2  500Hz2.00V  三角波
图3  500Hz2.00V  锯齿波
图4  500Hz2.00V50%  方波
5.1.2 输出波形频率范围100Hz-20kHz重复频率可调频率步进间隔100Hz
1100Hz
图1  100Hz2.00V  正弦波
图2  100Hz2.00V  三角波
图3  100Hz2.00V  锯齿波
图4  100Hz2.00V50%  方波
25kHz
图1  5kHz2.00V  正弦波
图2  5kHz2.00V  三角波
图3  5kHz2.00V  锯齿波
图4  5kHz2.00V  方波
320kHz
图1  20kHz2.00V  正弦波
图2  20kHz2.00V  三角波
图3  20kHz2.00V  锯齿波
图4  20kHz2.00V50%  方波
4频率步进100Hz
图1  500HZ到550Hz步进50HZ
图2  550Hz到560Hz步进10Hz
图3  560Hz到565Hz步进5Hz
5.1.3 输出波形幅度范围0-5V峰峰值可按步进0.1V峰峰值调整
图1  1kHz3.10V  正弦波
图2  1kHz4.20V  正弦波
图3  1kHz5.00V  正弦波
5.1.4 具有显示输出波形的类型重复频率和幅度的功能
5.1.5 用键盘调节方波占空比
5.2结果分析
通过调节各功能按键选择波形可在示波器上观察相应的波形输出也可以改变输出波形的幅导频率和方波的占空比波形输出与设置的问基本保持一致由于开发板最大输出电压为3.3V必须外接一个放大电路保证输出电压能够达到5V接入放大电路后经过测试达到了项目的要求输出频率范围能够扩展至200kHz但由于开发板硬件配置的限制导致输出波形有失真稳幅输出功能当负载变化时输出电压幅度变化在误差范围内
6.总结
波形发生器的设计圆满结束意味着我们最后一个实训的结束在经历了前面两次的CDIO实训之后我们的综合技能不仅仅只是局限于课本上的内容这一次的实训任务是要求我们自己设计一个波形发生器在经过组内的讨论之后我们选择用STM32开发板来完成这样在上问训中所学到的关于STM32的知识就派上了用场
采用DDS的方法实现波形发生器充分考验了我们的软件编程能力以及对于开发板波形发生器原理的熟悉程度这其中会遇到许多问题关于按键的布控波形的产生信号的输出以及如何达到所要求的输出幅度等等通过组员的分工献网上查找资料最后取得进展实至键盘各个模块的功能并通过外部放大电路达到了题目要求的输出幅度通过这一问训我们深有体会即便以后从事和本专业不同的职业我们这问训所收获的解决问题的能力思考问题的方法以及遇到困难不放弃的精神都会使我们受益终身

以上内容Word格式文档51黑下载地址
CDIO三级培训波形发生器报告.docx (13.52 MB, 下载问: 0)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51Hei单片机16群 联系QQ:125739409;技术交流QQ群7344883

Powered by 单片机坛网

快速回复 返回顶部 返回列表
ձһhƬձƵ ձƵɫwww ձƵ:ɫ