最好的电子音响科技diy制作网站

haoDIY_音响电子电脑科技DIY小制作发明

当前位置: 主页 > 电子DIY > 工具仪表 > 仪器仪表 >

做个超低成本简易任意波信号发生器 10hz-200khz

时间:2017-05-16 15:40来源:数码之家 作者:admin 点击:
开头先说两句:1、自行车的价格肯定买不到宝马。(本制作成本10元左右(使用二手件),和几百上千的专业型号发生仪器肯定没得比)2、作为一个玩具级的小玩意,大家多多包容 多多指教哈,有什么问题可以提出来互相讨论共同改进3、以后有空 想拿专业点的DAC芯片
开头先说两句:
1、自行车的价格肯定买不到宝马。(本制作成本10元左右(使用二手件),和几百上千的专业型号发生仪器肯定没得比)
2、作为一个玩具级的小玩意,大家多多包容 多多指教哈,有什么问题可以提出来互相讨论共同改进
3、以后有空 想拿专业点的DAC芯片做个效果更好点的(比如说我花了45大洋买的还在墙角堆灰的AD9850什么的)

其实这东西做好了一段时间了,一直没空发上来,今天发上来给大家乐和乐和。
总体效果图
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
使用的单片机核心 stm32f401ccu6 晶振12m

做个超低成本简易任意波信号发生器 10hz-200khz
板子的背面,使用电阻网络做dac
做个超低成本简易任意波信号发生器 10hz-200khz
负压产生用34063 旁边是运放AD8052
做个超低成本简易任意波信号发生器 10hz-200khz
上位机,目前功能还比较简陋
做个超低成本简易任意波信号发生器 10hz-200khz


原理图 单片机核心和电阻网络DAC部分(高清大图见附件)
做个超低成本简易任意波信号发生器 10hz-200khz
信号处理部分
做个超低成本简易任意波信号发生器 10hz-200khz

原理大概是这样的:
1、上位机吧计算好的任意波形信号发送给单片机(可以通过USB,也可以通过串口)
2、单片机接收处理好型号后,使能DMA,直接将数据从内存搬运到IO口(GPIOX->ODR寄存器)
3、搬运的间隔用定时器控制。在单片机超频到120mhz(标称84mhz,到130m以上就不稳定了)的时候,搬运的速度能达到15MHZ(实际可能还会再多一点到17-18m的样子)
4、引脚的低8位接了电阻网络,使用电阻网络的方法来实现DAC(数模转换)功能,来输出信号波形,这个DAC的速度也就是15MHZ
5、输出信号通过三级运放
第一级运放的作用是跟随,因为电阻网络DAC输出信号很弱,所以先跟随
第二级运放的作用是放大型号和调整偏置,信号放大2倍,偏置从以1.65v调整为以地为轴正负波动
R4调整幅度,目前还没实现数控调幅
第三级运放的作用还是跟随,增强输出能力

性能参数:
1、任意波发生(目前上位机只做了三角正弦和方波)
2、输出波形频率范围为 10Hz~200KHz 可调(极限可到1mhz但是效果不好,波形有失真)
3、输出波形峰峰值范围为 0~6.5V 可调
4、通过加法运算能够实现输出不同波形的线性组合波形(目前上位机只做了三角正弦和方波的合成)
5、附加输出一路独立的PWM,10KHz,幅度为+5V,占空比1%~99%,步进0.1%。ps:讲道理没啥卵用

楼下继续,放效果图

开机的默认锯齿波
做个超低成本简易任意波信号发生器 10hz-200khz

正弦 频率在右下角,就不一一说了

做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
24khz是交界点,再往上,为了保证频率准确性,增长了调节步进
做个超低成本简易任意波信号发生器 10hz-200khz

做个超低成本简易任意波信号发生器 10hz-200khz
1m的波形有畸变
做个超低成本简易任意波信号发生器 10hz-200khz


三角波
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz

三角波继续
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
方波
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
开始有一点点畸变了,这锅电容来背
做个超低成本简易任意波信号发生器 10hz-200khz
pwm
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khzpwm继续
占空比还是在右下角有显示

做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
波形合成(其实也算是任意波了)
方波与正弦波合成
做个超低成本简易任意波信号发生器 10hz-200khz
方波与三角波合成
做个超低成本简易任意波信号发生器 10hz-200khz
做个超低成本简易任意波信号发生器 10hz-200khz
方波、正弦波、三角波合成
做个超低成本简易任意波信号发生器 10hz-200khz
方波与三角波合成
做个超低成本简易任意波信号发生器 10hz-200khz
方波、正弦波、三角波合成
做个超低成本简易任意波信号发生器 10hz-200khz

说点其他的东西
1、说是任意波,但是大家只看到常规的方波、正弦波、三角波,其实是以为上位机太简单罢了。所有的波形计算都是在上位机完成的,完成后直接吧波形数据发给单片机。所以要增加波形,就是改改上位机的事情了,硬件基本不用动啥。
2、电阻网络和后面的信号的处理有点简单粗暴,要提高性能,肯定得改改
3、上位机的使用
usb插上后,设备管理器找到串口后,填进去,打开串口即可,波特率不用理会。
低于24khz的信号,可调的是3位,在左下角调整。
高于24k,勾选右边24k-200k方框,拖动滑块改动频率
做个超低成本简易任意波信号发生器 10hz-200khz
3、程序的编译
有sys_conf.h文件,里面有三个选项。
#define USE_USB意思是使用USB,如果屏蔽这个宏定义,则使用串口1传输数据,波特率115200
#define USB_NEGATIVE_PORT //是引脚的高低位逆转,如果开启的画,PA0输出的是高位,PA7输出的是低位,如果关闭,则是正常顺序PA0是低
//#define USB_GPIOB_PORT //屏蔽则用GPIOA的低八位,解除屏蔽用GPIOB的低八位作为数据输出口
做个超低成本简易任意波信号发生器 10hz-200khz
4、频率误差

理想频率与实际频率误差的两类误差源:
1  分频系数、采样点的非光滑造成的误差
如:理想839.0 实际838.996582 差值0.003418 误差0.000407%
理想19900.0  实际19900.498047差值0.498047  误差0.002503%
理想20000.0 实际20000.000000 差值0.000000   误差0.000000%
完整分频偏差运算测试结果 (100-24khz)见附录
2  DMA (责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容