OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 32270|回复: 35

STM32 DAC输出频率振幅可调节的正弦波,三角波,方波问题

[复制链接]

34

主题

127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
1065
注册时间
2012-1-7
在线时间
156 小时
发表于 2014-4-13 09:13:31 | 显示全部楼层 |阅读模式
用STM32的 DAC输出频率振幅可调节的正弦波,三角波,方波,相当于信号发生器。有几个问题,跟大家讨论:

1.关于正弦波的,采集了128个点,通过公式把对应的振幅生成128个点的波形
    DualSine12bit[Idx] = (Amplitude*sin(2*3.14*Idx/128)+Amplitude);这样的话,改变振幅,对应的波形就会相应的发生改变。正弦波的应该是这个思路吧?不知道各位都是怎么做的?可以交流下。

2.关于方波和三角波,不知道各位是什么思路?是不是也是类同的找到这样的通过振幅改变波形的公式呢?三角波的话应该是吧?还有频率改变。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2014-3-10
在线时间
5 小时
发表于 2014-8-19 21:56:02 | 显示全部楼层
仅供参考

TIM+DAC+DMA输出任意波形.rar

4.13 MB, 下载次数: 12625

回复 支持 2 反对 0

使用道具 举报

34

主题

127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
1065
注册时间
2012-1-7
在线时间
156 小时
 楼主| 发表于 2014-4-13 09:16:07 | 显示全部楼层
自己先顶一下
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-4-13 09:28:20 | 显示全部楼层
回复【楼主位】天涯水乡:
---------------------------------
1,这是一个办法,不过可调范围不大,你这是改变DAC的输出幅度来改变幅值的,一般要外加运放,控制运放增益,这样改变幅值,就可调范围大很多。
2,方波和三角波,用你的公式也可以改变幅值啊。。。你改变波形的最大值,就改变幅值了的。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

34

主题

127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
1065
注册时间
2012-1-7
在线时间
156 小时
 楼主| 发表于 2014-4-13 12:42:12 | 显示全部楼层
回复【3楼】正点原子:
----------------------------
原子哥,一般做生成可调波形,常用什么方法呢?除去上面的
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-4-13 14:18:17 | 显示全部楼层
调频还是调幅?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

34

主题

127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
1065
注册时间
2012-1-7
在线时间
156 小时
 楼主| 发表于 2014-4-13 22:16:10 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
两种都要啊?求指点
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-4-13 22:24:53 | 显示全部楼层
调频就控制DAC输出波形周期数据的速度。
调幅可以控制DAC输出数据的最大值,这个就是你楼主位的思路。
还可以借助外部电路,控制运放增益,达到控制幅度的目的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

34

主题

127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
1065
注册时间
2012-1-7
在线时间
156 小时
 楼主| 发表于 2014-4-13 22:52:24 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
多谢原子哥指点
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2014-4-28
在线时间
0 小时
发表于 2014-4-28 10:57:58 | 显示全部楼层
回复【8楼】天涯水乡:
---------------------------------
我也在做这个,但我是菜鸟,写完正弦的函数之后就不知道该怎么办了,怎么传给DAC啊?
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2013-8-12
在线时间
1 小时
发表于 2014-5-13 12:40:19 | 显示全部楼层
回复【8楼】天涯水乡:
---------------------------------
楼主 这个题目你做出来了吗?能不能给我看看你的代码?
我也在做这个
我邮箱2323763862@qq.com
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2014-5-8
在线时间
0 小时
发表于 2014-6-3 18:54:15 | 显示全部楼层
楼主,可不可以也给我看看程序,我买的是STM32RCT6 mini版的
我最近一直在纠结这个问题,可以发给我看看么,我的邮箱2536560923@qq.com
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2014-8-19
在线时间
0 小时
发表于 2014-8-19 19:50:44 | 显示全部楼层
我也是用的这个公式啊,怎么出不来波呢
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-8-19 22:59:49 | 显示全部楼层
回复【13楼】yanlutian:
---------------------------------
谢谢分享
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2014-8-19
在线时间
0 小时
发表于 2014-8-21 17:54:40 | 显示全部楼层
回复【13楼】yanlutian:
---------------------------------
你好,我是新手,我想问一下直接把正弦波的输出表赋值给DAC不行吗?为什么要用DMA呢
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2014-8-19
在线时间
0 小时
发表于 2014-8-22 15:39:59 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
原子哥,可不可以在软件中设置一个幅度的参数来改变送往DAC转换的值的大小,从而改变输出波形的幅度大小啊?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-8-22 23:10:59 | 显示全部楼层
回复【16楼】Shmily:
---------------------------------
你控制DAC的最大输出值,就控制输出幅度了...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2014-10-23
在线时间
0 小时
发表于 2015-1-23 13:11:14 | 显示全部楼层
我也遇到这个问题了,按照原子哥的方法控制DAC输出波形周期数据的速度貌似最高频率只能达到333K,只能把最低频率调低,但是最高频率受限,我要做的频率范围为1KHz~10MHz,不知道楼主有什么好的解决方案吗?
我要学习
回复 支持 反对

使用道具 举报

1

主题

215

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2013-9-23
在线时间
4 小时
发表于 2015-1-23 17:04:52 | 显示全部楼层
来 学习学习!
回复 支持 反对

使用道具 举报

34

主题

127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
1065
注册时间
2012-1-7
在线时间
156 小时
 楼主| 发表于 2015-1-23 19:33:28 | 显示全部楼层
回复【15楼】Shmily:
---------------------------------
DMA直接寄存器读取,无需CPU干涉,比较快。当然不用也是可以的。
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2014-11-18
在线时间
6 小时
发表于 2015-1-28 10:15:33 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
一般这样的运放用什么类型的运放,该如何接呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-1-28 23:15:16 | 显示全部楼层
回复【21楼】tomkings:
---------------------------------
这个你自己根据需要选型哦.
比如要输出多高电压?带宽多少?根据这些去选择.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2014-11-18
在线时间
6 小时
发表于 2015-1-29 16:07:03 | 显示全部楼层
回复【22楼】正点原子:
---------------------------------
我现在想让STM32输出的两个波形,因为基准一样,那想分别调节的话,只能外加运放,输出频率在10KHZ以下的,幅值为0-5V或者3.3V,因为后面肯定要接功放的,但我不知道该选怎么样的类型的运放,是普通的呢,还是VGA的
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-1-29 23:46:00 | 显示全部楼层
回复【23楼】tomkings:
---------------------------------
先做个样板调试下吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

17

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2015-6-2
在线时间
1 小时
发表于 2015-6-2 11:42:34 | 显示全部楼层
回复【13楼】yanlutian:
---------------------------------
问楼主一个小问题,我用你那程序,把通道不使能,也就是TIM2不使能。为什么通道2他输出的频率就会改变?
回复 支持 反对

使用道具 举报

4

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
199
金钱
199
注册时间
2014-4-19
在线时间
41 小时
发表于 2016-3-11 14:40:22 | 显示全部楼层
开心开心
学习学习,把它改成自己的
新手的路还很长
回复 支持 反对

使用道具 举报

10

主题

65

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2016-4-16
在线时间
13 小时
发表于 2016-10-19 21:55:40 | 显示全部楼层
正点原子 发表于 2014-4-13 09:28
回复【楼主位】天涯水乡:
---------------------------------
1,这是一个办法,不过可调范围不大,你这是 ...

我想用你的锯齿波改为只有一个周期的斜坡信号,改了好多天还没搞定,你会吗
回复 支持 反对

使用道具 举报

1

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2018-6-9
在线时间
31 小时
发表于 2018-7-18 08:39:39 | 显示全部楼层
哥有没有代码给搞一份
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2019-7-5
在线时间
14 小时
发表于 2019-8-7 09:30:49 | 显示全部楼层
iwater 发表于 2015-1-23 13:11
我也遇到这个问题了,按照原子哥的方法控制DAC输出波形周期数据的速度貌似最高频率只能达到333K,只能把最低 ...

请问您解决了吗?最高输出多少KHZ的频率呢?
回复 支持 反对

使用道具 举报

9

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2019-3-24
在线时间
37 小时
发表于 2020-5-8 09:15:33 | 显示全部楼层
iwater 发表于 2015-1-23 13:11
我也遇到这个问题了,按照原子哥的方法控制DAC输出波形周期数据的速度貌似最高频率只能达到333K,只能把最低 ...

大佬,我问一下 ,我用103的板子波形最高只能达到10K左右,怎么提高波性的频率呢,我需要100k左右的频率,希望求解惑啊!
回复 支持 反对

使用道具 举报

3

主题

12

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2020-8-10
在线时间
14 小时
发表于 2020-8-15 23:10:14 | 显示全部楼层
楼主你好,我是新手,想看一下你的代码可以吗,想学习一下,谢谢了。
邮箱1647595719@qq.com
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2020-2-26
在线时间
5 小时
发表于 2020-9-1 18:53:42 | 显示全部楼层
求源代码
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2019-12-8
在线时间
5 小时
发表于 2020-9-21 20:34:58 | 显示全部楼层

为什么一个周期内的采样点要是256个点啊?我设置为其他个数就不是正弦波是为什么呢?
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2020-10-2
在线时间
7 小时
发表于 2020-10-23 10:18:29 | 显示全部楼层
abyssal燕斌 发表于 2019-8-7 09:30
请问您解决了吗?最高输出多少KHZ的频率呢?

请问stm32输出正弦波是咋输出的
回复 支持 反对

使用道具 举报

1

主题

16

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2022-11-1
在线时间
19 小时
发表于 2022-12-7 11:17:04 | 显示全部楼层
正点原子 发表于 2014-4-13 22:24
调频就控制DAC输出波形周期数据的速度。
调幅可以控制DAC输出数据的最大值,这个就是你楼主位的思路。
还可 ...

怎么控制DAC输出数据的最大值呢?
回复 支持 反对

使用道具 举报

1

主题

16

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2022-11-1
在线时间
19 小时
发表于 2022-12-7 11:28:53 | 显示全部楼层
正点原子 发表于 2014-4-13 22:24
调频就控制DAC输出波形周期数据的速度。
调幅可以控制DAC输出数据的最大值,这个就是你楼主位的思路。
还可 ...

请教一下原子哥,为什么我用DAC输出峰值3.3的正弦波示波器上显示只有1.几V呢,是因为DAC有衰减吗?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 21:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表